Phi*_*ide 2 puppet puppetmaster
我正在学习使用 Puppet,并已成功设置并连接了具有 2 个节点的主服务器。
production
我已经为正在运行的默认环境创建了文件。我的环境文件夹中还有第二组配置beta
。
我想通过主服务器将 2 个节点中的 1 个分配给测试组。我该怎么做呢?
傀儡版本4
环境可以通过代理的puppet.conf
配置文件、代理的--environment
命令行选项或主机使用外部节点分类器 (ENC)设置,按优先级递增的顺序。
运行puppet agent -t --environment beta
以在非默认环境中运行代理。
在设置environment = beta
下设置默认环境。[agent]
/etc/puppetlabs/puppet/puppet.conf
或者配置 ENC 以定义主站上的环境:
创建一个脚本,例如/etc/puppetlabs/puppet/node.sh
使用您喜欢的任何语言,例如
#!/bin/bash
if [ "$1" = beta.example.com ]; then
echo "environment: beta"
else
echo "environment: production"
fi
Run Code Online (Sandbox Code Playgroud)确保脚本可执行 ( chmod +x /etc/puppetlabs/puppet/node.sh
)
在master /etc/puppetlabs/puppet/puppet.conf
下[master]
,设置:
node_terminus = exec
external_nodes = /etc/puppetlabs/puppet/node.sh
Run Code Online (Sandbox Code Playgroud)当代理运行时,它将从运行节点脚本的主服务器检索节点信息。该脚本返回一个带有环境名称的 YAML 文档(本例中为一行)。如果给出了环境名称,则代理将被迫使用该环境。
该脚本可以按照您认为合适的方式实现 - 它可以执行某种查询(例如针对数据库),针对主机名(第一个参数$1
)执行一些逻辑,或者只是进行硬编码。