puppet 学习(一: 安装及简单实例应用)

本文涉及的产品
.cn 域名,1个 12个月
简介:
本次安装环境是: centos 5.4 X86_64位
Server:  

1. 先安装 ruby 语言包、 ruby 标准库、 ruby shadow
  yum install -y  ruby ruby-libs ruby-shadow
2. 需要添加 EPRL 库,来支持 puppet
       wget http:// dl.fedoraproject.org /pub/epel/5Server/x86_64/epel-release-5-4.noarch.rpm
如果你的系统是 centos 6 版本的或者是 centos 5 版本但是是 32 位的,可以到网站:
dl.fedoraproject.org 查找你们想要的
3. master 主机上,需要从 EPEL 仓库安装 puppet puppet-server facter
       rpm -Uvh epel-release-5-4.noarch.rpm
puppet 软件包含了 agent 程序, puppet-server 软件包含了 master 程序, facter 软件包含了系统盘点工具 facter ,可以获取 agent 主机的相关信息
       yum install -y puppet puppet-server facter
之后启动 puppet master
service puppetmaster start
启动  puppetmaster [ 确定 ]
这样, puppet server 上的安装算是完成了
现在, master agent 都安装好了, 解释一下 /etc/puppet/ 下的文件含义:
       Puppet.conf   puppet 的服务端配置文件
       Auth.conf   client 访问 puppet server acl 配置文件
       Fileserver.conf   puppet server 作为文件服务器的 ACL 配置文件
       Manidests    puppet 的脚本目录文件目录
       Site.pp  文件告诉 puppet 去哪里寻找并载入指定的客户端配置,如果缺少此文件, puppet 会启动失败的
   防火墙设置
       -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8140 -j ACCEPT
需要重启防火墙, service iptables restart
配置好防火墙后,就可以允许 client 访问 puppet
配置第一个agent

    Client
同样需要安装 epel-release-5-4.noarch.rpm
       rpm -ivh epel-release-5-4.noarch.rpm
agent 端只需要安装:
       yum install puppet facter
   Client  请求 puppet agent --server=puppet.xxxx.com(puppet master域名)  --verbose --no-daemonize
解释:参数
--server  指定了需要连接 puppet master  的域名或者主机名,尽量使用域名吧,否则不同网络之间无法通过主机名相通
--no-daemonize  使得 puppet  客户端运行在前端并输出日志到标准输出
--verbose  使客户端输出更详细的日志
Server 端需要相应这个请求
查看: puppet cert –list     
  "shwt08" (94:BC:4A:FA:31:E1:10:9F:3C:4D:B3:E8:CB:A4:F8:B9)
puppet cert --sign shwt08  

notice: Signed certificate request for shwt08
notice: Removing file Puppet::SSL::CertificateRequest shwt08 at '/var/lib/puppet/ssl/ca/requests/shwt08.pem'
当然,如果我们有很多个 client 的话,都需要一个个去认证确实是一件很麻烦的事情,所以,修改 puppet.conf 文件,实现自动化认证
        在全局 ”[mian]” 下添加一行:
       autosign = true
重启 master
       service puppetmaster restart
重新添加一个 clint ,验证
        需要先去 wget  后需要编辑 /etc/hosts
之后 puppet agent --server=puppet.xxxx.com  --no-daemonize –verbose  发现是没有问题的
创建第一个配置:

master 上修改两个文件:

        目录 /etc/puppet/manifests 下:
              nodes.pp  site.pp   如果没有这两个文件就手工建吧
vi nodes.pp
       node default {
   file{"/root/vol_disk_check.sh":
        source => "puppet:///files/vol_disk_check.sh",
        owner => "root",
        group => "root",
        mode => 755;
   }
}
Vi site.pp
              import 'nodes.pp'
至于具体的解释说明,等下章再详细的解释下,这篇文章主要来阐明 puppet安装及简易同步文件 的效果
        测试来同步一个文件 

              puppet agent --server=puppet.xxxx.com --test -v
ok ,从详细信息中,得知 client 已经同步文件了
 
下面说遇到的两个错误:
错误1
       err: Could not retrieve catalog from remote server: hostname not match with the server certificate 

解决办法:
        master client 上查看是否二者日期不同步
        client 上配置 /etc/hosts 文件,编辑添加 puppet.xxxx.com 解析(IP 域名)
错误2
       err: Could not retrieve catalog from remote server: Connection refused - connect(2)
解决办法:
               这个是因为 master  上的主程序没有启动的缘故,到 master 上查看程序 puppetmaster  发现提示进程已死,
       service puppetmaster status
puppetmasterd  已死,但  pid  文件仍存
查看了下配置文件,发现是在修改 fileserver.conf 时修改错误导致的,也就是说当遇到这个错误提示的时候,要查看 /etc/puppet 目录下的主配置文件是否有问题
    文件 fileserver.conf  中: [files]
  path /var/lib/puppet/files
这个 path 下是放置我们要同步更新的文件
 
 
 

      本文转自天真花语  51CTO博客,原文链接: http://blog.51cto.com/caibird/1148726 ,如需转载请自行联系原作者

相关文章
|
Windows
Puppet学习之文件管理
Puppet学习之文件管理 使用puppet可以方便的进行文件管理,可以对文件的内容、属组、属主、权限等进行管理。可管理的文件类型包括普通文件、目录、链接文件。类型需要在ensure类型中明确指定。
900 0
|
关系型数据库 网络安全 PostgreSQL
puppet连载14:安装puppetdb
yum install puppetdb puppetdb-terminus -y service puppetdb start vi /etc/puppet/puppet.
1020 0
|
网络协议 应用服务中间件 Shell
puppet连载12:linux安装nginx、openresty
服务端在/puppet/soft 里建nginx1102setup.sh,内容: !/bin/bash yum -y install wget libtool expat-devel gcc gcc-c++ glibc automake autocon...
905 0
|
Java 应用服务中间件 Linux
puppet连载九:linux安装jdk、tomcat模块
安装jdk1.8.0_91和tomcat8.0.36 mkdir -p /etc/puppet/modules/linuxjdktomcat/{manifests,templates,files} vi /etc/puppet/modules/linuxjdktomcat/manifests/init.
1059 0
|
MySQL 关系型数据库 Linux
puppet连载10:linux安装percona57/56/55、sysbench、tpcc模块
在服务端/puppet/soft下建my.cnf,内容为https://www.jianshu.com/p/c63fc6c71279 在服务端/puppet/soft下建changemysql57pass.
1029 0
|
关系型数据库 MySQL Linux
puppet连载四:服务端安装dashboard
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import - curl -L get.rvm.io | bash -s stable source /etc/profile.
1224 0
|
Linux 开发工具 git
puppet连载七:linux基础组件安装模块
linux基础组件安装模块linuxbaseinstall 更换源,安装gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf git mkdir -p /etc/puppet...
1052 0
|
网络安全 Apache Ruby
puppet连载三:服务端安装http、passenger
服务端安装插件: yum install -y ruby-devel ruby-libs rubygems libcurl-devel httpd httpd-devel apr-util-devel apr-devel mod_ssl gcc-c++...
1048 0
|
消息中间件
puppet 连载二:服务端和客户端安装(ActiveMQ、MCollective)
-------------------------------------服务端----------------------------------- 1、jdk安装 vi /etc/profile export JAVA_HOME=/usr/loca...
1114 0