HCRM博客

如何在CentOS上安装和配置Puppet以实现自动化管理?

CentOS Puppet 教程

Puppet是一种Linux、Unix、Windows平台的集中配置管理系统,使用自有的Puppet描述语言,可管理配置文件、用户、Cron任务、软件包、系统服务等,Puppet把这些系统实体称之为资源,Puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系,Puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互,每个客户端周期地(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。

如何在CentOS上安装和配置Puppet以实现自动化管理?-图1
(图片来源网络,侵权删除)

前期准备

在开始之前,需要准备两台CentOS7虚拟机,一台用作server端,一台用作agent端,确保IP地址和hostname严格匹配FQDN格式,并同步时间,关闭防火墙和selinux,配置ip地址和hostname映射。

安装与配置

1. puppetmaster安装

下载官方rpm包,并配置yum源:

wget https://yum.puppetlabs.com/el/7/products/x86_64/puppetlabsrelease710.noarch.rpm
rpm ivh puppetlabsrelease710.noarch.rpm
yum y update

安装puppetserver:

yum install puppetserver puppet y

启动服务:

systemctl start puppetmaster
systemctl start puppet

查看启动情况:

如何在CentOS上安装和配置Puppet以实现自动化管理?-图2
(图片来源网络,侵权删除)
netstat tnlp |grep 8140

修改配置文件:

vi /etc/puppet/puppet.conf
certname=puppetmaster.jun.cc #定义自己签名认证的名称,即自己的主机名

2. puppetagent安装

安装puppet:

yum install puppet y

修改配置文件:

vi /etc/puppet/puppet.conf
certname=puppetagent.jun.cc #定义自己签名认证的名称,即自己的主机名
server=puppetmaster.jun.cc #指定puppetmaster
runinterval=60 #定义agent多长时间主动从master拉取一次资源

启动服务:

systemctl start puppet

3. 实现master和agent的认证连接

如何在CentOS上安装和配置Puppet以实现自动化管理?-图3
(图片来源网络,侵权删除)

agent端尝试发送注册申请:

puppet agent t

master端进行认证连接:

puppet cert list

签发认证:

puppet cert sign all

agent再次发送注册申请:

puppet agent t

生成证书在:

/var/lib/puppet/ssl

应用案例

文件资源案例

1、创建文件:

编辑配置文件:

   vi /etc/puppet/manifests/site.pp
   node 'puppetagent.jun.cc'{
       file{'aaa':
           path => "/tmp/puppet.txt",
           content => "Hello puppet agent";
       }
   }

agent端手动拉取资源:

   puppet agent t

查看执行情况:

   cat /tmp/puppet.txt

输出应为“Hello puppet agent”。

2、复制本地配置文件:

编辑部署文件:

   vi /etc/puppet/manifests/site.pp
   node 'puppetagent.jun.cc'{
       file{'conf':
           path => "/tmp/httpd.conf",
           mode => "644",
           owner => "root",
           group => "root",
           source => "puppet://puppetmaster.jun.cc/files/httpd.conf",
       }
   }

修改配置文件:

   vi /etc/puppet/fileserver.conf
   [files]
   path /etc/puppet/files/
   allow

查看执行情况:

   ls /tmp/

输出应包含httpd.conf文件。

常见问题解答(FAQs)

Q1: Puppet是什么?A1: Puppet是一种Linux、Unix、Windows平台的集中配置管理系统,使用自有的Puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等,Puppet把这些系统实体称之为资源,Puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。

Q2: 如何在CentOS上安装Puppet?A2: 下载官方rpm包,并配置yum源,安装puppetserver和puppet,修改配置文件,启动服务,并进行master和agent的认证连接。

分享:
扫描分享到社交APP
上一篇
下一篇