i1zhuxian 发表于 2015-12-17 15:24:34

puppet简单示例

一、简单的文件配置

1.全局配置site.pp
vi /etc/puppet/manifests/site.pp

[root@puppet-server puppet]# cat /etc/puppet/manifests/site.pp
import 'nodes.pp'
$puppetserver = 'puppet-server.com'


2.节点配置文件nodes.pp
[root@puppet-server puppet]# cat /etc/puppet/manifests/nodes.pp
node 'puppet-agent1.com' {
include motd
}


3.创建模块文件目录
mkdir -vp /etc/puppet/modules/motd/{files,templates,manifests}


4.模块核心配置文件init.pp
[root@puppet-server puppet]# cat /etc/puppet/modules/motd/manifests/init.pp
class motd {
package { setup:
ensure => present,
}
file {"/etc/motd":
owner => "root",
group => "root",
mode => 644,
source => "puppet://$puppetserver/modules/motd/etc/motd",
require => Package["setup"],
}
}

5.创建需要配置的模块文件
mkdir /etc/puppet/modules/motd/files/etc
echo "test" >/etc/puppet/modules/motd/files/etc/motd


6.启动并测试
启动master
service puppetmaster start
启动客户端测试
[root@puppet-agent1 puppet]# puppet agent --server=puppet-server.com --no-daemonize --verbose --noop --onetime

无报错则启动进程 service puppet start
#在设置配置文件时注意拼写错误!
为 方便测试可以在agent的puppet.conf
中的下加入:
runinterval=5

#每5秒同步一次


OK 你可以去更改master端的/etc/puppet/modules/motd/files/etc/motd文件,然后看下在agent端的/etc/motd文件是否同步更改。(生产环境runinterval建议为半小时同步一次)


二、http配置
1.创建http相应的文件目录
[root@puppet-server puppet]# mkdir -vp /etc/puppet/modules/httpd/{manifests,templates,files}


2 配置http模块文件
[root@puppet-server puppet]# vi/etc/puppet/modules/httpd/manifests/init.pp

class httpd {
yumrepo { "repo163":
      descr => "163 repo",
      baseurl => "http://mirrors.163.com/centos/6/os/x86_64/",
      gpgcheck => "0",
      enabled => "1";
      }
package {
      "httpd":
      ensure => installed,
      require => Yumrepo["repo163"];
      }
}


3.修改nodes.pp文件
[root@puppet-server puppet]# vi /etc/puppet/manifests/nodes.pp
node 'puppet-agent1.com' {
include motd
include httpd
}



4.检查配置文件语法
[root@puppet-server puppet]# puppet parser validate /etc/puppet/modules/httpd/manifests/init.pp


5.agent端运行配置
[root@puppet-agent1 ~]# puppet agent --test --server puppet-server.com
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for puppet-agent1.com
Info: Applying configuration version '1447120815'
Notice: /Stage/Httpd/Yumrepo/ensure: created
Info: changing mode of /etc/yum.repos.d/repo163.repo from 600 to 644

Notice: /Stage/Httpd/Package/ensure: created
Notice: Finished catalog run in 73.09 seconds


6.查看httpd是否安装
[root@puppet-agent1 ~]# rpm -q httpd
httpd-2.2.15-47.el6.centos.x86_64

ok httpd已配置安装完成

#过程中遇到的错误
ERROR OpenSSL::SSL::SSLError: SSL_accept returned=1 errno=0 state=SSLv3 read client certificate A: sslv3 alert bad certificate

这个是认证错误,客户端删掉原来的证书,服务端也要清除这台机器的认证信息,之后再重新向服务端注册认证
操作如下:
客户端删除认证文件:
rm -rf /var/lib/puppet/ssl
服务端删除该机器认证机器:
puppet cert --clean puppet-agetn1.com
ok,服务端在重新签名认证就好了。





页: [1]
查看完整版本: puppet简单示例