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

[经验分享] nginx结合多套puppet实现(apach+forman+puppt)

[复制链接]

尚未签到

发表于 2018-8-2 08:44:54 | 显示全部楼层 |阅读模式
  nginx结合多套puppet实现(apach+forman+puppt)
  本案例是将多套puppet服务端(puppet+apache+foreman+foreman-proxy)系统,利用nginx负载均衡实现统一服务的功能。其中用到的puppet+apache+foreman+foreman-proxy配置和nginx+puppet配置等内容可以参考本人前面的相关文章。
  这里以2套为例,它们的信息如下:
  软件信息:Centos6.5 x86_64,puppet3.8.3,foreman1.9.2,foreman-proxy1.9.2
  其中主master端安装有nginx1.4.7
  域名:
  master1:www.master1.com
  master2:www.master2.com
  这里主puppet服务端master1不需要做修改,只需配置好nginx辅助均衡即可;这里主要修改辅助的puppet服务端master2。
  辅助的puppet服务端master2修改如下:
  一、修改puppet配置
  1.1修改puppet.conf
  [main]
  #采用master1的证书域名
  certname = www.master1.com
  #关闭master2的证书认证功能
  ca = false
  1.2修改forema.yaml
  使用master1的如下信息
  :url: "www.master1.com"
  :ssl_ca: "/var/lib/puppet/ssl/ca/ca_crt.pem"
  :ssl_cert: "/var/lib/puppet/ssl/certs/www.master1.com.pem"
  :ssl_key: "/var/lib/puppet/ssl/private_keys/www.master1.com.pem"
  1.3统一配置
  替换/etc/puppet/下的以下文件:
  拷贝master1的fileserver.conf、auth.conf、autosign.conf到master2中相应位置;
  拷贝master1的manifests下文件到master2中相应位置;
  拷贝master1的modules下文件到master2中相应位置;
  注:如果使用了enviroments文件夹来存放不同环境,那么也有拷贝该文件夹。如果后期以上文件有改变也要和及时和master1进行同步。
  1.4统一证书
  拷贝master1的/var/lib/puppet/文件夹到master2中相应位置;
  注:

  •   要特别注意/var/lib/puppet/yaml文件夹及其子文件夹和文件的所属主/组,要是puppet或puppet可以访问才可以。
  •   如果后期以上文件有改变要及时和master1进行同步。
  二、修改apache配置
  2.1禁用80和443端口,只留puppet服务端口
  vim /etc/httpd/conf/ports.conf
  #Listen 443
  #Listen 80
  #NameVirtuaHost *:443
  #NameVirtuaHost *:80
  2.2重命名apache中foreman相关配置文件,使其不启用
  cd /etc/httpd/conf.d
  #mv 05-foreman.conf 05-foreman.conf_bak
  #mv 05-foreman-ssl.conf 05-foreman-ssl.conf_bak
  #mv 15-default.conf 15-default.conf_bak
  2.3修改相关证书设置
  1)修改/etc/puppet/puppet.conf中证书域名为www.master1.com(步骤1.1中已修改)
  2)修改/etc/puppet/foreman.yaml中证书域名为www.master1.com(步骤1.2中已修改)
  3)修改/etc/httpd/conf.d/25-puppet.conf中证书域名为www.master1.com(如果有多个这类puppet.conf文件,那么都有做相应的修改);
  三、关闭相关服务
  3.1 关闭foreman-proxy服务
  #service foreman-proxy stop
  #chkconfig foreman-proxy off
  3.2关闭mysql服务
  #service mysqld stop
  #chkconfig mysqld off
  四、修改master1中nginx配置
  由于辅助puppet即master2停用了证书颁发功能,所以所用的证书申请及颁发必须有主puppet即master1来实现;因而,我们要对新客户端的证书申请和颁发时用到的请求做过滤,让他们只能访问主puppet即master1。
  在已经配好的nginx负载均衡的server配置中增加如下配置:
  #vim /usr/local/nginx/conf/nginx.conf
  location ~* /product/(certification|certificate_request|certificate_revocation_list)  {
  #设置跳转到主puppet即master1中申请证书
  proxy_pass            https://127.0.0.1:8140;
  proxy_redirect       off;
  proxy_set_header   Host $host;
  proxy_set_header   X-Real-IP $remote_addr;
  proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header   X-Client-Verify $ssl_client_verify;
  proxy_set_header   X-SSL-Subject $ssl_client_s_dn;
  proxy_set_header   X-SSL-Issuer $ssl_client_i_dn;
  }
  五、启动服务
  1.启动master2中Apache服务
  #service httpd restart
  2.启动master1中各项相关服务
  #service foreman-proxy restart
  #service httpd restart
  #/usr/local/nginx/sbin/nginx
  3.使用客户端连接进行测试即可
  为了测试效果,可以在nginx中分别开启各个puppet服务连接,来验证每个puppet服务是否正常。
  备注:
  1.如果有多套同样的,配置方式也是类似的。
  2.如果想使用多端口同时提供服务,设置可以参考本人的文章《Nginx对(apache+foreman+puppet)负载均衡》http://4709096.blog.51cto.com/4699096/1730674
  3.其实master2可以单独使用apache-http或nginx来和rubygem-mongrel+puppetmaster结合实现多端口,负载均衡配置;本人这里都装了foreman和foreman是出于懒惰,因为安装foreman时就会自动去安装配置rubygem-mongrel,有兴趣的同学可以从网上参考相关文章。

运维网声明 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-545071-1-1.html 上篇帖子: puppet变量、数据类型及类(03) 下篇帖子: centos6.5 + puppet-10484588
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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