我正在学习使用 Puppet,并且已成功设置并连接了具有 2 个节点的主服务器。
我已经为正在运行的默认环境创建了文件。我的环境文件夹中production
还有第二组配置。beta
我想通过主服务器将 2 个节点中的 1 个分配给 beta 组。我该怎么做?
Puppet 版本 4
答案1
环境可以通过代理的puppet.conf
配置文件、代理的--environment
命令行选项或主服务器使用来设置外部节点分类器 (ENC),按优先顺序排列。
运行
puppet agent -t --environment beta
以使用非默认环境运行代理。在in
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
确保脚本可执行(
chmod +x /etc/puppetlabs/puppet/node.sh
)在里面硕士
/etc/puppetlabs/puppet/puppet.conf
在 下[master]
,设置:node_terminus = exec external_nodes = /etc/puppetlabs/puppet/node.sh
当代理运行时,它将从运行节点脚本的主节点检索节点信息。脚本返回一个包含环境名称的 YAML 文档(在本例中为一行)。如果给出了环境名称,则代理将被迫使用该环境。
该脚本可以按照您认为合适的方式实现 - 它可以执行某种查询(例如针对数据库),针对主机名执行某些逻辑(第一个参数$1
),或者只是硬编码。