使用puppet进行系统管理_第1页
使用puppet进行系统管理_第2页
使用puppet进行系统管理_第3页
使用puppet进行系统管理_第4页
使用puppet进行系统管理_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Puppet简介Puppet基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理,最新版本也开始支持对Windows操作系统有限的一些管理。Puppet适用于服务器管管理的整个过程 ,比如初始化安装、配置更新以及系统下线等。Puppet enterprise的安装 Puppet 的安装可以通过 yum命令直接从云端安装,由于安装环境不联外网,所以选择下载安装。首先到puppet 的官网下载企业版,企业版已经集成了puppet的大部分软件包(master server、agent、console,puppetdb,puppet-dash

2、board,memcached 等),下载地址如下: /misc/pe-files/previous-releases。免费版支持10个客户端,for linux 的安装方法如下: 1.用root用户解压开下载的安装包 puppet-enterprise-3.1.1-el-6-x86_64.tar.gz 2.在安装目录下直接运行: ./puppet-enterprise-installer 即可开始安装, 3.Master端选择安装角色:The Puppet Master RoleThe Database Support RoleThe Console

3、RoleThe Cloud Provisioner Role Agnet 端选择安装角色 The Puppet Agent Role (安装过程中需要补充安装一个软件包:virt-what-1.11-1.1.el6.x86_64.rpm) 安装过程参考:/pe/3.1/install_basic.html 4.安装完成后:master的服务会自动启动。 5.集团的PE测试环境说明peppet master 配置 ip:0 hostname:essapp30peppet agent 配置(2台) ip:10

4、 hostname:crmapp01 ip:11 hostname:crmapp02 安装目录:/opt/puppet 配置文件所在目录:/etc/puppetlabs Console 访问地址0:445 用户,密码Puppet客户端的认证在agent执行puppet agent -test发起认证,在master端用puppet cert完成认证。也可以通过console 的认证管理来完成认证集团测试环境完成认证的过程在agent端发起验证,在2台agent机器上分别执行执行命令如下 puppet agent

5、 -server essapp30 -test在marster完成验证,在master 端执行 puppet cert -list 查看有哪些请求等待验证 执行puppet cert sign crmapp01 通过crmapp01验证 执行puppet cert sign crmapp02 通过crmapp02验证Puppet 的管理puppet 配置文件:/etc/puppetlabs运行文件所在目录:/etc/init.d配置文件所在目录:/etc/sysconfig/postgresql配置文件所在目录: /opt/puppet/var/lib/pgsql/9.2/datapuppet

6、 服务的执行文件放在/etc/init.d目录下,命令说明如下service pe-httpd start|stop|status|restart 管理pe-httpdservice pe-puppetdb start|stop|status|restart 管理puppetdbservice pe-puppet-dashboard-workers start|stop|status|restart管理PE consoleservice pe-postgresql start|stop|status|restart 管理postgresqlservice pe-mcollective star

7、t|stop|status|restart 管理pe-mcollectiveservice pe-memcached start|stop|status|restart 管理pe-memcached./pe-puppet start|stop|status|restart 管理agent进程 Puppet 的语法Puppet 使用的是ruby的语法,具体可以参考官网文档/references/ puppet resource 列表 /references/latest/type.html常用资源

8、:user 创建管理用户group 创建管理用户组package 软件安装file 配置文件service 服务管理cron 定时脚本exec 执行命令notify 调试与输出函数列表:/references/latest/function.htmlERB 模板使用语法参考/stdlib-1.8.7/libdoc/erb/rdoc/ERB.htmlPE CONSOLE 的使用 puppet-enterprise 3.1提供了一个console对puppet进行管理和汇集日志。界面如下图。 Console 主要

9、功能是对节点进行配置,认证, 以及监控节点运行情况及查看运行日志。手工执行节点任务等, 具体操作可以参考官网文档:/pe/3.1/console_accessing.htmlPuppet Module 互联网上面提供了很多开源的puppet模块(module)来实现各种功能。module查找命令 puppet module search apache ,需要网络支持,或者到网站/ 和 /example42/下载安装方法可以直接解压到module目录下,或者通过命

10、令安装 测试环境的module 目录为:/etc/puppetlabs/puppet/modules安装命令:puppet module install puppetlabs-apache -version 0.0.2更新:puppet module upgrade puppetlabs-apache -version 0.0.3删除:puppet module uninstall puppetlabs-apache Puppet案例一:对sysctl 的管理本案例使用puppet来修改linux的/etc/sysctl.conf参数,需要修改的参数如下fs.aio-max-nr所允许的并发请

