Puppet 从主机将节点分配给环境?

Puppet 从主机将节点分配给环境?

我正在学习使用 Puppet,并且已成功设置并连接了具有 2 个节点的主服务器。

我已经为正在运行的默认环境创建了文件。我的环境文件夹中production还有第二组配置。beta

我想通过主服务器将 2 个节点中的 1 个分配给 beta 组。我该怎么做?

Puppet 版本 4

答案1

环境可以通过代理的puppet.conf配置文件、代理的--environment命令行选项或主服务器使用来设置外部节点分类器 (ENC),按优先顺序排列。

  1. 运行puppet agent -t --environment beta以使用非默认环境运行代理。

  2. 在inenvironment = beta下设置以设置默认环境。[agent]/etc/puppetlabs/puppet/puppet.conf

或者配置 ENC 来定义主服务器上的环境:

  1. /etc/puppetlabs/puppet/node.sh使用你喜欢的任何语言创建脚本,例如

    #!/bin/bash
    if [ "$1" = beta.example.com ]; then
      echo "environment: beta"
    else
      echo "environment: production"
    fi
    
  2. 确保脚本可执行(chmod +x /etc/puppetlabs/puppet/node.sh

  3. 在里面硕士 /etc/puppetlabs/puppet/puppet.conf在 下[master],设置:

    node_terminus = exec
    external_nodes = /etc/puppetlabs/puppet/node.sh
    

当代理运行时,它将从运行节点脚本的主节点检索节点信息。脚本返回一个包含环境名称的 YAML 文档(在本例中为一行)。如果给出了环境名称,则代理将被迫使用该环境。

该脚本可以按照您认为合适的方式实现 - 它可以执行某种查询(例如针对数据库),针对主机名执行某些逻辑(第一个参数$1),或者只是硬编码。

相关内容