我正在学习使用Puppet,并成功设置并连接了一个具有2个节点的主服务器。
我为正在工作的默认production环境创build了文件。 我在我的环境文件夹中还有第二组名为beta的configuration。
我想通过主服务器将2个节点中的1个分配给testing组。 我怎么去做这个?
木偶版本4
可以通过代理的puppet.confconfiguration文件,代理的--environment命令行选项或使用外部节点分类器(ENC)的主服务器来设置环境,从而提高优先级。
运行puppet agent -t --environment beta以非默认环境运行代理。
在/etc/puppetlabs/puppet/puppet.conf [agent]下设置environment = beta以设置默认环境。
或者configuration一个ENC来定义主站上的环境:
用你喜欢的任何语言创build一个脚本,比如/etc/puppetlabs/puppet/node.sh ,例如
#!/bin/bash if [ "$1" = beta.example.com ]; then echo "environment: beta" else echo "environment: production" fi
确保脚本是可执行的( chmod +x /etc/puppetlabs/puppet/node.sh )
在主设备的 /etc/puppetlabs/puppet/puppet.conf ,设置:
node_terminus = exec external_nodes = /etc/puppetlabs/puppet/node.sh
代理运行时,将从运行节点脚本的主节点检索节点信息。 该脚本返回一个YAML文档(在这种情况下是一行)与环境名称。 如果给定了环境名称,那么代理将被迫使用该环境。
脚本可以实现,但是你认为合适 – 它可以执行某种查询(例如对数据库),对主机名(第一个参数$1 )执行一些逻辑,或者只是硬编码。