带着问题来学习

从如下内容来看,如何自定义安装用户想要的东西呢?

103045354.png

系统更新问题

puppet支持多系统且会自动调用系统不同的命令和功能来完成目的。这里也有个问题,如果系统有较大升级,puppet来不及更新怎么办?

软件配置权限如何定义?

Master,agent 哪个主动通信

如何批量签名

何批量安装同功能模块的服务器,批量操作同功能模块的服务器,同功能模块的服务器中新增机器如何处理(开新服)

是否能定期同步信息,为什么在agent上拉信息,不能是master发送信息。

Site文件越来越大,如何管理

Master管理多台服务器性能出现瓶颈如何处理

多master之间时时同步机制puppet是否有内部组件实现

每个服务器上都需要有filea.txt ,filea.txt文件中只有hostname不一致如何实现


Puppet简介:

功能说明

Puppet是一个基于R u b y ,并使用GPLv2协议授权的开源软件,它既能以C/S的方式运行,也能独立运行。它主要由Luke.Kanies和他的公司Puppet Labs ( 以前称为Reductive Labs)开发。Kanies从1997年开始涉足Unix和系统管理,然后基于这些经验开发了Puppet。因为对巳经存在的配置管理工具不满意,Kanies在2001年开始了这- -新工具的开发,并于2005年创立了-家专注于自动化工具的开源软件开发公司:PuppetLabs。不久之后,Puppet Labs发布了他们的旗舰产品 Puppet。


企业应用

1.Google 通过puppet管理6000+mac电脑

2.安居客应用于服务器管理,官网甚至有安居客模块代码分享

3.中小企业的应用趋势


工作原理

企业应用主要基于puppet的C/S架构。

103048562.png


数据流向:

puppet与其它自动化工具对比(摘自华东技术分享ppt

103046259.png



为什么选择puppet

puppet与其它自动化工具对比(摘自华东技术分享ppt


103049204.png

特性简述

master,node 均以demo方式运行,默认每30min通信一次;

高级应用建议学习ruby;

建议选择2.6.x以上版本,reset api替换了xml-rpc作为传输层,极大提高性能;

2.6版本后支持windows平台;

当前新版本为3x系列;

支持图表输出及报告输出功能;

基于ssh加密认证

官网及中文论坛

http://www.puppetfans.com/forum-81-1.html

http://puppetlabs.com/


Puppet的基本安装部署

1.本地环境

puppet master

Hostname  

pmaster  pmaster.example.com

Innerip    

192.168.61.152

System info

CentOS release  5.3

puppet agent

Hostname  

node1  node1.example.com

Innerip    

192.168.61.153

System info

CentOS release  5.3


2.配置yum源(CentOS release 5.3):

cat /etc/yum.conf

[163netyum]

name=Centos-5.3 163

baseurl=http://mirrors.163.com/centos/5/os/i386/

gpgcheck=0

3.安装ruby组件–puppet基于ruby开发

yum install ruby ruby-libs ruby-shadow

4.添加epel仓库

rpm -Uvh  http://mirrors.yun-idc.com/epel/5Server/i386/epel-release-5-4.noarch.rpm

5.安装puppet

Master# yum install puppet puppet-server facter

agent #   yum install puppet facter



****恭喜各位,如上一切无误后即可尝试启动进程了****


6.尝试启动master puppet

启动master puppet,并确认8140端口已被监听:  #puppet返回成功,但不一定能成功启动,puppet这个功能希望能改进…

service puppetmaster start

103047781.png

7.目录结构

/etc/puppet/  #默认安装目录

|-- auth.conf

|--  fileserver.conf

|-- manifests

|   |-- init.pp  

|   `-- site.pp  

|-- modules    

`-- puppet.conf

Manifests 如没有手动创建,site.pp手动创建

8.配置hosts或DNS

103049473.png

103047602.png

9.连通性检查

在agent服务器上执行telnet 192.168.61.152 8140确认mater8140端口可通

103050820.png

10.申请签名认证

###在Agent上发起签名申请:

# puppet agent  --server=pmaster.example.com  --no-daemonize –verbose  ##hosts需要是全名,不然会报错如下所有操作类同

### master 查看签名列表:

# puppet cert  –list      ##查看等待签名的服务器列表

103047587.png

###在master机给予签名:

# puppet cert  --sign node1.example.com     ##指定节点签名

# puppert cert  –sign –all                   ##对所有等待的证书进行签名

info: Creating  a new SSL key for node1.example.com

info: Caching  certificate for ca

info: Creating a new SSL certificate request for  node1.example.com

info:  Certificate Request fingerprint (md5):  C7:37:94:86:27:E3:2C:B0:B7:40:26:62:69:1C:0E:B0

info: Caching certificate for node1.example.com

info: Caching certificate_revocation_list for ca

103050291.png

--签名完毕后不能再随意修改主机名,否则认证失效--



###删除认证

注意:

生成证书时,主机名会写入证书,所以证书生成后,如果更改主机名,证书就失效了。
解决办法:

其实申请证书的过程就是服务器端生成证书,并发送到客户端的过程。
删除掉服务器端的客户机证书 rm -f    /var/lib/puppet/ssl/ca/signed/主机名.pem

客户端删除掉ssl目录/var/lib/puppet/ssl
或者:

puppetca    --clean xx.xx.xxx

103501705.png





11.连通性验证

a>maser

vi /etc/puppet/manifests/site.pp
site.pp文件定义puppet相关的变量和默认配置,是puppet执行的第一个文件

代码如下:

node default{

   file{"/tmp/hello.txt":

       content => "Hello  World.\n",

}

}

node  "node1.example.com" {

file {  "/tmp/puppetnode1.txt":

      owner   => "root",

      group   => "root",

     ensure   => "present",

    content   => "puppet node1 test!\n",

       mode   => "644",

}

}

Node1.example.com不会执行default里面的内容:

即:一个client只能存在于一个node中。

可以通过在node default中使用if 判断来选择生效的node

b>agent

同步master配置

#  puppetd --test --server pmaster.example.com

103502893.png




***********至上简C/S  puppet基础架构已搭建完毕。恭喜各位*************

**********puppet 配置进阶请参考《集中管理利器-puppet快速入门-下》 ***********



*******************************************************************************************

* 为最大限度不影响读者感官: *

* http://fengzhilinux.blog.51cto.com/1343279/1320317另起栏目,也请大家多支持 *

*******************************************************************************************