从自定义提供程序访问Puppet内置变量

时间:2015-07-06 13:18:10

标签: ruby puppet

有内置的全局变量,可以从清单或模板访问。就像$ serverip一样,主服务器的IP地址。我知道如何调用Facter,但是某些内置函数并不代表任何Facter的“事实”。如何从自定义提供程序访问它们?

3 个答案:

答案 0 :(得分:2)

是的,代理将事实值传递给主服务器,以便在清单编译期间,您可以使用所描述的值。

代理本身(以及扩展名,类型和提供者)可以直接访问这些值。

value = Facter.value('serverip')

这几乎应该可以在代理端的所有上下文中使用(包括自定义事实),因为Puppet代理将始终加载Facter,从而直接提供解析。

答案 1 :(得分:1)

随着来自OP的更多反馈,很明显这不是来自全局变量的master信息,而是"隐含的事实"而是使用代理配置。

代理可以非常简单地使用全局哈希中的配置。

port = Puppet['masterport']
master_host = Puppet['server']

答案 2 :(得分:1)

为了将其包装起来,以下内容将转移全球'将设置设置为人类可读的评论配置文件格式,以便那些想知道哪些设置可用(可通过Puppet [' 设置']访问的设置):

         <div id="InvRow" class="modal fade" role="dialog">
                    <div class="modal-dialog">
                        <!-- Modal content-->
                        <div class="modal-content">
                            <div class="modal-header">
                                <button type="button" class="close"
                                    data-dismiss="modal">
                                </button>
                                <h4 class="modal-title">
                                    Invoice Row
                                </h4>
                            </div>
                            <div class="modal-body">
                    <xp:panel id="pnlrow">
                    <xp:table>
                        <xp:tr>
                            <xp:td>
                                <xp:label value="Description :"
                                    id="label13">
                                </xp:label>
                            </xp:td>
                            <xp:td>
                            <xp:inputText id="RestipDesc" defaultValue=".">

                                </xp:inputText>

                            </xp:td>
                            <xp:td></xp:td>
                        </xp:tr>


                        <xp:tr>
                            <xp:td>
                                <xp:label value="Quantity :"
                                    id="label17">
                                </xp:label>
                                </xp:td>
                            <xp:td>
                                <xp:inputText id="RestipQuantity"
                                    required="true" defaultValue="0">

                                    <xp:this.validators>
                                        <xp:validateRequired
                                            message="Quantity Required !!!">
                                        </xp:validateRequired>
                                    </xp:this.validators>
                                    <xp:this.converter>
                                        <xp:convertNumber
                                            type="number">
                                        </xp:convertNumber>
                                    </xp:this.converter>
                                </xp:inputText>

                            </xp:td>

                    </xp:table>
                    <xp:messages id="messages3"></xp:messages>
                    </xp:panel>
                    </div>
                    <div class="modal-footer">
        <xp:button value="Update Row" id="button11"  styleClass="btn btn-success">
        <xp:eventHandler event="onclick" submit="true" refreshMode="partial" immediate="false" save="false" refreshId="repeatTable">
        <xp:this.action><![CDATA[#{javascript:UpdateRow();}]]> </xp:this.action>
                            </xp:eventHandler>
                            <xp:this.attrs>
                                        <xp:attr name="data-dismiss"
                                            value="modal">
                                        </xp:attr>
                                    </xp:this.attrs>
                        </xp:button>
         <xp:button value="Cancel" id="button5" styleClass ="btn btn-danger">
            <xp:eventHandler event="onclick" submit="true"  refreshMode="norefresh">                </xp:eventHandler>
                                <xp:this.attrs>
                                        <xp:attr name="data-dismiss"
                                            value="modal">
                                        </xp:attr>
                                    </xp:this.attrs>
                        </xp:button>
                        </div>
         </div>
         </div>
         </div>