设为首页 收藏本站
查看: 881|回复: 0

[经验分享] puppet 学习记录

[复制链接]

尚未签到

发表于 2018-8-2 11:26:20 | 显示全部楼层 |阅读模式
  1. puppet之主动推送功能
  使用puppet kick进行推送,但kick功能无法支撑大规模puppet agent同时并发请求,所以当agent规模较大时,请使用MCollective
  1.1设置puppet agent所有节点的pupet.conf在【agent】增加“listen=true”
  1.2开启防火墙8139端口
  1.3在puppet agent的auth.conf的path /前加入如下配置
  path /run
  method save
  auth any
  allow puppetmaster_hostname
  # deny everything else; this ACL is not strictly necessary, but
  # illustrates the default policy.
  path /
  auth any
  1.4重启agent
  service puppet restart
  1.5master端测试
  cat puppet_kick.sh
  #!/bin/sh
  cat ./$1 | while read LINE
  do
  echo $LINE “puppet kick”
  puppet kick –p 5 –-host $LINE
  sleep 1
  done
  cat puppet_hostname.txt
  salt-minion-1
  salt-minion-2
  测试结果:
  Warning: Puppet kick is deprecated. See http://links.puppetlabs.com/puppet-kick-deprecation
  Warning: Failed to load ruby LDAP library. LDAP functionality will not be available
  Triggering salt-minion-1
  Getting status
  status is success
  salt-minion-1 finished with exit code 0
  Finished
  salt-minion-2 puppet kick
  Warning: Puppet kick is deprecated. See http://links.puppetlabs.com/puppet-kick-deprecation
  Warning: Failed to load ruby LDAP library. LDAP functionality will not be available
  Triggering salt-minion-2
  Getting status
  status is success
  salt-minion-2 finished with exit code 0
  Finished
  1.6ldap错误
  关于warning1,可以发现puppet kick被Mcollective方法替代,但仍可以使用。
  [root@salt-master puppet]# puppet kick --host salt-minion-1
  Warning: Puppet kick is deprecated. See http://links.puppetlabs.com/puppet-kick-deprecation
  Warning: Failed to load ruby LDAP library. LDAP functionality will not be available
  2. 架构扩展之单台puppetmaster
  由于puppet 3.X系列不支持mongrel,所以2.x版本可以采用Nginx+mongrel 模式,而3.x版本采用Nginx+Passenger模式(也支持apache,但是nginx处理能力会比较高一些)
  Nginx + Passenger 模式:
  master端配置:
  2.1下载puppetlab软件包
  rpm -Uvh https://yum.puppetlabs.com/el/6Server/products/x86_64/puppetlabs-release-6-10.noarch.rpm
  yum clean all
  2.2 在master端安装puppet-server
  yum -y install puppet-server
  [root@salt-master yum.repos.d]# puppet -V
  3.5.1
  [root@salt-master yum.repos.d]# facter -v
  2.0.1
  2.3安装Nginx和Passenger
  yum -y install ruby-devel rubygems
  gem install rake rack passenger
  运行命令passenger-install-nginx-module会自动安装nginx和passenger
  #命令给出两个选项,选择1自动安装即可
  Automatically download and install Nginx?
  Nginx doesn't support loadable modules such as some other web servers do,
  so in order to install Nginx with Passenger support, it must be recompiled.
  Do you want this installer to download, compile and install Nginx for you?
  1. Yes: download, compile and install Nginx for me. (recommended)
  The easiest way to get started. A stock Nginx 1.4.7 with Passenger
  support, but with no other additional third party modules, will be
  installed for you to a directory of your choice.
  2. No: I want to customize my Nginx installation. (for advanced users)
  Choose this if you want to compile Nginx with more third party modules
  besides Passenger, or if you need to pass additional options to Nginx's
  'configure' script. This installer will  1) ask you for the location of
  the Nginx source code,  2) run the 'configure' script according to your
  instructions, and  3) run 'make install'.
  编译完成后会提示nginx加载passenger的用法:
  Suppose you have a web application in /somewhere. Add a server block
  to your Nginx configuration file, set its root to /somewhere/public, and set
  'passenger_enabled on', like this:
  server {
  listen 80;
  server_name www.yourhost.com;
  root /somewhere/public;   # <--- be sure to point to 'public'!
  passenger_enabled on;
  }
  2.4创建rack目录并配置rack应用
  mkdir -p /etc/puppet/rack/public
  cp /usr/share/puppet/ext/rack/files/config.ru /etc/puppet/rack
  chown -R puppet:puppet /etc/puppet/rack
  2.5 配置Nginx
  修改nginx.conf,添加passenger模块配置(默认已经添加进去)
  passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-4.0.41;
  passenger_ruby /usr/bin/ruby;
  include vhosts/*.conf   <=   手动添加虚拟主机,如果不添加,直接把虚拟主机信息写到nginx.conf也可以
  2.6 创建虚拟主机文件
  touch $NGINX_HOME/vhosts/puppet_master.conf
  server {
  listen                     8140 ssl;
  server_name                salt-master;
  passenger_enabled          on;
  passenger_set_cgi_param    HTTP_X_CLIENT_DN $ssl_client_s_dn;
  passenger_set_cgi_param    HTTP_X_CLIENT_VERIFY $ssl_client_verify;
  access_log                 /usr/local/nginx/logs/puppet_access.log;
  error_log                  /usr/local/nginx/logs/puppet_error.log;
  root                       /etc/puppet/rack/public;
  ssl_certificate       /var/lib/puppet/ssl/certs/salt-master.pem;
  ssl_certificate_key   /var/lib/puppet/ssl/private_keys/salt-master.pem;
  ssl_crl      /var/lib/puppet/ssl/ca/ca_crl.pem;
  ssl_client_certificate /var/lib/puppet/ssl/certs/ca.pem;
  ssl_ciphers     SSLv2:-LOW:-EXPORT:RC4+RSA;
  ssl_prefer_server_ciphers on;
  ssl_verify_client optional;
  ssl_verify_depth1;
  ssl_session_cacheshared:SSL:128m;
  ssl_session_timeout 5m;
  }
  2.7 关闭puppetmaster随机启动
  chkconfig puppetmaster off
  2.8 启动nginx
  检测nginx.conf语法
  /usr/local/nginx/sbin/nginx -t
  启动nginx
  /usr/local/nginx/sbin/nginx
  2.9 检测8140端口是否启动
  netstat -an |grep 8140
  agent 端配置
  修改puppet.conf文件指定certname及server
  [agent]
  server = salt-master
  [master]
  certname = salt-master
  验证:
  agent端:
  puppet agent --test
  master端:
  [root@salt-master vhosts]# tail -f /usr/local/nginx/logs/puppet_access.log
  X.X.X.X - - [17/Apr/2014:14:17:50 +0800] "GET /production/node/salt-minion-2? HTTP/1.1" 200 3524 "-" "-"
  X.X.X.X - - [17/Apr/2014:14:17:50 +0800] "GET /production/file_metadatas/pluginfacts?checksum_type=md5&links=manage&recurse=true&ignore=.svn&ignore=CVS&ignore=.git HTTP/1.1" 200 283 "-" "-"
  X.X.X.X - - [17/Apr/2014:14:17:50 +0800] "GET /production/file_metadatas/plugins?checksum_type=md5&links=manage&recurse=true&ignore=.svn&ignore=CVS&ignore=.git HTTP/1.1" 200 283 "-" "-"
  X.X.X.X - - [17/Apr/2014:14:17:50 +0800] "POST /production/catalog/salt-minion-2 HTTP/1.1" 200 574 "-" "-"
  X.X.X.X - - [17/Apr/2014:14:17:50 +0800] "PUT /production/report/salt-minion-2 HTTP/1.1" 200 9 "-" "-"
  X.X.X.X - - [17/Apr/2014:14:20:06 +0800] "GET /production/node/salt-minion-1? HTTP/1.1" 200 3524 "-" "-"
  X.X.X.X - - [17/Apr/2014:14:20:06 +0800] "GET /production/file_metadatas/pluginfacts?checksum_type=md5&links=manage&recurse=true&ignore=.svn&ignore=CVS&ignore=.git HTTP/1.1" 200 283 "-" "-"
  X.X.X.X - - [17/Apr/2014:14:20:06 +0800] "GET /production/file_metadatas/plugins?checksum_type=md5&links=manage&recurse=true&ignore=.svn&ignore=CVS&ignore=.git HTTP/1.1" 200 283 "-" "-"
  X.X.X.X - - [17/Apr/2014:14:20:06 +0800] "POST /production/catalog/salt-minion-1 HTTP/1.1" 200 574 "-" "-"
  X.X.X.X - - [17/Apr/2014:14:20:06 +0800] "PUT /production/report/salt-minion-1 HTTP/1.1" 200 9 "-" "-"

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-545304-1-1.html 上篇帖子: Linux中puppet 控制台管理工具 下篇帖子: 在CentOS 6.5上安装Puppet配置管理工具
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表