面向云管理工具puppet的部署和文件传输测试

简介:

面向云管理工具puppet的部署和测试

 系统环境:


 
 
  1. [root@rhel6u3-102 puppet]# uname -r 

  2. 2.6.32-279.el6.x86_64 

  3. [root@rhel6u3-102 puppet]# cat /etc/redhat-release  

  4. Red Hat Enterprise Linux Server release 6.3 (Santiago) 

一、前期准备工作
1、主机名能够互相解析(DNS上或者hosts文件中能够相互解析)
puppet master(rhel6u3-102.rsyslog.org 192.168.100.102)
puppet agent节点(rhel6u3-207.rsyslog.org 192.168.100.207)
2、系统时间必须一致
注意:本地已经下载好了安装包,并且配置好了yum源
二、安装puppet
服务器端master

 
 
  1. yum install ruby ruby-libs ruby-shadow compat-readline5 libselinux-ruby augeas-libs 

  2. rpm -ivh facter-1.6.6-1.el6.x86_64.rpm puppet-2.6.18-3.el6.noarch.rpm puppet-server-2.6.18-3.el6.noarch.rpm ruby-augeas-0.4.1-1.el6.x86_64.rpm ruby-mysql-2.8.2-1.el6.x86_64.rpm ruby-shadow-1.4.1-13.el6.x86_64.rpm 

客户端节点slave(无需puttet-master)

 
 
  1. yum install ruby ruby-libs ruby-shadow compat-readline5 libselinux-ruby augeas-libs 

  2. rpm -ivh facter-1.6.6-1.el6.x86_64.rpm puppet-2.6.18-3.el6.noarch.rpm  ruby-augeas-0.4.1-1.el6.x86_64.rpm ruby-mysql-2.8.2-1.el6.x86_64.rpm ruby-shadow-1.4.1-13.el6.x86_64.rpm 

三、初始化puppet master(rhel6u3-102.rsyslog.org)
配置文件路径/etc/puppet/
查看配置文件方法:

  
  
  1. sed -e '/#/d' -e '/^$/d' puppet.conf 

可通过以下命令生成一个更为详细的配置文件

 
 
  1. #puppetmasterd --genconfig >puppet.conf.out  



 
 
  1. [root@rhel6u3-102 puppet]# sed -e '/#/d' -e '/^$/d' puppet.conf.out  

  2. [master] 

  3. ssldir = /var/lib/puppet/ssl 

  4. factdest = /var/lib/puppet/facts/ 

  5. privatekeydir = /var/lib/puppet/ssl/private_keys 

  6. rundir = /var/run/puppet 

  7. hostcsr = /var/lib/puppet/ssl/csr_rhel6u3-102.rsyslog.org.pem 

  8. hostpubkey = /var/lib/puppet/ssl/public_keys/rhel6u3-102.rsyslog.org.pem 

  9. plugindest = /var/lib/puppet/lib 

  10. inventory_terminus = yaml

  11. publickeydir = /var/lib/puppet/ssl/public_keys 

  12. factsource = puppet://puppet/facts/ 

  13. privatedir = /var/lib/puppet/ssl/private 

  14. logdir = /var/log/puppet 

  15. libdir = /var/lib/puppet/lib 

  16. statedir = /var/lib/puppet/state 

  17. hostcert = /var/lib/puppet/ssl/certs/rhel6u3-102.rsyslog.org.pem 

  18. localcacert = /var/lib/puppet/ssl/certs/ca.pem 

  19. pluginsource = puppet://puppet/plugins 

  20. certdir = /var/lib/puppet/ssl/certs 

  21. factpath = /var/lib/puppet/lib/facter:/var/lib/puppet/facts 

  22. httplog = /var/log/puppet/http.log 

  23. requestdir = /var/lib/puppet/ssl/certificate_requests 

  24. passfile = /var/lib/puppet/ssl/private/password 

  25. hostprivkey = /var/lib/puppet/ssl/private_keys/rhel6u3-102.rsyslog.org.pem 

  26. hostcrl = /var/lib/puppet/ssl/crl.pem 

  27. authconfig = /etc/puppet/namespaceauth.conf 

  28. localconfig = /var/lib/puppet/state/localconfig 

  29. client_datadir = /var/lib/puppet/client_data 

  30. reportserver = puppet

  31. inventory_server = puppet

  32. ca_server = puppet

  33. lastrunreport = /var/lib/puppet/state/last_run_report.yaml 

  34. node_name_value = rhel6u3-102.rsyslog.org 

  35. statefile = /var/lib/puppet/state/state.yaml 

  36. clientbucketdir = /var/lib/puppet/clientbucket 

  37. classfile = /var/lib/puppet/state/classes.txt 

  38. report_server = puppet

  39. inventory_port = 8140

  40. ca_port = 8140

  41. puppetdlockfile = /var/lib/puppet/state/puppetdlock 

  42. splaylimit = 1800

  43. clientyamldir = /var/lib/puppet/client_yaml 

  44. puppetdlog = /var/log/puppet/puppetd.log 

  45. report_port = 8140

  46. lastrunfile = /var/lib/puppet/state/last_run_summary.yaml 

  47. graphdir = /var/lib/puppet/state/graphs 

  48. capub = /var/lib/puppet/ssl/ca/ca_pub.pem 

  49. csrdir = /var/lib/puppet/ssl/ca/requests 

  50. autosign = /etc/puppet/autosign.conf 

  51. cert_inventory = /var/lib/puppet/ssl/ca/inventory.txt 

  52. cacert = /var/lib/puppet/ssl/ca/ca_crt.pem 

  53. cacrl = /var/lib/puppet/ssl/ca/ca_crl.pem 

  54. signeddir = /var/lib/puppet/ssl/ca/signed 

  55. serial = /var/lib/puppet/ssl/ca/serial 

  56. ca_name = Puppet CA: rhel6u3-102.rsyslog.org 

  57. cakey = /var/lib/puppet/ssl/ca/ca_key.pem 

  58. caprivatedir = /var/lib/puppet/ssl/ca/private 

  59. capass = /var/lib/puppet/ssl/ca/private/ca.pass 

  60. cadir = /var/lib/puppet/ssl/ca 

  61. railslog = /var/log/puppet/rails.log 

  62. dblocation = /var/lib/puppet/state/clientconfigs.sqlite3 

  63. rest_authconfig = /etc/puppet/auth.conf 

  64. modulepath = /etc/puppet/modules:/usr/share/puppet/modules 

  65. yamldir = /var/lib/puppet/yaml 

  66. reportdir = /var/lib/puppet/reports 

  67. masterlog = /var/log/puppet/puppetmaster.log 

  68. server_datadir = /var/lib/puppet/server_data 

  69. config = /etc/puppet/puppet.conf 

  70. pidfile = /var/run/puppet/master.pid 

  71. manifestdir = /etc/puppet/manifests 

  72. masterhttplog = /var/log/puppet/masterhttp.log 

  73. bucketdir = /var/lib/puppet/bucket 

  74. fileserverconfig = /etc/puppet/fileserver.conf 

  75. manifest = /etc/puppet/manifests/site.pp 

  76. templatedir = /var/lib/puppet/templates 

  77. tagmap = /etc/puppet/tagmail.conf 

  78. archive_file_server = puppet

  79. rrddir = /var/lib/puppet/rrd 

  80. rrdinterval = 1800

