Puppet 系统配置自动化解决方案(2)

exec { "puppet test":
        command=>"/bin/touch /tmp/puppet-test",
}
第一个配置会使 agent 端确保编译 php 所必须的软件包 bison 已经安装好。对于不同的系统,会使用各自的包管理器来安装。第二个配置会在 agent 端执行 /bin/touch /tmp/puppet-test 。
然后配置客户端。先编辑 /etc/hosts,加入 master 的 ip,如:

192.168.1.101 puppet
在客户端运行一下

# puppet agent --test
初次运行也同样会生成客户端的相应文件,然后就会去连接 master 端执行任务。此时会提示

warning: peer certificate won't be verified in this SSL session exiting; no certificate found and waitforcert is disabled
这表示 agent 需要认证。因为 puppet 使用了 ssl 来保证安全,并需要 agent 经过 master 认证才能够访问配置。到 master 端执行一下

# puppet cert list
会列出待认证的 agent 列表。这里可以看到 agent 的主机名。如

puppet-agent-test-01 (66:62:5C:84:B0:23:73:FB:80:7C:89:48:4C:A6:AF:53)
然后可以使用

# puppet cert sign puppet-agent-test-01
就能完成认证。如果觉得直接使用主机名不够灵活,也可以在运行 agent 时使用 --certname=认证名 来指定。在 agent 端再试一次,这回就可以看到,agent 已经开始干活了。看看 bison 工具是否安装好了,再看看 /tmp 目录下是否生成了 /tmp/puppet-test 文件。

需要注意的是,一个主机可以使用多个不同的certname,但一个certname只能被一台主机使用。如果原有的certname需要移动到另 一个主机上使用,就需要在master端先 puppet cert clean "认证名" 来清除原有数据。所以,certname应当尽量保持全局唯一。

这里 agent 使用的 --test 让 agent 不以服务方式运行,只执行一次,并输出详细信息。去掉这个参数,puppet agent 就会以服务方式在后台运行,默认每 30 分钟连接一次服务器更新配置。可以用 puppet help master、puppet help agent 查看更多选项。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/107dcbbb0b9a26692b0f7d33dd6798f4.html