带着问题来学习
从如下内容来看,如何自定义安装用户想要的东西呢? 系统更新问题
软件配置权限如何定义? 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架构。 数据流向: puppet与其它自动化工具对比(摘自华东技术分享ppt) |
为什么选择puppet
puppet与其它自动化工具对比(摘自华东技术分享ppt) |
特性简述
master,node 均以demo方式运行,默认每30min通信一次; 高级应用建议学习ruby; 建议选择2.6.x以上版本,reset api替换了xml-rpc作为传输层,极大提高性能; 2.6版本后支持windows平台; 当前新版本为3x系列; 支持图表输出及报告输出功能; 基于ssh加密认证 |
官网及中文论坛
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 |
7.目录结构
/etc/puppet/ #默认安装目录 |-- auth.conf |-- fileserver.conf |-- manifests | |-- init.pp | `-- site.pp |-- modules `-- puppet.conf Manifests 如没有手动创建,site.pp手动创建 |
8.配置hosts或DNS
9.连通性检查
在agent服务器上执行telnet 192.168.61.152 8140确认mater8140端口可通
10.申请签名认证
###在Agent上发起签名申请: # puppet agent --server=pmaster.example.com --no-daemonize –verbose ##hosts需要是全名,不然会报错…如下所有操作类同 ### master 查看签名列表: # puppet cert –list ##查看等待签名的服务器列表 ###在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 --签名完毕后不能再随意修改主机名,否则认证失效-- ###删除认证
|
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 |
***********至上简C/S puppet基础架构已搭建完毕。恭喜各位*************
**********puppet 配置进阶请参考《集中管理利器-puppet快速入门-下》 ***********
******************************************************************************************* * 为最大限度不影响读者感官: * * http://fengzhilinux.blog.51cto.com/1343279/1320317另起栏目,也请大家多支持 * ******************************************************************************************* |
转载于:https://blog.51cto.com/fengzhilinux/1338197