Puppet master/agent 模型

模块:目录结构

     module_name/

        manifests/

            init.pp:包含一个与模块名相同的模块

             *.pp:一个清单文件通常只包含一个类,而且建立清单文件名与类名相同:nginx::web ,文件名为web.pp

安装master端:

首先域名解析 因为puppet 基于ssl认证 所以 要解析,这里配置hosts文件也可以
[root@puppet ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.6 agent.cc.com  #客户端
192.168.1.8 puppet.cc.com  #master端
master和agent端要一样

安装
yum install puppet-server
启动
puppet master --no-daemonize -d -v #首次启动建议前台显示,可以看见初始化过程
/etc/init.d/puppetmaster start #这样也可以启动
chkconfig puppetmaster on
生成mastaer端配置文件
puppet master --genconfig >>/etc/puppet/puppet.conf
/etc/init.d/puppetmaster restart #重启master端
查看监听端口
[root@puppet ~]# ss -antlp |grep puppet
LISTEN     0      5                         *:8140                     *:*      users:(("puppetmasterd",8956,5))

服务器自动签署客户端
在/etc/puppet 下创建autosign.conf  #
追加要签署的域名
echo *.cc.com > /etc/puppet/autosign.conf   *名称统配  对那个域内的主机颁发证书

安装agent

yum install puppet
也可以生成配置文件
puppet agent --genconfig  #生成与专用agent端
在配置文件agent段  添加server = puppet.cc.com #自己puppet服务器
启动agent脚本
service puppet start #用于每隔30分钟和服务器同步自己的信息
chkconfig puppet on
初始化agent端
 puppet agent --server puppet.cc.com -d -v --noop --test  #-d 调试 -v 详细信息  --noop  测试运行,模拟运行  --test 仅作测试不执行服务器端的catalog

服务端签署agent端请求

puppet cert help #查看帮助
puppet cert list #查看客户端请求
[root@puppet ~]# puppet cert list
  "agent.cc.com" (0D:08:72:0A:71:EC:31:B7:BB:4D:5D:BD:25:EE:C5:39)
[root@puppet ~]#  puppet cert sign agent.cc.com #签署证书请求
notice: Signed certificate request for agent.cc.com
notice: Removing file Puppet::SSL::CertificateRequest agent.cc.com at '/var/lib/puppet/ssl/ca/requests/agent.cc.com.pem'

客户端执行
puppet agent --server puppet.cc.com -d -v --test

测试,在服务器端写个pp文件来测试,用于站点清单,定义agent端使用那些模块必须是site.pp这个文件是agent端来服务端获取文件的入口

[root@puppet manifests]# pwd
/etc/puppet/manifests
[root@puppet manifests]# cat nginx.pp   #安装一个nginx 并运行
package {'nginx':
	ensure => installed,
#	before => Service['nginx'],
}
service {'nginx':
	ensure => true,
	require => Package['nginx'],
}
	
[root@puppet manifests]# cat site.pp 
import "test1.pp"   #表示倒入所有.pp结尾的文件

重启master端
客户端执行
puppet agent --server puppet.cc.com -d -v  --test
测试
[root@agent ~]#   rpm  -q nginx
nginx-1.0.15-11.el6.x86_64
[root@agent ~]# ss -antlp |grep nginx
LISTEN     0      128                       *:80                       *:*      users:(("nginx",3935,6),("nginx",3937,6))

检查语法清单文件中的语法错误

puppet parser validate /path/to/path/manifest_file.pp

puppet apply --genmanifest  #生成样例清单

puppet 命令总结 apply agent master cert describe

agetn:客户端进程

master:服务器进程

apply:应用本地清单信息

cert:证书管理

describe:资源帮助信息

module:模块管理

kick:master触发模式

帮助类命令

describe :显示资源

doc:生成puppet文档   

help:查看帮助 

resource:查看资源帮助

status:查看puppet状态

master命令的选项

    --no-daemonize  前台运行

    --daemon  -D  后台运行

    --debug -d  调试

    --verbose -v 显示详细信息

    --genconfig 生成配置文件

agent命令的常用选项

    --daemonize -D

     --no-daemonize 

    --debuge

    --verbose

    --noop:no operation 模式,不真正应用catalog

    --test :“测试 "

    --waitforcert:等待证书签署成功

apply命令的常用选项

    --debuge,-d

    --verbose -v

    --execute -e

    --modulepath 

cert命令常用选项

    list

    sign:签署

    clean 清楚证书

    revoke 吊销证书

    verify 验证本地制定的证书

    generate 为客户端生成证书

puppet 的模块管理:

   puppet help module

    

[root@agent puppet]# puppet module search httpd  #在线获取httpd 模块
Searching http://forge.puppetlabs.com ...
NAME                                 DESCRIPTION                         AUTHOR          KEYWORDS         
BoxUpp-mod_jk                        This is a puppet module to inst...  @BoxUpp         tomcat httpd     
JonTheNiceGuy-simple_apache_vhost    This puppet module provisions a...  @JonTheNiceGuy  ssl httpd tls    
domcleal-augeasproviders             Alternative Augeas-based provid...  @domcleal       ssh nrpe httpd   
eshamow-pe_httpd                     UNKNOWN                             @eshamow                         
example42-lighttpd                   Puppet module for lighttpd          @example42      lighttpd         
herculesteam-augeasproviders_apache  Augeas-based apache types and p...  @herculesteam   httpd types      
mstanislav-apache_yum                UNKNOWN                             @mstanislav     apache httpd http
puppetlabs-apache                    Installs, configures, and manag...  @puppetlabs     web ssl httpd    
reidmv-pe_httpd                      Puppet Enterprise puppet module     @reidmv                          
saltycowdawg-apache                  Manage installation and configu...  @saltycowdawg   apache web httpd 
theforeman-apache                    Apache HTTP server configuration    @theforeman     apache httpd     
thias-apache_httpd                   Manage the Apache httpd web ser...  @thias          apache web httpd 
thias-nginx                          NGINX web server module.            @thias          webservers httpd 
thias-php                            PHP module                          @thias          php httpd fpm    
treydock-scl                         Manage Software Collections         @treydock       php httpd scl    
virtualswede-lighttpd                UNKNOWN                             @virtualswede   ubuntu lighttpd 

安装一个模块
 [root@agent puppet]# puppet module install eshamow-pe_httpd 
Preparing to install into /etc/puppet/modules ...
Downloading from http://forge.puppetlabs.com ...
Installing -- do not interrupt ...
/etc/puppet/modules
└── eshamow-pe_httpd (v0.0.1)

puppet 运行环境定制:

        开发:development

        测试:testing

        线上:    production

        /etc/puppet/modules/

你可能感兴趣的:(Puppet master/agent 模型)