nginx结合多套puppet实现(apach+forman+puppt)

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中相应位置;

注:如果后期以上文件有改变要及时和master1进行同步。


二、修改apache配置

2.1禁用80和443端口,只留puppet服务端口

vim /etc/httpd/conf/port.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


三、关闭相关服务

3.1关闭foreman服务

#service foreman stop

#chkconfig foreman off


3.2 关闭foreman-proxy服务

#service foreman-proxy stop

#chkconfig foreman-proxy 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服务是否正常。


如果有多套同样的,配置方式也是类似的。


你可能感兴趣的:(nginx+puppet,puppet集群,多套puppet)