11、求的最大个数fs.file-max整个系统可以打开的文件数的限制kernel.shmall系统一次可以使用的共享内存总量(以页为单位)kernel.shmmax共享内存段的最大尺寸(以字节为单位)kernel.shmmni4096系统范围内共享内存段的最大数量kernel.sem250 32000 100 128信号量net.ipv4.ip_local_port_range9000 65500表示向外连接的端口范围net.core.rmem_max最大的TCP数据接收缓冲net.core.wmem_defaultnet.core.wmem_max最大的TCP数据发送缓冲http:/forge.

12、/ 网站上提供了一个module: domcleal-augeasproviders 功能是配置linux系统的各种参数。domcleal-augeasproviders的使用帮助参考/documentation/examples.html下面我们简单介绍一下如何用这个module来修改linux的/etc/sysctl.conf参数。 实验环境如下: peppet master 配置 ip:0 hostname:essapp30peppet agent 配置(2台) ip:1

13、0 hostname:crmapp01 ip:11 hostname:crmapp02 安装目录:/opt/puppet配置文件所在目录:/etc/puppetlabs1. 创建一个module “sysctl”修改 系统文件/etc/sysctl.conf.1)在puppet的module目录(/etc/puppetlabs/puppet/modules)下创建module目录sysctl:#mkdir sysctl#mkdir sysctl/ manifests# mkdir sysctl/ templates2),在目录manifests下创建文件init.pp 内容

14、来实现修改修改linux的/etc/sysctl.conf参数,内容如下class sysctlsysctl fs.aio-max-nr: ensure = present, value = , comment = The allowed maximum number of concurrent requests,sysctl fs.file-max: ensure = present, value = , comment = The number of the whole system can open file limit,sysctl kernel.shmall: ensure = pr

15、esent, value = , comment = The amount of Shared memory system can use at a time,sysctl kernel.shmmax: ensure = present, value = , comment = The maximum size of the Shared memory segment,sysctl kernel.shmmni: ensure = present, value = 4096, comment = The maximum quantity system within the scope of a

16、Shared memory segment,sysctl kernel.sem: ensure = present, value = 250 32000 100 128, comment = semaphore,sysctl net.ipv4.ip_local_port_range: ensure = present, value = 9000 65500, comment = Said to connect the port range,sysctl net.core.rmem_max: ensure = present, value = , comment = Most TCP data

17、receiving buffer,sysctl net.core.wmem_default: ensure = present, value = , comment = The default TCP data buffer,sysctl net.core.wmem_max: ensure = present, value = , comment = Said to connect the port range,2. 首先我们在master(0)上创建2个节点,创建节点可以参考文档:(/puppet/3/reference/

18、lang_node_definitions.html),具体步骤 1)在目录/etc/puppetlabs/puppet/manifests 下创建 目录 nodemkdir node 2)在目录node下创建节点配置文件 crmapp01.pp crmapp02.pp 修改文件 /etc/puppetlabs/puppet/manifests/site.pp 加入这2个节点3)在节点引入CLASS sysctl : crmapp01.pp内容如下node crmapp01#Set entries in /etc/sysctl.confinclude sysctl crmapp02.pp内容如

19、下 node crmapp02#Set entries in /etc/sysctl.confinclude sysctl3. 在agent端验证配置结果1) 在crmapp01(10 )机器上执行 sysctl p 查看原始/etc/sysctl.conf 文件内容,如下 2) 执行 puppet agent -server essapp30 test 从服务端同步配置,执行结果如下3) 再次执行 sysctl p 查看 修改结果4. 使用PE CONSOLE 来监控执行结果, PE CONSOLE登录地址如下0:4455. 使用 PE

20、CONSOLE 来在crmapp02(11)上 执行配置。查看crmapp02的修改结果查看执行日志总结:Puppet 通过在主机(master)上配置相关参数可以修改客户机(agent)的系统参数.并且通过PE CONSOLE 来进行监控.Puppet案例二:对limits 的管理本案例使用puppet来修改linux的/etc/security/limits.conf参数,需要修改的参数如下实现方式:使用puppet 提供的puppet-limits 模块来实现limit参数的管理.只要在节点的init.pp 文件中加入如下代码,即可实现上诉limit参数的管理clas

21、s limits: config = was = nofile = soft = 8192, hard = 16384, , nproc = soft = 8192, hard = 65536, , , , use_hiera = false, 该模块的使用方法参考模块说明: /etc/puppetlabs/puppet/modules/limits 目录Puppet案例三:实现zabbix客户端自动安装和配置1. 创建模块目录:#mkdir p /etc/puppet/modules/zabbix/manifests,templates2. 创建manifests 文件, 代码如下vim /

