




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Puppet(木偶)Company: SymbioOriginator: ForestyDate: 20100429一级标:一、1、A、I(一号粗)二级标:二、2、B、II(二号粗)三级标:三、3、C、III(三号粗)四级标:四、4、D、IV(四号粗)五级标:五、5、E、V(五号粗)Demand Scenarios (需求场景)1、管理大量的服务器,有大量的重复配置管理任务2、使用Foreman结合PXE可以实现安装配置自动化Theory Knowledge (原理知识)Puppet基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理
2、,最新版本也开始支持对Windows操作系统有限的一些管理。Puppet适用于服务器管理的整个过程 ,比如初始安装、配置更新以及系统下线。Puppet的安装方式支持源码安装、yum安装以及ruby的gem安装。官网推荐使用yum来安装puppet,方便以后的升级、管理、维护。Centos可以采用yum来安装,但是Centos的默认源中没有puppet包,因此需要先安装epel包。Epel是企业版Linux附加软件包(Extra Packages for Enterprise Linux)的缩写,是一个由特别兴趣小组创建、维护并管理的,针对红帽企业版Linux(RHEL)及其衍生发行版(比如Ce
3、ntOS、Scientific Linux)的一个高质量附加软件包项目。puppet是一个开源的软件自动化配置和部署工具,它使用简单且功能强大,正得到了越来越多地关注,现在很多大型IT公司均在使用puppet对集群中的软件进行管理和部署,如google利用puppet管理超过6000台地mac桌面电脑(2007年数据)。puppet官方网站:/puppet官方下载:///Puppet文档官
4、网地址:/Puppet各版本文档:/references/index.htmlpuppet社区:/puppet中文wiki:http:/puppet.chinapuppet中文博客:eopuppet学习:http:/www.kanclpuppet其它网址://2014/08/17/puppet_knowledge//zt/156/2htt
5、p://puppet Documentation:.http:/www.chineselinuxuniversiGet the rpm.http:/people.redhaPuppet lab:.http:/projects.reductivelRuby website:./en/http:/networking.ctociDemerits &Merits (优点和缺点)Puppet is a centralized configuration management tool. Puppet is a Ruby-
6、based configuration management tool.Puppet port:TCP/UDP: 8140Relate tool: cfengine/salt/chefSalt: Python写的/question/21053472/answer/18939524Salt 的优势:* 同时囊括 部署 和 命令* 官方 states 其实蛮多,saltstack/salt-states 路 GitHub* 自己写 modules 很方便,utils 支持完善* Grain / Pillar 虽然用词绕口,但是使用非常方便* Python 开发
7、库要比基于 Ruby 的运维工具更多* 轻量劣势:* 社区年轻(两年多吧,不确定)* 文档少(个人感觉其实不少,而且托 Python 的福,源码很好理解)* 第三方插件的确不如另外两者丰富,但是题主的 60+ 服务器规模,应该够用了。另外,别人的回答其实都是参考,自己公司用的话,应该根据自己情况权衡,建议从* 资源丰富程度* 依赖复杂程度(salt 依赖 ZeroMQ,不依赖 SSH)* 自己开发能力(流程定制,数据展示,特殊数据接口支持)进行评估,我们说的都是参考。写个 PPT 给老大分析以下,去 Sideshare 上面搜索 saltstack,有几篇不错的分享。Puppet: ruby写
8、的Ansible: 配置管理系统,全Linux无需AgentHistory &Vision (历史与愿景)2012-06-13发布了最新稳定版2.7.162012-05-03发布了版本2.7.14Puppet在2.6.0版本之后开始支持在微软Windows系统上运行。http:/zhumeng833puppet是一种Linux、Unix平台的集中配置管理系统,所谓配置管理系统,就是管理机器里面诸如文件,用户,进程,软件包这些资源,其设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系 puppet使用一种描述性语言来定义配置项,配置项中被称为”资源”,描述性语言可以声明你的配置的状态-比
9、如声明一个软件包应该被安装或者一个服务应该被启动用puppet,可以运行一个服务器端,然后每个客户端通过ssl证书连接服务器,得到本机器的配置列表,然后更加列表的来完成配置工作,所以如果硬件配置好,在一天之内配置好上千上万台机器是很容易实现的事情,前提得大部分机器配置类似在大规模的生成环境中,如果只有一台puppetmaster会忙不过来的,因为puppet是用ruby写 的,ruby是解析型语言,每个客户端来访 问,都要解析一次,当客户端多了就忙不过来,所以需要扩展成一个服务器组。puppetmaster可以看作一个web服务器,实际上也是由ruby提供 的web服务器模块来做的。因此可以利
10、用web代理软件来配合puppetmaster做集群设置 puppe项目主要开发者是Luke Kanies,目前是puppet labs CEO,puppet遵循GPLv2版权协议。从1997年开始Kanies参与UNIX的系统管理工作,Puppet的开发源于这些经验。因为对已有的 配置工具不甚满意,从2001年到2005年间,Kanies开始在Reductive实验室从事工具的开发。很快,Reductive实验室发布了他们 的旗舰产品Puppet是一个年轻的工具,仍然处于开发和发展中。Puppet社区快速壮大,并且许多新的想法不断融入,促使开发、更新和模块每天都在呈现。V3.8V3.7V3.
11、6V3.5V3.4V3.0V2.7.0V2.6.7V0.24.0Installation &Deployment (安装与部署)由于官方源默认安装的是最新版本的puppet版本,而最新版本由于其不稳定性并不是我们想要的,那么如何指定版本进行安装呢,请看这里/2014/01/26/puppet_create_repo/,如果你比较懒,不想自己做yum源,那就去下载KissPuppet准备的yum源吧,更全,更强大/2013/12/05/puppet_repo_pak/下载简介:http:/docs.puppetlab
12、/guides/puppetlabs_package_repositories.html当前版本下载:/老版本下载:测试版本下载:/配置epel源:yum -y install /pub/epel/6/x86_64/epel-release-6-8.noarch.rpmyum -y install http:/mirroPuppet Master安装部署首先在服务器端和客户端配置好hostname,因为puppet是基于h
13、ostname来检测的,同时都要修改hosts文件: 编辑服务端和客户端/etc/hosts以修改主机名,因为puppet是基于证书的,证书中包含主机名。Puppet 要求所有机器有完整的域名(FQDN),如果没有 DNS 服务器提供域名的话,可以在两台机器上设置主机名(注意要先设置主机名再安装 Puppet,因安装 Puppet 时会把主机名写入证书,客户端和服务端通信需要这个证书)。CentOS7.0x64安装部署puppet master配置机器名hostname puppetmasterhostnamectl set-hostname puppetmastervi /etc/hostn
14、amepuppetmastervi /etc/resolsearch hillstonervi /etc/hosts11 puppetmaster.hillstoner puppetmaster55 puppetagent.hillstoner puppetagent注意:长名的前后顺序会影响认证配置时间服务器或时间同步到互联网yum -y install ntpdatevi /etc/crontab*/5 * * * * root /usr/sbin/ntpdate & /sbin/hwclock -w安装PuppetLa
15、bs或EPEL的YUM源yum -y install /el/7/products/x86_64/puppetlabs-release-7-11.noarch.rpm安装MASTERyum -y install puppet-server puppet facteraugeas-libs-1.1.0-17.el7.x86_64.rpmnet-tools-2.0-0.17.20131004git.el7.x86_64.rpmpciutils-3.2.1-4.el7.x86_64.rpmlibselinux-ruby-2.2.2-6.el7.x86_
16、64.rpmlibyaml-0.1.4-11.el7_0.x86_64.rpmhiera-1.3.4-1.el7.noarch.rpmfacter-2.4.4-1.el7.x86_64.rpmruby-98-25.el7_1.x86_64.rpmruby-irb-98-25.el7_1.noarch.rpmpuppet-server-3.8.1-1.el7.noarch.rpmrubygem-bigdecimal-1.2.0-25.el7_1.x86_64.rpmruby-augeas-0.4.1-3.el7.x86_64.rpmrubygem-io-console
17、-0.4.2-25.el7_1.x86_64.rpmrubygem-psych-2.0.0-25.el7_1.x86_64.rpmrubygem-json-1.7.7-25.el7_1.x86_64.rpmruby-shadow-2.2.0-2.el7.x86_64.rpmrubygem-rdoc-4.0.0-25.el7_1.noarch.rpmrubygems-2.0.14-25.el7_1.noarch.rpmruby-libs-98-25.el7_1.x86_64.rpmpuppet-3.8.1-1.el7.noarch.rpm启动服务systemctl start pu
18、ppetmastersystemctl enable puppetmasterCentOS6.5x64安装部署puppet master配置机器名hostname puppetmastervi /etc/sysconfig/networkHOSTNAME=puppetmastervi /etc/resolsearch hillstonervi /etc/hosts12 puppetmaster2.hillstoner puppetmaster56 puppetclient2.hillstoner puppetclient2配置时间服务器或时间同步到
19、互联网yum -y install ntpdatevi /etc/crontab*/5 * * * * root /usr/sbin/ntpdate & /sbin/hwclock -w安装YUM源yum -y install /el/6/products/x86_64/puppetlabs-release-6-11.noarch.rpm安装MASTERyum -y install puppet-server puppet facterruby-52-12.el6_4.x86_64.rpmruby-libs
20、-52-12.el6_4.x86_64.rpmruby-irb-52-12.el6_4.x86_64.rpmcompat-readline5-5.2-17.1.el6.x86_64.rpmlibselinux-ruby-2.0.94-5.3.el6_4.1.x86_64.rpmruby-rdoc-52-12.el6_4.x86_64.rpmaugeas-libs-1.0.0-5.el6.x86_64.rpmrubygems-1.3.7-5.el6.noarch.rpmfacter-2.4.4-1.el6.x86_64.rpmrubygem-json-1
21、.5.5-3.el6.x86_64.rpmhiera-1.3.4-1.el6.noarch.rpmruby-shadow-2.2.0-2.el6.x86_64.rpmruby-augeas-0.4.1-3.el6.x86_64.rpmpuppet-3.8.1-1.el6.noarch.rpmpuppet-server-3.8.1-1.el6.noarch.rpm启动服务/etc/init.d/puppetmaster startchkconfig puppetmaster onCentOS6.2x64(svn2) 安装部署puppet master配置机器名hostname mastervi
22、/etc/sysconfig/networkHOSTNAME=master#vi /etc/hosts puppetMaster.puppepuppetMasterlocalhost localhost.localdomain localhost4 localhost4.localdomain4:1 puppetMaster.puppepuppetMasterlocalhost localhost.localdomain localhost6 localhost6.localdomain6 agent.puppe agent0 ma
23、ster.puppe master#vi /etc/resolv.conf#search localdomain #注释掉这行,不然造成后面无法认证search puppenameserver 0nameserver 1#防火墙配置:-A RH-Firewall-1-INPUT -p 50 -j ACCEPT-A RH-Firewall-1-INPUT -p 51 -j ACCEPT-A RH-Firewall-1-INPUT -p udp -dport 5353 -d 51 -j ACCEPT-A RH-Firewall-1-INPU
24、T -p udp -m udp -dport 631 -j ACCEPT-A RH-Firewall-1-INPUT -p tcp -m tcp -dport 631 -j ACCEPT配置时间服务器或时间同步到互联网Puppet 基于SSL认证连接,要求所有机器上的时钟保持同步,所以需要安装和启用 ntp 服务器# yum -y install ntp# ntpdate # /etc/init.d/ntpd start; chkconfig ntpd on或者不设置puppetmaster为NTP服务器,直接配置与互联网进行时间同步yum -y install ntp
25、datevi /etc/crontab*/5 * * * * root /usr/sbin/ntpdate & /sbin/hwclock -w安装YUM源Puppet 不在 CentOS 的基本源中,需要加入 PuppetLabs 提供的官方源:yum -y install /el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm安装MASTERyum -y install puppet-server puppet facteraugeas-libs-0.9.0-4
26、.el6.x86_64.rpmcompat-readline5-5.2-17.1.el6.x86_64.rpmfacter-1.6.18-3.el6.x86_64.rpmlibselinux-2.0.94-5.3.el6_4.1.x86_64.rpmlibselinux-ruby-2.0.94-5.3.el6_4.1.x86_64.rpmlibselinux-utils-2.0.94-5.3.el6_4.1.x86_64.rpmpuppet-2.6.18-3.el6.noarch.rpmpuppet-server-2.6.18-3.el6.noarch.rpmruby-52-10
27、.el6_4.x86_64.rpmruby-augeas-0.4.1-1.el6.x86_64.rpmruby-libs-52-10.el6_4.x86_64.rpmruby-shadow-1.4.1-13.el6.x86_64.rpm启动服务/etc/init.d/puppetmaster start; chkconfig puppetmaster on/主控端第一次启动时的syslog日志puppet为了安全,采用ssl隧道通信,因此需要申请证书来验证的,当puppet master第一次启动的时候,可以查看/var/log/message有类似如下的信息:#tail -f
28、/var/log/messageJul 2 10:07:48 pxeInstalledServer puppet-master11414: master has a waiting certificate requestJul 2 10:07:48 pxeInstalledServer puppet-master11414: Signed certificate request for masterJul 2 10:07:48 pxeInstalledServer puppet-master11414: Removing file Puppet:SSL:CertificateRequest m
29、aster at /var/lib/puppet/ssl/ca/requests/master.pemJul 2 10:07:48 pxeInstalledServer puppet-master11414: Removing file Puppet:SSL:CertificateRequest master at /var/lib/puppet/ssl/certificate_requests/master.pemJul 2 10:07:48 pxeInstalledServer puppet-master11423: Reopening log filesJul 2 10:07:48 px
30、eInstalledServer puppet-master11423: Starting Puppet master version 2.6.18puppet为了安全,采用ssl隧道通信,因此需要申请证书来验证的,当puppet master第一次启动的时候,可以查看/var/log/message有类似如下的信息:Jul 25 03:14:01 localhost puppet-master25011: Signed certificate request for caJul 25 03:14:01 localhost puppet-master25011: Rebuilding inve
31、ntory fileJul 25 03:14:01 localhost puppet-master25011: has a waiting certificate requestJul 25 03:14:01 localhost puppet-master25011: Signed certificate request for Jul 25 03:14:01 localhost puppet-master25011: Removing file Puppet:SSL:CertificateRequest puppet.zhan
32、 at /etc/puppet/ssl/ca/requests/.pemJul 25 03:14:01 localhost puppet-master25011: Removing file Puppet:SSL:CertificateRequest at /etc/puppet/ssl/certificate_requests/.pem从日志中我们可以看出第一次启动的时候,puppet master创建本地认证中心,给自己签发证书和key,你可以在/etc/puppet/ssl看到那些
33、证书和key。这个目录和/etc/puppet/puppet.conf文件中配置的ssldir路径有关系。/主控端颁发证书时的syslog日志#tail -f /var/log/message Jul 2 10:16:23 pxeInstalledServer puppet-master11423: slave has a waiting certificate requestJul 2 10:22:26 pxeInstalledServer puppet-master11423: Could not retrieve fact fqdnJul 2 10:22:26 pxeInstalledS
34、erver puppet-master11423: Compiled catalog for slave in environment production in 0.10 seconds#实例如下:rootmaster yum.repos.d# /etc/init.d/puppetmaster startStarting puppetmaster: OK rootmaster yum.repos.d# puppet cert list -all slave (73:AE:DF:19:88:B4:BD:B0:3E:22:1F:8B:9A:BE:6D:66)+ master (A2:50:10:
35、44:E3:A7:A2:B9:97:64:C4:0A:AA:16:1F:21)rootmaster yum.repos.d# puppet cert -sign slavenotice: Signed certificate request for slavenotice: Removing file Puppet:SSL:CertificateRequest slave at /var/lib/puppet/ssl/ca/requests/slave.pemrootmaster yum.repos.d# puppet cert list -all+ master (A2:50:10:44:E
36、3:A7:A2:B9:97:64:C4:0A:AA:16:1F:21)+ slave (0D:3D:50:93:3D:35:F6:9E:0C:85:65:20:21:A6:AB:2F)rootmaster yum.repos.d#Puppet老版本Master端源码安装部署RHEL5.0安装#gzip -d -c ruby-1.9.1-p376.tar.gz#tar -xvf ruby-1.9.1-p376.tar#/root/ruby-1.9.1-p376/configure help#./configure#make#make install#rpm -Uvh facter-1.5.0-2
37、.el5.noarch.rpm puppet-0.24.5-1.el5.noarch.rpm puppet-server-0.24.5-1.el5.noarch.rpm配置# mkdir /etc/puppet/manifests#vi /etc/puppet/manifests/site.ppclass base_etc file /etc/passwd: owner = root, group = root, mode = 644file /etc/sudoers: owner = root, group = root, mode = 440node default include bas
38、e_etc#vi /etc/puppet/manifests/defaultnode g11n12host01 include krb5-telnetnode seven include krb5-telnet启动验证# /etc/init.d/puppetmaster startPuppet3.x版本Master端配置mainlogdir = /var/log/puppetvardir = /var/lib/puppet rundir = /var/run/puppetssldir = $vardir/sslfactpath=$vardir/lib/facterenvironmentpath
39、=$confdir/environmentsagent classfile = $vardir/classes.txt localconfig = $vardir/localconfig server = puppetmast certname = puppetmaster1_cmaster certname = puppetmast environments = jqdev,jqtest,jqprd basemodulepath = /etc/puppet/modules:/usr/share/puppet/modules jqdevmodulepath = $confdir/environ
40、ments/jqdev/environment/modules:$confdir/environments/jqdev/application/modulemanifest = $confdir/environments/jqdev/manifests/site.ppfileserverconfig = /etc/puppet/fileserver.conf.jqdevjqtestmodulepath = $confdir/environments/jqtest/environment/modules:$confdir/environments/jqtest/application/modul
41、esmanifest = $confdir/environments/jqtest/manifests/site.ppfileserverconfig = /etc/puppet/fileserver.conf.jqtestjqprdmodulepath = $confdir/environments/jqprd/environment/modules:$confdir/environments/jqprd/application/modulesmanifest = $confdir/environments/jqprd/manifests/site.ppfileserverconfig =
42、/etc/puppet/fileserver.conf.jqprdPuppet3.x版本Agent端对应配置main logdir = /var/log/puppet rundir = /var/run/puppet ssldir = $vardir/sslagent classfile = $vardir/classes.txt localconfig = $vardir/localconfigcertname=pxeba6591.hillstonerserver=puppetmaster.hillstonerruninterval=300listen=truePuppet2.x版本Mast
43、er端配置main logdir = /var/log/puppet rundir = /var/run/puppet ssldir = $vardir/sslagent classfile = $vardir/classes.txt localconfig = $vardir/localconfig server = puppetmast certname = puppetmaster1_cmastercertname = puppetmastPuppet2.x版本Agent端对应配置main logdir = /var/log/puppet rundir = /var/run/puppet
44、 ssldir = $vardir/ssl #pluginsync = falseagent classfile = $vardir/classes.txt localconfig = $vardir/localconfig server = puppetmast certname = ag1_c runinterval = 1000Puppet Agent安装部署CentOS7.2x64安装部署Puppet Agent客户端配置机器名配置时间与Master同步安装YUM源这个除了用到ISO中的RPM包外,还会用的YUM的Base源安装Clientyum -y install puppet-3
45、.6.2-3.el7.noarch facter-2.4.1-1.el7.x86_64 ruby-98-24.el7.x86_64 ruby-libs-98-24.el7.x86_64 ruby-shadow-1.4.1-23.el7.x86_64 -downloadonly -downloaddir=/root/download配置Clientvi /etc/puppet/puppet.confagentcertname=agent01.hillstoner#agent的认证名,这样可以防止域名解析不一致的问题server = puppetmaster.hills
46、toner#master的域名,免去执行puppet agent要输入-server指定masterruninterval = 3600listen = truereport = true启动服务systemctl start puppetsystemctl enable puppet查看facterfacterCentOS7.0x64安装部署Puppet Agent客户端配置机器名配置时间与Master同步安装YUM源这个除了用到ISO中的RPM包外,还会用的YUM的Base源安装Clientyum -y install puppet facter ruby ruby-libs ruby-s
47、hadowaugeas-libs-1.1.0-17.el7.x86_64.rpmpciutils-3.2.1-4.el7.x86_64.rpmlibyaml-0.1.4-11.el7_0.x86_64.rpmhiera-1.3.4-1.el7.noarch.rpmruby-augeas-0.4.1-3.el7.x86_64.rpmfacter-2.4.4-1.el7.x86_64.rpmruby-irb-98-25.el7_1.noarch.rpmruby-98-25.el7_1.x86_64.rpmruby-shadow-2.2.0-2.el7.x86_64.rp
48、mlibselinux-ruby-2.2.2-6.el7.x86_64.rpmrubygem-io-console-0.4.2-25.el7_1.x86_64.rpmrubygem-psych-2.0.0-25.el7_1.x86_64.rpmrubygem-bigdecimal-1.2.0-25.el7_1.x86_64.rpmrubygem-json-1.7.7-25.el7_1.x86_64.rpmpuppet-3.8.1-1.el7.noarch.rpmrubygem-rdoc-4.0.0-25.el7_1.noarch.rpmrubygems-2.0.14-25.el7_1.noar
49、ch.rpmruby-libs-98-25.el7_1.x86_64.rpmyum -y install puppet-3.8.1-1.el7.noarch facter-2.4.4-1.el7.x86_64 ruby ruby-libs ruby-shadow-2.2.0-2.el7.x86_64 -downloadonly -downloaddir=/root/download配置Clientvi /etc/puppet/puppet.confagentcertname=agent01.hillstoner#agent的认证名,这样可以防止域名解析不一致的问题server = puppetmaster.hillstoner#master的域名,免去执
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院放射科火灾应急预案(3篇)
- 火灾专项环境应急预案(3篇)
- 音频处理与编程基础试题及答案
- 2025年企业战略创新试题及答案
- 虚拟化技术应用试题及答案
- 计算机考试常见问题与试题
- 农村土地流转的法律问题试题及答案
- 法律文本与社会现实的对应关系试题及答案
- 软件架构设计的关键试题及答案
- 2025年公司战略变化与风险管理试题及答案
- 车辆超速考试试题及答案
- 成人患者营养不良诊断与应用指南(2025版)解读课件
- 2025年一级注册建筑师历年真题答案
- 十五五时期经济社会发展座谈会十五五如何谋篇布局
- 初中电与磁试题及答案
- 浙江开放大学2025年《行政复议法》形考作业1答案
- 国家开放大学《西方经济学(本)》章节测试参考答案
- 湖南省炎德英才名校联合体2025届高考考前仿真联考二英语+答案
- 重庆地理会考试卷题及答案
- 福建省三明市2025年普通高中高三毕业班五月质量检测地理试卷及答案(三明四检)
- 2024年四川省天全县事业单位公开招聘医疗卫生岗笔试题带答案
评论
0/150
提交评论