请选择 进入手机版 | 继续访问电脑版

[LINUX] Puppet 安装设置 方法

[复制链接]
查看77 | 回复10 | 2021-9-5 00:52:06 | 显示全部楼层 |阅读模式

puppet是一种Linux、Unix、windows平台的集中设置 管理体系 ,利用 自有的puppet形貌 语言,可管理设置 文件、用户、cron任务 、软件包、体系 服务等。puppet把这些体系 实体称之为资源,puppet的计划 目的 是简化对这些资源的管理以及妥善处理资源间的依靠 关系。
puppet采用C/S星状的布局 ,全部 的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送哀求 ,获得其最新的设置 信息,保证和该设置 信息同步。每个puppet客户端每半小时(可以设置)毗连 一次服务器端, 下载最新的设置 文件,并且严格 按照设置 文件来设置 客户端. 设置 完成以后,puppet客户端可以反馈给服务器端一个消息. 假如 出错,也会给服务器端反馈一个消息.

环境阐明 :

OS:CentOS 5.4 i386
puppetmaster 192.168.0.12 hostname: puppetmaster.info.com
client 192.168.0.64 hostname: client1.info.com

原理图:

Puppet 安装设置
方法


1) 客户端通过facter网络 客户端信息并发送至服务端
2) 毗连 服务端并哀求 catalog日记
3) 哀求 节点(node)的信息
4) 从服务器端吸收 节点(node)的实例
5) 编译代码(包括语法检查等工作)
6) 查询是否有exported 假造 资源
7) 如有,则从数据库吸收 假造 资源
8) 吸收 完备 的catalog日记
9) 存储catalog日记 到数据库
10) 客户端吸收 完备 的catalog日记

一、 时间同步,并写入crontab

15 1 * * * /usr/sbin/ntpdate pool.ntp.org; hwclock -w >/dev/null 2>&1

二、 修改主机名,并写入/etc/hosts文件

Puppet 要责备 部 机器有完备 的域名(FQDN),假如 没有 DNS 服务器提供域名的话,可以在两台机器上设置主机名
(留意 建议先设置主机名再安装 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
facter是一个体系 盘货 工具,网络 主的一些资料,比如CPU,主机IP等,它网络 到值发送给puppet服务器端,服务器端就可以根据不同的条件来对不同的节点机器天生 不同的puppet设置 文件


puppet资源下载点 http://downloads.puppetlabs.com/

复制代码代码如下:
[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)

[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'

[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 ]


测试剖析 与puppetmaster端口是否畅通

复制代码代码如下:
[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 '^]'.

[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

客户端:
[root@client1 puppet-2.7.14]# md5sum /etc/puppet/ssl/certs/client1.info.com.pem
27a295f39a6b4a6c7ceb74c9c3a5084c /etc/puppet/ssl/certs/client1.info.com.pem


出现修改主机名题目 引起无法认证,必要 重新申请证书,操作以下两个步骤:
服务端:
[root@puppetmaster ~]# rm /var/lib/puppet/ssl/ca/signed/client1.info.com.pem -rf

客户端:
[root@client1 puppet-2.7.14]# rm /etc/puppet/ssl/certs/ -rf

功能测试

服务端:
建立pp文件测试
puppet的第一个实行 的代码是在/etc/puppet/manifest/site.pp ,因此这个文件必须存在,而且其他的代码也要通过代码来调用.


复制代码代码如下:
[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

假如 报错
[root@client1 puppet-2.7.14]# puppetd --test --server puppetmaster.info.com
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not parse for environment production: Syntax error at end of file; expected '}' at /etc/puppet/manifests/site.pp:4 on node client1.info.com
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

大概 是/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!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 穆一平 | 2021-9-20 00:15:16 | 显示全部楼层
读了admin楼主的帖子,顿时马桶就通了。。。
回复

使用道具 举报

avatar 落败的青春阳落s | 2021-10-11 08:27:42 | 显示全部楼层
楼上是GG还是MM啊?
回复

使用道具 举报

avatar 春天到了 | 2021-10-13 08:17:12 | 显示全部楼层
经典,收藏了!
回复

使用道具 举报

avatar 护研的墙偃 | 2021-10-14 08:46:03 | 显示全部楼层
内容很有深度!
回复

使用道具 举报

avatar 旭日非常 | 2021-10-15 09:12:02 | 显示全部楼层
灌水不是我的目的!
回复

使用道具 举报

avatar 汉服消失好鄙 | 2021-10-16 00:51:38 | 显示全部楼层
admin楼主是男的还是女的?
回复

使用道具 举报

avatar 特朗普大爷 | 2021-10-16 18:07:24 | 显示全部楼层
有内涵!
回复

使用道具 举报

顶一下,收藏了!
回复

使用道具 举报

avatar 杰9 | 3 天前 | 显示全部楼层
admin楼主很有艺术范!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则