1、修改主配置文件 puppet.conf 插入master字段

 
 
  1. vim /etc/puppet/puppet.conf  

  2. [master] 

  3. certname=rhel6u3-102.rsyslog.org \\设置puppet认证服务器主机名 

2、创建节点全局配置文件site.pp,文件存在,服务才能够启动

 
 
  1. # touch /etc/puppet/manifests/site.pp 

3、启动puppetmaster服务

 
 
  1. # /etc/rc.d/init.d/puppetmaster start 

第一次测试或者调试的时候可以考虑以下方法

 
 
  1. #puppet master --verbose --no-daemonize --debug  

四、配置agent节点(rhel6u3-207.rsyslog.org)
1、配置第一个agent节点,在main标签中添加master的主机名

 
 
  1. vim /etc/puppet/puppet.conf  

  2. [main] 

  3. server=rhel6u3-102.rsyslog.org 

2、启动agent服务

 
 
  1. # /etc/rc.d/init.d/puppet start 

第一次测试或者调试的时候可以考虑以下方法

 
 
  1. # puppet agent --verbose –no-daemonize 

五、配置puppet master 将搜索到的新节点进行注册

 
 
  1. #puppet cert --list \\查看等待注册的节点 

  2. #puppet cert --sign rhel6u3-207.rsyslog.org \\注册指定节点 

  3. # puppet cert --sign all \\注册所有等待注册的节点 

六、在puppet master创建一个puppet配置
1、创建第一个puppet配置
1)定义全局配置 site.pp文件,并创建import的目录

 
 
  1. # vim /etc/puppet/manifests/site.pp  

  2. $puppetserver = 'rhel6u3-102.rsyslog.org'

  3. import 'nodes/*' 

  4. #mkdir /etc/puppet/manifests/nodes -p 

2)配置节点nodes.pp

 
 
  1. # vim /etc/puppet/manifests/nodes/nodes.pp 

  2. node 'rhel6u3-207.rsyslog.org'{ 

  3.         include myfile 

  4.         package { 'vim-enhanced': ensure => present } 

  5. #node /^rhel6u3-\d+\.rsyslog.org'{ 

  6. #       include myfile 

  7. #} 

2、创建第一个puppet模块
1)创建模块搜索路径

 
 
  1. vim /etc/puppet/puppet.conf  

  2. [main] 

  3. modulepath=/etc/puppet/modules:/var/lib/puppet/modules:/usr/local/lib/puppet/modules 

