puppet安装

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

环境 CentOS 6 x64

服务端:puppet.test.org

客户端:apache01.test.org

 

 服务端和客户端统一使用官方源,即目前的puppet 2.7版本 

 
 
  1. rpm -ivh http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-5.noarch.rpm 

 

客户端安装 

 
 
  1. # yum install puppet 

 

设置固定IP,主机名为apache01.test.org,并在host文件中解析

编辑/etc/sysconfig/puppet,去掉两行注释,内容如下 

 
 
  1. PUPPET_SERVER=puppet.test.org 
  2. PUPPET_PORT=8140 

 

在/etc/puppet/puppet.conf 的【main】部分加上如下内容 

 
 
  1. server = puppet.test.org 

(鉴于不断爆发的人品,我加上了上面的内容来指定服务端。有些童鞋没加也能测试成功。)

 

服务端

设置固定IP,主机名为puppet.test.org,并在hosts文件中解析

 

安装服务端 

 
 
  1. #yum install puppet-server 

 

编辑/etc/puppet/puppet.conf,添加如下内容 

 
 
  1. [master] 
  2.  
  3. autosign = true 
  4.  
  5. masterport = 8140 

 

新建文件/etc/puppet/autosign.conf,内容如下 

 
 
  1. *.test.org 

 

autosign会有一些安全问题,在起初大规模部署时比较省力,部署后应该弃用。之后添加的个别的机器用puppet cert -s xxx来手动认证。 

 

namespaceauth.conf文件,并根据情况修改,这里是“allow *.test.org”

 
 
  1. #cp /usr/share/doc/puppet-2.7.18/examples/etc/puppet/namespaceauth.conf /etc/puppet 

 

建立一个简单的测试任务,创建文件/etc/puppet/manifests/site.pp,内容如下

 
 
  1. file { "/etc/sudoers": 
  2.          owner => root, 
  3.          group => root, 
  4.          mode => 400, 

 

启动服务 

 
 
  1. chkconfig puppetmaster on 
  2. /etc/init.d/puppetmaster start 

 

关闭防火墙或者打开8140端口

 

测试结果 

 
 
  1. [root@apache01 ~]# puppet agent --test 
  2. info: Creating a new SSL key for apache01.test.org 
  3. info: Caching certificate for ca 
  4. info: Creating a new SSL certificate request for apache01.test.org 
  5. info: Certificate Request fingerprint (md5): 48:6F:F0:37:91:87:44:17:D9:94:5F:38:06:E0:3B:28 
  6. info: Caching certificate for apache01.test.org 
  7. info: Caching certificate_revocation_list for ca 
  8. info: Caching catalog for apache01.test.org 
  9. info: Applying configuration version '1342493716' 
  10. notice: /File[/etc/sudoers]/mode: mode changed '0440' to '0400' 
  11. info: Creating state file /var/lib/puppet/state/state.yaml 
  12. notice: Finished catalog run in 0.02 seconds 

测试成功!

说明一下,保持时间一致是一个重要前提,建议使用ntp,最好是内网的ntp服务器。  

 

puppet的文件服务

puppet经常需要做文件服务,目前只支持puppet自有的协议,即puppet://

使用方法,依然以sudoers为例

 
 
  1. file { "/etc/sudoers":   
  2.         owner => root,   
  3.          group => root,   
  4.          mode => 400,   
  5.          source => "puppet:///files/sudoers",  
  6. }  

客户端会定期检查sudoers的md5,如果发生变更,则用服务器上的文件覆盖本地文件。

puppet的文件服务很像rsync,都是用[方括号]表示一个类,然后export出去

fileserver.conf 默认全是注释,添加下面的内容

 
 
  1. [files] 
  2. path /etc/puppet/files 
  3. alllow 192.168.1.0/24 

 

邮件报告(可选)

每次客户端执行完任务会报告给服务端,服务端可以将报告通过邮件发给指定的地址

在服务端配置puppet.conf

 
 
  1. [master] 
  2.   reports = store,tagmail 

 

创建文件/etc/puppet/tagmail.conf,多个邮件地址用逗号分隔,内容如下

 
 
  1. all: admin@test.org,root@localhost 

 

 all指所有消息,也可以是其他标签,比如err,info等,不细讲。

 

注:该功能需要sendmail或postfix支持,实现方式简单有效,适合小规模场合,如果客户端很多会比较麻烦,后面文章会讲到puppet-dashboard 。

  

  有时候由于更换主机名,我们需要重新配置认证:  

 

(1)、首先在客户端删除 rm -rf /var/lib/puppet/ssl/文件夹  

 (2)、然后在服务器端删除客户端的证书:puppetca --clean apache01.test.org  

 (3)、然后再在客户端执行puppetd --test 即可!  

 

puppet 支持客户端与服务端版本不一致,但是要注意两点

1、服务端版本大于等于客户端版本

2、版本差距不要太大,建议不要跨大版本号

3、不建议编译安装puppet,这会在后期维护时相当麻烦

 

注:

DNS解析由ipa-server包办,也就是内网DNS,见另一篇博文。否则请在/etc/hosts文件中单独解析。










本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/933454,如需转载请自行联系原作者

目录
相关文章
|
关系型数据库 网络安全 PostgreSQL
puppet连载14:安装puppetdb
yum install puppetdb puppetdb-terminus -y service puppetdb start vi /etc/puppet/puppet.
1064 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...
930 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.
1078 0
|
MySQL 关系型数据库 Linux
puppet连载10:linux安装percona57/56/55、sysbench、tpcc模块
在服务端/puppet/soft下建my.cnf,内容为https://www.jianshu.com/p/c63fc6c71279 在服务端/puppet/soft下建changemysql57pass.
1075 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.
1265 0
|
Linux 开发工具 git
puppet连载七:linux基础组件安装模块
linux基础组件安装模块linuxbaseinstall 更换源,安装gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf git mkdir -p /etc/puppet...
1073 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++...
1067 0
|
消息中间件
puppet 连载二:服务端和客户端安装(ActiveMQ、MCollective)
-------------------------------------服务端----------------------------------- 1、jdk安装 vi /etc/profile export JAVA_HOME=/usr/loca...
1149 0
|
网络协议 Apache
puppet 连载一:服务端和客户端安装(puppet、svn)
1、mkdir /puppet mkdir /puppet/soft 2、服务端安装dnsmasq:yum install -y dnsmasq cp /etc/dnsmasq.
1418 0
|
Linux Windows Ruby
puppet 服务端 客户端安装
转载:http://blog.51cto.com/ywzhou/1576141一、安装说明 官方安装向导https://docs.puppetlabs.com/guides/install_puppet/install_el.
1063 0