Puppet的在centos6.6下的初步安装配置以及证书注册

Puppet:

Puppet的在centos6.6下的初步安装配置:

因为puppet分为服务器端和客户端,所以安装的时候,稍微有一点点出入:

一、基础安装:

Master

建议在开始安装之前先配置主机的hostname,因为会影响到后面的puppet证书注册

更改hostname的同时写入host配置文件

Master的hostname为:hostnamepuppet.domain.com

另外两台客户端的hostname分别为:

hostnameagent.domain.comhostname agentone.domain.com

在puppetmaster端写入host文件

vi /etc/hosts

192.168.74.136 puppet.domain.com

192.168.74.135 agent.domain.com

192.168.74.137 agentone.domain.com

1.进行安装之前先更新系统的yum库并进行相关puppet组件的安装:

yum –y update 进行yum库更新

yuminstall -y ruby ruby-libs ruby-shadow rubygem-json

安装完成可以查看ruby的版本为:

ruby –v

ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]

2.进入/root/download目录下面进行puppet的rpm包的下载并进行安装:

如果提示wget没有找到,请用yum进行安装:

yum –y install wget 如果已经安装过了,可以跳过这一步

wgethttp://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-6.noarch.rpm

rpm -ivh puppetlabs-release-6-6.noarch.rpm 进行安装,如下图所示:


3.等待安装完成以后,继续更新yum库:

yum –y update 此步更新是为了更新之前安装的相关组件

等待更新完成之后,即可安装puppet的服务器端:

yuminstall -y puppet-server

4. 安装完成以后可以查看当前安装的puppet的版本:

puppet -V

3.8.7

facter -v

2.4.6

5.查看puppet的安装树状目录:


6.防火墙设置:

vi /etc/sysconfig/iptables

iptables –AINPUT –p tcp –dport 8140 –j ACCEPT

或iptables –A INPUT –p tcp –s 192.168.0.0/24 –dport 8140 –j ACCEPT

或者直接关闭防火墙:service iptables stop

7.启动puppetmaster服务

/etc/init.d/puppetmasterstart 或者service puppetmaster start

8.加入系统开机启动项

chkconfig puppetmaster on


Salve:(agent

1.修改hostname并写入vi /etc/hosts

192.168.74.136 puppet.domain.com

192.168.74.135 agent.domain.com

2.更新yum库、下载puppet官方安装包、安装官方安装包、更新yum库

yum –y update

wget http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-6.noarch.rpm

rpm -ivh puppetlabs-release-6-6.noarch.rpm

yum –y update

与master的第3步对比,在更新完yum以后,安装的服务该是客户端服务安装:

yum install -y puppet

3. 用跟master一样的方式来更改防火墙设置

4. 查看puppet客户端的安装树状目录:


5.启动puppet服务:

/etc/init.d/puppetstart 或者service puppet start

6.加入系统启动项:

chkconfigpuppet on

二、进行测试:

1. 在Master一端的下面这个路径下创建一个site.pp的文件,这个文件如果没有,就手动创建。

vi/etc/puppet/manifests/site.pp

并写入:

node default {

file {

"/tmp/fristone.txt":content => "hello,world";

}

}

意为:

用此段代码,来给客户端下的/tmp目录下面创建一个名为fristone.txt的文本文件,且内容为“hello,world”。

而如果在agent的客户端上执行puppet,则运行成功后,会在/tmp的目录下生成相应的文件但有很大的可能会提示你未注册,所以执行失败。

四、进行证书注册

1.自动注册

a.需要在puppetmaster端的/etc/puppet目录下新建文件autosign.conf表示自动注册配置文件。也可以理解为puppetmaster的acl控制列表方式。这种注册的方式效率会相对较高,然后填入:*.domain.com 最后保存退出

“*”表示匹配所有,后面的域名需要匹配hostname的域名。

因为这两台实验的机器之前的hostname是puppet.domain.com和agent.domain.com,所以最终里面填入的匹配域名为“domain.com”。

意为只要是后缀域名为domain.com的客户端主机都可以向puppetmaster申请注册证书。

b.在客户端agent端的服务启动的前提下,直接执行:

puppet agent--test --server=puppet.domain.com

如果有下面这样的报错,则表示PuppetMaster端和PuppetClient的证书不匹配。


解决办法:

同时清除Master端和客户端slave端的ssl证书,重新进行注册

在master端执行:puppet cert –clean –all

重启服务:servicepuppetmaster restart

在slave端执行:rm -rf /var/lib/puppet

重启服务:servicepuppet restart

相反,如果没有出现上面的错误,那么正确注册应该如下图所示:


同时可以看到,客户端应用的服务端的site.pp里面的配置。在客户端的/tmp的文件下面新建了fristone.txt的文本,并添加内容“helloworld”


2.手动注册

a.先在master端删除刚刚注册的agent客户端的证书

puppet cert --clean agent.domain.com


再去掉之前创建的自动注册文件autosign.conf并重启服务

mv autosign.confautosign.conf.back

service puppetmaster restart

b.在agent客户端也删除注册过的证书,并重启服务

rm -rf /var/lib/puppet

service puppetrestart

c.查看master端目前的注册条目,可以看到有两条,一条是自己启动服务后有的,一条是另外一个客户端的。


d.在客户端agent下执行命令申请证书:

puppet agent --test--server=puppet.domain.com


e.在回到master上查看申请证书的列表,如下:


注意看红框标注的这一条是多出来,且前面的部分这里,是没有“+”号的,没有加号表示没有得到服务器master的认证签名。

所以接下来需要给此条客户端请求授权签名。

f.执行授权签名的命令:

puppet cert --sign agent.domain.com

puppet cert --sign –all 这条命令表示批量的对所有证书请求签名


这样就签名完成了,再一次查看所有已签名证书:

puppet cert list --all


现在可以看到都有加号了。

g.再回到客户端agent的一端进行检测:

puppet agent --test--server=puppet.domain.com


可以看到已经应用了来自服务器master端的site.pp的内容

[root@SLC-two lib]# cat/tmp/fristone.txt

hello,world

到这里算是初步安装完成,关于具体使用,空了再写。

相关文章

有时候CentOS工作在无互联网的环境下,需要在离线环境下安装一些组件,这次实现的是模拟在离线环境下安...
首先参照https://www.cnblogs.com/wdw984/p/13330074.html,来进行如何安装Centos和离线下载rpm包。 离...
有两个.NET CORE3.1网站部署在CentOS7上(内网IP是192.168.2.32),现在想实现访问http://192.168.2.32...
1、yum -y install vsftpd 安装vsftpd 2、配置vsftpd的配置文件(/etc/vsftpd/vsftpd.conf)主要修改以...
首先去mysql官网下载mysql的离线rpm安装包(https://downloads.mysql.com/archives/community/) Mysql...
第一步下载erlang环境并安装: wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_...