在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。 复制代码 代码如下:192.168.0.12 puppetmaster.info.com 192.168.0.64 client1.info.com 三、 安装ruby 复制代码 代码如下:[root@puppetmaster ~]# yum install ruby ruby-libs ruby-rdoc -y [root@puppetmaster ~]# ruby --version ruby 1.8.5 (2006-08-25) [i386-linux] 我安装的是1.8.5 ,不要安装1.8.7 puppet 还不支持,( 我没试过,如果出现不支持的情况,注意一下这里。) 四、 安装facter 安装puppet之前必须先安装facter
复制代码 代码如下:[root@puppetmaster src]# wget http://downloads.puppetlabs.com/facter/facter-1.6.8.tar.gz [root@puppetmaster src]# tar xzvf facter-1.6.8.tar.gz [root@puppetmaster src]# cd facter-1.6.8 [root@puppetmaster facter-1.6.8]# ruby install.rb [root@puppetmaster puppet-2.7.14]# ruby install.rb 五、 安装puppet 复制代码 代码如下:[root@puppetmaster src]# wget http://downloads.puppetlabs.com/puppet/puppet-2.7.14.tar.gz [root@puppetmaster src]# tar xzvf puppet-2.7.14.tar.gz [root@puppetmaster src]# cd puppet-2.7.14 六、 复制配置文件 复制代码 代码如下:[root@puppetmaster puppet-2.7.14]# cp conf/redhat/fileserver.conf /etc/puppet/ [root@puppetmaster puppet-2.7.14]# cp conf/redhat/puppet.conf /etc/puppet/ [root@puppetmaster puppet-2.7.14]# cp conf/redhat/server.init /etc/init.d/puppetmaster 七、 设置puppetmaster 服务开机启动 复制代码 代码如下:[root@puppetmaster puppet-2.7.14]# ls -l /etc/init.d/puppetmaster -rwxr-xr-x 1 root root 3936 Sep 3 12:13 /etc/init.d/puppetmaster [root@puppetmaster puppet-2.7.14]# [root@puppetmaster puppet-2.7.14]# chkconfig --add puppetmaster [root@puppetmaster puppet-2.7.14]# chkconfig --level 35 puppetmaster on 八、 创建puppet帐号 复制代码 代码如下:[root@puppetmaster puppet-2.7.14]# puppetmasterd --mkusers 1)确认是否生成清单文件夹 复制代码 代码如下:[root@puppetmaster puppet-2.7.14]# ls -l /etc/puppet/ total 16 -rw-r--r-- 1 root root 2552 Sep 3 12:11 auth.conf -rwxr-xr-x 1 root root 381 Sep 3 12:13 fileserver.conf drwxr-xr-x 2 root root 4096 Sep 3 12:17 manifests -rwxr-xr-x 1 root root 853 Sep 3 12:13 puppet.conf 2)确认系统生成puppet用户 复制代码 代码如下:[root@puppetmaster puppet-2.7.14]# id puppet uid=1002(puppet) gid=1002(puppet) groups=1002(puppet)</p> <p>[root@puppetmaster puppet]# cat /etc/passwd |grep puppet puppet:x:1002:1002::/home/puppet:/bin/bash 3)保证/var/lib/puppet/rrd目录存在且属主是puppet 复制代码 代码如下:[root@puppetmaster puppet]# ls -l /var/lib/puppet/ total 36 drwxr-x--- 2 puppet puppet 4096 Sep 3 12:17 bucket drwxr-xr-x 2 root root 4096 Sep 3 12:17 facts drwxr-xr-x 2 root root 4096 Sep 3 12:17 lib drwxr-x--- 2 puppet puppet 4096 Sep 3 12:17 reports drwxr-x--- 2 puppet puppet 4096 Sep 3 12:17 rrd drwxr-x--- 2 puppet puppet 4096 Sep 3 12:17 server_data drwxrwx--x 8 puppet root 4096 Sep 3 12:26 ssl drwxr-xr-t 2 root root 4096 Sep 3 12:17 state drwxr-x--- 2 puppet puppet 4096 Sep 3 12:17 yaml 4)查看端口 复制代码 代码如下:[root@puppetmaster puppet]# netstat -Tanlp | grep 8140 tcp 0 0 0.0.0.0:8140 0.0.0.0:* LISTEN 4556/ruby 客户端: 安装facter,puppet 同puppetmaster 一样。但复制的文件如下 复制代码 代码如下:[root@client1 puppet-2.7.14]# cp conf/redhat/client.init /etc/init.d/puppet [root@client1 puppet-2.7.14]# chkconfig --level 35 puppet on 复制代码 代码如下:[root@client1 puppet-2.7.14]# puppetd --mkusers Could not prepare for execution: Got 1 failure(s) while initializing: change from absent to present failed: Could not create user puppet: Execution of '/usr/sbin/useradd -g puppet -M puppet' returned 3: useradd: invalid numeric argument 'puppet'</p> <p>[root@client1 puppet-2.7.14]# groupadd puppet;useradd -g puppet -M puppet [root@client1 puppet-2.7.14]# service puppet start Starting puppet: [ OK ]
复制代码 代码如下:[root@client1 puppet-2.7.14]# telnet puppetmaster.info.com 8140 Trying 192.168.0.12... Connected to puppetmaster.info.com (192.168.0.12). Escape character is '^]'.</p> <p>[root@client1 puppet-2.7.14]# puppetd --test --server puppetmaster.info.com warning: peer certificate won't be verified in this SSL session info: Caching certificate for ca warning: peer certificate won't be verified in this SSL session warning: peer certificate won't be verified in this SSL session info: Creating a new SSL certificate request for client1.info.com info: Certificate Request fingerprint (md5): 07:C9:D4:43:3C:3E:D6:D1:0A:B1:8B:71:DB:6B:9D:FE warning: peer certificate won't be verified in this SSL session warning: peer certificate won't be verified in this SSL session warning: peer certificate won't be verified in this SSL session Exiting; no certificate found and waitforcert is disabled # puppetd --test --server puppetmaster.info.com命令是指puppetd 从 puppetmaster.info.com去读取 puppet配置文件. 第一次连接,双方会进行ssl证书的验证,这是一个新的客户端,在服务器端那里还没有被认证,因此需要在服务器端进行证书认证 以下这步批准证书是在服务端操作 查看当前待批准证书列表 复制代码 代码如下:[root@puppetmaster ~]# puppetca -l client1.info.com (07:C9:D4:43:3C:3E:D6:D1:0A:B1:8B:71:DB:6B:9D:FE)
复制代码 代码如下:[root@puppetmaster ~]# puppetca -s client1.info.com notice: Signed certificate request for client1.info.com notice: Removing file Puppet::SSL::CertificateRequest client1.info.com at '/var/lib/puppet/ssl/ca/requests/client1.info.com.pem' 查看验证签名,注意前面的+号,说明已经签名 复制代码 代码如下:[root@puppetmaster ~]# puppetca -a --list + client1.info.com (03:BE:50:AE:72:1A:39:79:17:F4:E5:74:FD:CC:BC:8C) + puppetmaster.info.com (97:34:BF:26:A6:0E:E9:9C:DB:76:D3:53:D0:56:60:83) (alt names: DNS:puppet, DNS:puppet.info.com, DNS:puppetmaster.info.com) 如果要批准全部证书 复制代码 代码如下:puppetca -s -a 也可以在puppetmaster端的puppet.conf加入这行: autosign = true 服务端就自动签证书 回到客户端操作,从服务端取回已批准的证书 复制代码 代码如下:[root@client1 puppet-2.7.14]# puppetd --test --server puppetmaster.info.com warning: peer certificate won't be verified in this SSL session info: Caching certificate for client1.info.com info: Caching certificate_revocation_list for ca info: Caching catalog for client1.info.com info: Applying configuration version '1378188531 验证证书是否正确 复制代码 代码如下:服务端: [root@puppetmaster ~]# md5sum /var/lib/puppet/ssl/ca/signed/client1.info.com.pem 27a295f39a6b4a6c7ceb74c9c3a5084c /var/lib/puppet/ssl/ca/signed/client1.info.com.pem</p> <p>客户端: [root@client1 puppet-2.7.14]# md5sum /etc/puppet/ssl/certs/client1.info.com.pem 27a295f39a6b4a6c7ceb74c9c3a5084c /etc/puppet/ssl/certs/client1.info.com.pem</p> <p> 出现修改主机名问题引起无法认证,需要重新申请证书,操作以下两个步骤: 服务端: [root@puppetmaster ~]# rm /var/lib/puppet/ssl/ca/signed/client1.info.com.pem -rf</p> <p>客户端: [root@client1 puppet-2.7.14]# rm /etc/puppet/ssl/certs/ -rf 功能测试 服务端: 复制代码 代码如下:[root@puppetmaster ~]# vim /etc/puppet/manifests/site.pp node default { file {"/tmp/viong.txt": content=>"good,test pass!\nHello World!\n";} } 上面的代码对默认连入的puppet客户端执行一个操作,在/tmp目录生成一个viong.txt文件,内容是good,test pass! 回车换行Hello World!回车换行. 初次创建pp文件,需要重启puppetmaster 复制代码 代码如下:[root@puppetmaster ~]# service puppetmaster restart Stopping puppetmaster: [ OK ] Starting puppetmaster: [ OK ] 客户端: 复制代码 代码如下:[root@client1 puppet-2.7.14]# puppetd --test --server puppetmaster.info.com info: Caching catalog for client1.info.com info: Applying configuration version '1378190404' notice: /Stage[main]//Node[default]/File[/tmp/viong.txt]/ensure: defined content as '{md5}4750aa5be82dae5db286a5859700dd51' notice: Finished catalog run in 0.03 seconds 如果报错 可能是/etc/puppet/manifests/site.pp 这个文件书写格式有问题。 在客户端查看: 复制代码 代码如下:[root@client1 puppet-2.7.14]# ls -l /tmp/viong.txt -rw-r--r-- 1 root root 29 Sep 3 14:50 /tmp/viong.txt [root@client1 puppet-2.7.14]# cat /tmp/viong.txt good,test pass! Hello World! |
请发表评论