puppet 的细节和原理
puppet 的目的是让你只集中于你要管理的目标,而忽略实现的细节,例如命令名,参数或者文件
格式. puppet 把系统里面的用户,软件包,服务看作是"资源", puppet 的作用就是管理这些资源
以及资源之间的相互联系.
Puppet 采用了非常简单的 C/S 架构,所有数据的交互都通过 SSL 进行,以保证安全。
实验环境:
rhel-6.5 linux
selinux disabled
iptables stoppd
server: 222.24.24.28 server1.example.com puppet master
client : 222.24.24.29 server2.example.com puppet agent
client: 222.24.24.30 server3.example.com puppet agent
注意: server 与所有 client 之间需要解析,以及时间同步,不然会验证失败。
server 端所需安装包:
puppet-server-3.8.1-1.el6.noarch.rpm
facter-2.4.4-1.el6.x86_64.rpm
ruby-augeas-0.4.1-1.el6.x86_64.rpm
hiera-1.1.0-1.el6.noarch.rpm
rubygem-json-1.4.6-1.el6.x86_64.rpm
rubygems-1.3.7-1.el6.noarch.rpm
puppet-3.8.1-1.el6.noarch.rpm
ruby-shadow-1.4.1-13.el6.x86_64.rpm
puppet-server-3.0.1-1.el6.noarch.rpm
puppet 配置目录:
结构如下:
puppet.conf 主配置文件
fileserver.conf 文件服务器配置文件
auth.conf 认证配置文件
autosign.conf 自动验证配置文件
tagmail.conf 邮件配置文件(将错误信息发送)
manifests 文件存储目录(puppet 会先读取该目录的.pp文件
文件)
nodes
puppetclient.pp
site.pp 定义puppet相关的变量和默认配置
modules.pp 加载class类模块文件(include syslog)
modules 定义模块
syslog 以syslog 为例
file
manifests
init.pp class 类配置
puppet 的第一个执行的代码是在/etc/puppet/manifest/site.pp,因此这个文件必须存在,而
且其他的代码也要通过该文件来调用。
#创建site.pp文件,没有此文件 puppet master 无法启动,配置后面再定义
#启动 puppet master
端口
client 端所需安装包:
facter-2.4.4-1.el6.x86_64.rpm
rubygem-json-1.4.6-1.el6.x86_64.rpm
hiera-1.1.0-1.el6.noarch.rpm
rubygems-1.3.7-1.el6.noarch.rpm
puppet-3.8.1-1.el6.noarch.rpm
ruby-shadow-1.4.1-13.el6.x86_64.rpm
ruby-augeas-0.4.1-1.el6.x86_64.rpm
puppet 客户端连接到puppet master
client 向 master 发出证书验证请求,然后等待 master 签名并返回证书。
参数--server 指定了需要连接的 puppet master 的名字或是地址,默认连接名为“puppet”的主机
如要修改默认连接主机可以修改/etc/sysconfig/puppet 文件中的 PUPPET_SERVER=puppet 选项
参数--no-daemonize 是 puppet 客户端运行在前台
参数--verbose 使客户端输出详细的日志
在master端:
puppet cert list 用于显示所有等待签名的证书
# puppet cert sign server2.example.com 签名证书
在对证书签名后的两分钟后,在 agent 端上可以看到如下输出:
如要同时签名所有证书,执行以下命令:
# puppet cert sign --all
# puppet cert clean desktop2.example.com #删除签名证书
一:添加自动验证模块
在server端,编辑puppet.conf文件、
# vim /etc/puppet/puppet.conf #添加 autosign = true
/etc/puppet 目录下创建 autosign.conf 文件,内容如下:
重新启动puppet服务
当我们在server3上登录时就不用server1端签名了
阅读(2345) | 评论(0) | 转发(0) |