22、etc/puppet/modules/zabbix/ manifests/init.ppclass zabbix package zabbix-agent: ensure = installed, require = Yumrepozabbix, yumrepo zabbix: baseurl = 0/zabbix.rep, descr = Zabbix Offical Repository, enabled = 1, gpgcheck = 0, file /etc/zabbix/zabbix_agentd.conf: content = template(za

23、bbix/zabbix_agentd_conf.erb), ensure = file, service zabbix-agent: ensure = running, hasstatus = true, enable = true , subscribe = File/etc/zabbix/zabbix_agentd.conf, Packagezabbix-agent -File /etc/zabbix/zabbix_agentd.conf - Servicezabbix-agent3. 创建模板文件,代码如下vim /etc/puppet/modules/zabbix/ templates

24、/zabbix_agentd_conf.erbPidFile=/var/run/zabbix/zabbix_agentd.pidLogFile=/var/log/zabbix/zabbix_agentd.logEnableRemoteCommands=1LogRemoteCommands=1Server=ServerActive=Hostname =ListenIP = Include =/etc/zabbix/zabbix_agentd.d/4. 编写说明文件vim /etc/puppet/modules/zabbix/README.md# Zabbix Puppet module # Us

25、age - Zabbix #add class to node$zabbix_server = zabbixserver.domaininclude zabbax 5. Zabbix模块编写完成后,在需要安装zabbix-agent的节点配置文件中加入如下代码即可:#instll zabbix agent$zabbix_server=0include zabbix6. 在节点上执行puppet agent -test命令即可完成zabbix-agent的节点安装和配置Puppet案例四:实现was应用的批量发布实现原理:用file资源实现文件推送(war包和配置文件)用ex

26、ec 资源调用 was的wsadmin.sh 执行was发布运行等脚本.1. 创建一个module :wasmgr 其中实用不同类来实现不用功能,详细见module说明文档 公用类: (参数化,通用) classs install_app_to_server : 安装应用包到服务 class start_all_clus: 启动所有集群 class start_all_server :启动所有服务在指定节点 class start_single_clus: 启动单个集群 class start_single_server: 启动指定个节点上的单个服务 class stop_all_clus:

27、停止所有集群 class stop_all_server: 停止所有服务在指定节点 class stop_single_clus: 停止单个集群 class stop_single_server停止单个服务 class uninstallapp : 卸载单个应用 class wasdeploy_newinstall : 安装一个应用到集群 私有类: (定制的类) class start101 :起服务节点和dmgr节点 class stop101 :关服务节点和dmgr节点 class stopapache01 :关IHS服务 class startapache01:开HIS 服务 class

28、 synpluginxml:同步Ihs插件配置文件2. 下面具体讲解一个类install_app_to_server :目录说明:/etc/puppetlabs/puppet/modules/wasmgr/files 上传文件目录 /etc/puppetlabs/puppet/modules/wasmgr/ manifests 程序文件目录 / etc/puppetlabs/puppet/modules/wasmgr/ templates 模板文件目录 程序功能说明: 调用方法: 将war包放在 /etc/puppetlabs/puppet/modules/wasmgr/files 目录下 修

29、改 节点配置文件:/etc/puppetlabs/puppet/manifests/nodes/LteDebug.pp加入class的调用,如下配置是将smWeb.war安装到节点Default01Node,服务sm01上上下文为:smWeb#deloy smWebclass wasmgr:install_app_to_server: war_name =smWeb.war, node_name =Default01Node, server_name =sm01, app_name =smWeb_war, contextroot =smWeb, usr =wasadmin, pwd =wasl

30、te, was_path=/app/IBM/WebSphere/AppServer/profiles/Dmgr01/bin Puppet 常见错误1. 认证完成后,运行 报错: Could not find default node or by name with “esstestdb1”on node esstestdb1需要在master上为节点 esstestdb1 增加配置 ,例如:在目录node下创建节点配置文件 esstestdb1.pp 内容为2. 出现puppet 认证后又修改了客户端主机名怎么办呢?1) 修改客户端的puppet 配置文件,文件位于/etc/puppetlab

31、s/puppet/puppet.conf修改certname 为新hostname 2)删除客户端的证书 rm -Rf /etc/puppetlabs/puppet/ssl 3)删除服务端的证书puppet cert clean oldhostname4) 重新认证。 3. 错误删除了puppetDB 的ssl 证书,客户端执行puppet agent test 报错Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to submit replace facts command f

32、or mvnocsbapp1 to PuppetDB at essapp30:8081: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: certificate revoked for /CN=essapp30Warning: Not using cache on failed catalogError: Could not retrieve catalog; skipping run原因:执行了puppet cert clean essapp30删除了服务短ssl认证解决方法:.1. 停掉pe-puppetdb 服务:2. 执行/opt/puppet/sbin/puppetdb-ssl-setup -f 恢复puppetdb ssl3. 启动 pe-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论