2)创建模块目录结构

 
 
  1. # mkdir /etc/puppet/modules -p 

  2. #mkdir -vp /etc/puppet/modules/myfile/{files,templates,manifests} 

  3. manifests目录存放模块配置文件,files目录存放模块包含的文件,templates目录存 

  4. 放模块中的模板 

3)创建模块核心配置文件init.pp

 
 
  1. vim /etc/puppet/modules/myfile/manifests/init.pp 

  2. class myfile { 

  3.         package{ setup: 

  4. ensure => present, 

  5.         } 

  6.         file{ "/etc/myfile": 

  7. owner => "root", 

  8. group => "root", 

  9. mode => 644, 

  10. source => "puppet://$puppetserver/modules/myfile/files/etc/myfile", 

  11. require => Package["setup"], 

  12.         } 

配置基本结束,实现的结果如下:
1. 检查setup软件包是否安装,如未安装将安装它
2. 下载“Puppet Master”上的myfile文件放置到/etc目录下
4)创建同步的测试文件

 
 
  1. # mkdir /etc/puppet/modules/myfile/files/etc -p 

  2. #echo "Hello Puppet" >/etc/puppet/modules/myfile/files/etc/myfile 

5)客户端测试

  
  
  1. [root@rhel6u3-207 puppet]# cat /etc/myfile  

  2. Hello Puppet 

**客户端通过以下方式启动,然后我们使用前台方式运行并监控它,我们在里使用一个puppet参数—noop, 它代表我们只测试,并不真的运行并修改节点上的文件,--onetime参数是只执行一次然后退出的意思。

 
 
  1. #puppet agent --server=rhel6u3-102.rsyslog.org  --no-daemonize --verbose 

  2. --noop --onetime 

  3. # puppet agent --server=rhel6u3-102.rsyslog.org --no-daemonize --verbose --noop --onetime 

  4. info: Caching catalog for rhel6u3-207.rsyslog.org 

  5. info: Applying configuration version '1366705990' 

  6. notice: Finished catalog run in 0.20 seconds 

6)默认客户端同步时间为30分钟,可以设置为5秒测试效果

 
 
  1. vim /etc/puppet/puppet.conf  添加以下字段 

  2. [agent] 

  3. runinterval=5

测试方法:
服务器端 

 
 
  1. # date >>/etc/puppet/modules/myfile/files/etc/myfile  

客户端

 
 
  1. cat /etc/myfile  

  2. Hello Puppet 

  3. 2013年 04月 23日 星期二 16:52:58 CST 

本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1184796,如需转载请自行联系原作者
相关文章
|
10月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
794 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
10月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
758 6
|
11月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
2101 10
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1626 23
|
12月前
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。
|
11月前
|
监控 Java 数据挖掘
利用Jmeter工具进行HTTP接口的性能测试操作
基础上述步骤反复迭代调整直至满足预期目标达成满意水平结束本轮压力评估周期进入常态监控阶段持续关注系统运转状态及时发现处理新出现问题保障服务稳定高效运作
1343 0
|
数据可视化 测试技术 Go
Go 语言测试与调试:`go test` 工具用法
`go test` 是 Go 语言内置的测试工具,支持单元测试、基准测试、示例测试等功能。本文详解其常用参数、调试技巧及性能测试命令,并提供实际项目中的应用示例与最佳实践。
|
弹性计算 JavaScript Ubuntu
WebSocket协议相关的测试命令工具使用简介
本文介绍了针对WebSocket的测试工具wscat和websocat的基本使用方法,以及通过curl命令测试HTTP/HTTPS协议的方式。对于WebSocket,直接使用curl测试较为复杂,推荐使用wscat或websocat。文中详细说明了这两种工具的安装步骤、常用参数及连接示例,例如在ECS上开启8080端口监听并进行消息收发测试。此外,还提供了curl命令的手动设置头部信息以模拟WebSocket握手的示例,但指出curl仅能作为客户端测试工具,无法模拟服务器。
3925 5
|
12月前
|
人工智能 数据可视化 测试技术
UAT测试排程工具深度解析:让验收测试不再失控,项目稳稳上线
在系统交付节奏加快的背景下,“测试节奏混乱”已成为项目延期的主因之一。UAT测试排程工具应运而生,帮助团队结构化拆解任务、清晰分配责任、实时掌控进度,打通需求、测试、开发三方协作闭环,提升测试效率与质量。本文还盘点了2025年热门UAT工具,助力团队选型落地,告别靠表格和群聊推进测试的低效方式,实现有节奏、有章法的测试管理。
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
2168 24