Puppet
sever:172.25.23.1 server1.example.com puppet master
client:172.25.23.2 server2.example.com puppet agent
client:172.25.23.3 server3.example.com puppet agent
server 与所有 client 之间需要解析,以及时间同步,iptables selinux disabled
一.基础配置
1.安装软件
(1) server
[root@server1 ~]# yum install -y puppet-server-3.0.1-1.el6.noarch.rpm puppet-3.0.1-1.el6.noarch.rpm facter-2.4.4-1.el6.x86_64.rpm ruby-shadow-2.2.0-2.el6.x86_64.rpm hiera-1.3.4-1.el6.noarch.rpm ruby-augeas-0.4.1-3.el6.x86_64.rpm rubygem-json-1.5.5-3.el6.x86_64.rpm rubygems-1.3.7-5.el6.noarch.rpm
[root@server1 ~]# /etc/init.d/puppetmaster start
(2) client
[root@server2 ~]# yum install -y puppet-3.0.1-1.el6.noarch.rpm facter-2.4.4-1.el6.x86_64.rpm ruby-shadow-2.2.0-2.el6.x86_64.rpm hiera-1.3.4-1.el6.noarch.rpm ruby-augeas-0.4.1-3.el6.x86_64.rpm rubygem-json-1.5.5-3.el6.x86_64.rpm rubygems-1.3.7-5.el6.noarch.rpm
注意:客户端先不开启服务
2.获取证书
server
# puppet 的第一个执行的代码是在/etc/puppet/manifest/site.pp,因此这个文件必须存在,而且其他的代码也要通过该文件来调用
(1) server手动生成签名
a)client先向服务端发送请求
# 会显示失败,是因为,server端没有client的证书,因此,server需要手动生成
b)server端手动进行签证
c) client再次获取证书
client 向 master 发出证书验证请求,然后等待 master 签名并返回证书。
参数--server 指定了需要连接的 puppet master 的名字或是地址,默认连接名为puppet的主机如要修改默认连接主机可以修改/etc/sysconfig/puppet 文件中的 PUPPET_SERVER=puppet 选项
参数--no-daemonize 是 puppet 客户端运行在前台
参数--verbose 使客户端输出详细的日
(2) server自动生成签名
a)修改server的配置文件
vim /etc/puppet/puppet.conf
vim /etc/puppet/autosign.conf
/etc/init.d/puppetmaster reload
b)将server原有的签名删除
c)client端删掉原有证书的记录,再重新获取
rm -fr /var/lib/puppet/ssl
在实际中有时会修改 client 端的主机名,这样就需要重新生成证书
3.资源定义
资源定义在 /etc/puppet/manifest/site.pp
(1) 创建文件
Server
Vim /etc/puppet/manifest/site.pp
client
puppet agent --server server1.example.com --no-daemonize -vt
cat /tmp/wang
(2) 当改变资源内容时,Hash码也会发生变化
server
Passwd存储在 /etc/puppet/files(自己创建的)
vim /etc/puppet/fileserver.con
Vim /etc/puppet/manifest/site.pp
Client
puppet agent --server server1.example.com --no-daemonize -vt
生成的新的Hash会和server端中的资源相同
(3)安装包
(4)服务
service { "httpd": ensure => running;
"vsftpd": ensure => stopped
}
(5) 用户
(6)文件系统挂载
server
在172.25.23.250上,需要设置nfs分享
且在client需要安装 nfs-utils软件
自动挂载文件系统,并同步 fstab 文件,如果需要卸载,改为 absent
(7) crontab任务
任务会在 client 上/var/spool/cron 目录中生成
二.安装vsftpd,httpd及启动服务
Server
Vim /etc/puppet/manifest/site.pp
Client
puppet agent --server server1.example.com --no-daemonize -vt
三.编写httpd 模块
server
vim site.pp
vim server3.pp
各部分内容如下
注意:若出现如下报错,则是资源中文件的权限不够,最少为644
四.编写nginx模块
server:
vim nginx.sh
vim nginx.conf
vim init.pp
vim install.pp
vim config.pp
vim service.pp
vim site.pp
vim server2.pp
Client:
作业:课后完成lnmp的搭建
本文出自 “11841085” 博客,转载请与作者联系!
原文:http://11851085.blog.51cto.com/11841085/1847487