阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Redhat Linux下Puppet集中配置管理

171次阅读
没有评论

共计 3857 个字符,预计需要花费 10 分钟才能阅读完成。

一 puppet 简介
puppet 是一个配置管理工具, 典型的, puppet 是一个 C/S 结构, 当然, 这里的 C 可以有很多, 因
此, 也可以说是一个星型结构. 所有的 puppet 客户端同一个服务器端的 puppet 通讯. 每个
puppet 客户端每半小时(可以设置) 连接一次服务器端, 下载最新的配置文件, 并且严格按照配
置文件来配置服务器. 配置完成以后,puppet 客户端可以反馈给服务器端一个消息. 如果出错,
也会给服务器端反馈一个消息.

二安装环境
server 端:172.25.254.2     vm2.example.com       puppet master

client 端:172.25.254.3    vm3.example.com       puppet agent
client 端:172.25.254.4    vm4.example.com       puppet agent

重要:server 与所有 client 之间需要解析, 以及时间同步, 不然会验证失败。

server 端:
首先安装这些包
[root@vm2 puppet]# yum install -y    puppet-server-3.8.1-1.el6.noarch.rpm     facter-2.4.4-1.el6.x86_64.rpm      ruby-augeas-0.4.1-3.el6.x86_64.rpm      rubygems-1.3.7-5.el6.noarch.rpm       rubygem-json-1.5.5-3.el6.x86_64.rpm      ruby-shadow-2.2.0-2.el6.x86_64.rpm      puppet-3.8.1-1.el6.noarch.rpm           hiera-1.3.4-1.el6.noarch.rpm 

开启服务:[root@vm2 puppet]# /etc/init.d/puppetmaster    start
                    Starting puppetmaster:                                     [OK]
 

查看 8140 端口是否开启
[root@vm2 puppet]# netstat -anltp|grep  ruby
tcp        0      0 0.0.0.0:8140                0.0.0.0:*                   LISTEN      1118/ruby  

客户端:
安装这些包:yum install -y puppet-3.8.1-1.el6.noarch.rpm     ruby-shadow-2.2.0-2.el6.x86_64.rpm    facter-2.4.4-1.el6.x86_64.rpm     hiera-1.3.4-1.el6.noarch.rpm     ruby-augeas-0.4.1-3.el6.x86_64.rpm    rubygems-1.3.7-5.el6.noarch.rpm    rubygem-json-1.5.5-3.el6.x86_64.rpm

发起认证:
第一次发起认证会显示没有证书,因为服务端还没有同意

这时可以在服务端查看发起认证请求的用户

签名证书
删除证书
puppet  cert  clean  vm3.example.com

在客户端查看有没有认证成功
如下图就证明认证成功了

三   服务端实现自动认证
在 server 端
vim /etc/puppet/puppet.conf 
在 main 底下添加这一行
[main]
autosign = true

/etc/puppet 目录下创建 autosign.conf 文件, 内容如下:
*.example.com                          #表示允许所有 example.com 域的主机
/etc/init.d/puppetmaster reload

在客户端只需要直接申请就可以成功
puppet agent  –server  vm2.example.com –test

在实际中有时会修改 client 端的主机名, 这样就需要重新生成证书:
1)在 server 端执行:puppet cert –clean     vm3.example.com #你要删除的原 client 端主机名
2) 在 client 端执行:rm -fr    /var/lib/puppet/ssl/*
puppet agent –server=puppet.example.com

puppet 的第一个执行的代码是在 /etc/puppet/manifest/site.pp, 因此这个文件必须存在, 而
且其他的代码也要通过该文件来调用。
四  服务端资源定义:
cd     /etc/puppet/manifests
vim  site.pp
file {
      “/mnt/puppet-3.8.1-1.el6.noarch.rpm”:                                                                   客户端去向
         content => “puppet:///files/puppet-3.8.1-1.el6.noarch.rpm”,                            服务端源
         mode => 600,                                                                                                       客户端得到资源权限
         owner => puppet                                                                                                   客户端得到资源用户   
}

cd ..
mkdir   files
将 puppet-3.8.1-1.el6.noarch.rpm 包放到此目录下
vim    /etc/puppet/fileserver.conf
在最底下添加如下
[files]
path  /etc/puppet/files
allow  *

客户端验证    这副图展示了 /mnt 下的资源的变化
并且也验证了服务端的配置

 软件包跟服务定义
继续编辑刚才的 site.pp 文件,向里面添加如下
package {## 软件包定义
        “vsftpd”:
        ensure => present(安装 present, 卸载 absent)
       
}

service {## 服务定义
        “vsftpd”:
        ensure => running
}

file {
        “/etc/vsftpd/vsftpd.conf”:
        source => “puppet:///files/vsftpd.conf”,
        mode => 600,
        notify => Service[vsftpd]                                           相当于 reload
}
然后在客户端测试

用户建立
继续编辑 site.pp 文件添加如下
user {“xp”: uid => 900,                                ## 创建用户
home => “/home/test”,
shell => “/bin/bash”,
provider => useradd,
managehome => true,
ensure => present,
password => westos
}

#exec {“echo westos | passwd –stdin xp”:                ## 更改密码加密方式 这样加密在 /etc/shadow 下密码会是明文
#path => “/usr/bin:/usr/sbin:/bin”,
#onlyif => “id xp”
#}

客户端验证

crontab 任务
在服务端 老规则,继续编译 site.pp 文件
cron {echo:
command => “/bin/echo `/bin/date` >> /tmp/echo”,
user => root,
hour => [‘2-4’],
minute => ‘*/10’
}

任务会在 client  的 /var/spool/cron 目录中生成
在客户端验证

总之,puppet 是一个很好的管理系统,是以后自动化运维的必不可少的工具,大家可以自己动手搭建一个 lnmp 架构,源码安装,
之后我会发布,希望大家共同探讨,共同进步。

Puppet 学习系列:

Puppet 学习一:安装及简单实例应用 http://www.linuxidc.com/Linux/2013-08/88710.htm

Puppet 学习二: 简单模块配置和应用 http://www.linuxidc.com/Linux/2013-08/88711.htm

相关阅读:

有关 Puppet agent 端三种备份恢复方案探讨研究 http://www.linuxidc.com/Linux/2013-07/87885.htm
选择更安全的方式注册你的 Puppet 节点 http://www.linuxidc.com/Linux/2013-07/87884.htm
通过配置 SSH 深刻理解 Puppet 的语法及工作机制 http://www.linuxidc.com/Linux/2013-07/87882.htm
Puppet 利用 Nginx 多端口实现负载均衡 http://www.linuxidc.com/Linux/2013-02/79794.htm
CentOS(5 和 6)下 Puppet 的 C / S 模式实例 http://www.linuxidc.com/Linux/2011-12/50502.htm

Puppet 的详细介绍:请点这里
Puppet 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-03/129278.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3857字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中