Puppet扩展(一):纵向扩展Apache+Passenger

1、功能说明

puppet默认使用基于Ruby的WEBRickHTTP来处理HTTPS请求,

单个服务器使用Apache+Passenger替换掉WEBRickHTTP,

Passenger是用于将Ruby程序进行嵌入执行的Apache模块,

在安装前,首先至少要执行一次service puppetmaster start,生成本地证书

官方配置指南:https://docs.puppetlabs.com/guides/passenger.html

2、安装apache

[[email protected] ~]# yum install -y httpd httpd-devel openssl mod_ssl ruby-devel libcurl-devel rubygems gcc

    前面已安装了apache,这里主要安装mod_ssl ruby-devel libcurl-devel三个。

3、安装passenger

[[email protected] ~]# gem install rack passenger
[[email protected] ~]# passenger-install-apache2-module

直接回车

默认选择了Ruby,直接回车

检查需要安装的包,根据提示安装需要的软件包,再重新执行

[[email protected] ~]# yum install libcurl-devel

需要将此段写入passenger.conf中:

[[email protected] ~]# vi /etc/httpd/conf.d/passenger.conf
    LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-4.0.53/buildout/apache2/mod_passenger.so    
    <IfModule mod_passenger.c>      
      PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-4.0.53      
      PassengerDefaultRuby /usr/bin/ruby    
    </IfModule>

继续回车完成,可以看到一个虚拟主机的配置样例。

4、配置rack

config.ru文件会告诉Rack如何生成puppet master进程

[[email protected] ~]# cd /usr/share/puppet
[[email protected] puppet]# mkdir -p rack/puppetmasterd/{public,tmp}
[[email protected] puppet]# cp ext/rack/config.ru rack/puppetmasterd/
[[email protected] puppet]# chown puppet:puppet rack/puppetmasterd/config.ru

5、配置passenger和vhost

[[email protected] puppet]# cp ext/rack/example-passenger-vhost.conf  /etc/httpd/conf.d/puppetmaster.conf
[[email protected] puppet]# vi /etc/httpd/conf.d/puppetmaster.conf
# This Apache 2 virtual host config shows how to use Puppet as a Rack
# application via Passenger. See
# http://docs.puppetlabs.com/guides/passenger.html for more information.

# You can also use the included config.ru file to run Puppet with other Rack
# servers instead of Passenger.

# you probably want to tune these settings
PassengerHighPerformance on
PassengerMaxPoolSize 12
PassengerPoolIdleTime 1500
# PassengerMaxRequests 1000
PassengerStatThrottleRate 120
#RackAutoDetect Off             #注释掉这行
#RailsAutoDetect Off            #注释掉这行

Listen 8140

<VirtualHost *:8140>
        SSLEngine on
        SSLProtocol             ALL -SSLv2 -SSLv3
        SSLCipherSuite          EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
        SSLHonorCipherOrder     on

        SSLCertificateFile      /var/lib/puppet/ssl/certs/puppet.ewin.com.pem   #修改路径和证书名称
        SSLCertificateKeyFile   /var/lib/puppet/ssl/private_keys/puppet.ewin.com.pem  #修改路径和证书名称
        SSLCertificateChainFile /var/lib/puppet/ssl/ca/ca_crt.pem  #修改路径
        SSLCACertificateFile    /var/lib/puppet/ssl/ca/ca_crt.pem  #修改路径
        # If Apache complains about invalid signatures on the CRL, you can try disabling
        # CRL checking by commenting the next line, but this is not recommended.
        SSLCARevocationFile     /var/lib/puppet/ssl/ca/ca_crl.pem  #修改路径
        # Apache 2.4 introduces the SSLCARevocationCheck directive and sets it to none
        # which effectively disables CRL checking; if you are using Apache 2.4+ you must
        # specify ‘SSLCARevocationCheck chain‘ to actually use the CRL.
        # SSLCARevocationCheck chain
        SSLVerifyClient optional
        SSLVerifyDepth  1
        # The `ExportCertData` option is needed for agent certificate expiration warnings
        SSLOptions +StdEnvVars +ExportCertData

        # This header needs to be set if using a loadbalancer or proxy
        RequestHeader unset X-Forwarded-For

        RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e
        RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e
        RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e

        DocumentRoot /usr/share/puppet/rack/puppetmasterd/public    #修改路径
        RackBaseURI /
        <Directory /usr/share/puppet/rack/puppetmasterd/>           #修改路径
                Options None
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

6、服务

[[email protected] ~]# service puppetmaster stop
[[email protected] ~]# service httpd restart
[[email protected] ~]# chkconfig httpd on
[[email protected] ~]# netstat -nlp | grep 8140

7、测试

(1)WEB网页访问测试

客户端修改IE设置,去掉标黄的勾:

使用IE浏览https://10.188.1.73:8140/

出现这一行表示配置成功,下一节配置Dashboard后就有内容了。

(2)linux客户端测试

[[email protected] ~]# puppet agent --server puppet.ewin.com --test

没有报错,显示配置版本号及完成时间表示成功。

(3)puppet服务端测试

[[email protected] ~]# tailf /var/log/httpd/access_log

10.188.1.172是windows客户机ywzhou-pc:

10.188.1.103是linux客户机zabbix:

客户机发出HTTP GET请求,状态码200表示请求成功,再使用PUT请求提交了一个报告

时间: 2024-11-11 15:11:49

Puppet扩展(一):纵向扩展Apache+Passenger的相关文章

【转】横向扩展与纵向扩展

谈到系统的可伸缩性,Scale-up(纵向扩展)和Scale-out(横向扩展)是两个常见的术语. 鱼缸的启示:Scale-out和Scale-up架构 其实我认为Scale-out和Scale-up的概念可以用一个简单的例子来解释. 不知您有没有养过鱼?当你只有六七条鱼的时候,一个小型鱼缸就够了;可是过一段时间新生了三十多条小鱼,这个小缸显然不够大了. 如果用Scale-up解决方案,那么你就需要去买一个大缸,把所有沙啊.水草啊.布景啊.加热棒.温度计都从小缸里拿出来,重新布置到大缸.这个工程

Puppet单台架构扩展(nginx/apache + passenger)

系统环境:rhel6.5,puppet 3.7.4 Master server1.example.com(192.168.88.128) Agent server2.example.com(192.168.88.129) 原理:使用apache或nginx代替puppet原生态的Webrick以提升master的吞吐量,在master上启webserver以负责监听8140端口并处理客户端的请求.file文件以及验证的客户端请求,将编译部分代理转发到后端的master.极大扩展master能够管

Puppet apache + passenger模式扩展

puppet使用SSL(https)协议来进行通讯,默认情况下,puppet server端使用基于Ruby的WEBRick HTTP服务器.由于WEBRick HTTP服务器在处理agent端的性能方面并不是很强劲,因此需要扩展puppet,搭建Apache或者其他web服务器来处理客户的https请求. Passenger是一个将Ruby程序嵌入执行的apache的一个模块,它可以让你运行Rails,即Rack应用内的一个Web服务器.能够自动增减集群进程的数量.能提高性能并增加Master

系统之纵向扩展

硬件永远比开发者和有效率的代码便宜.可能的话,缓存一切所有数据库都建立在SSD之上,这样可以获得0延时.尽可能最小化建立,程序可以工作才是重点.基于木桶效应,速度肯定受限于某个短板,现有的云服务基本上都存在容量和性能限制.达到同样的性能,使用云的成本将远远高于自建数据中心.什么好用用什么,不要做无必要的系统之争.高效的代码意味着更少的主机.只有新项目上线时才会因为特殊需求增加硬件,通常情况下是添加内存,但在此之外,高效的代码就意味着0硬件添加.所以经常只讨论两个问题:为存储增加新的SSD:为新项

横向拆分(扩展) 纵向拆分(扩展)

Scale Out(也就是Scale horizontally)横向扩展,向外扩展Scale Up(也就是Scale vertically)纵向扩展,向上扩展无论是Scale Out,Scale Up,Scale In,实际上就是一种架构的概念,这些概念用在存储上可以,用在数据库上,网络上一样可以.简单比喻下Scale out和Scale up,帮助我们理解:Scale Out,比如:我们向原有的web.邮件系统添加一个新机器.Scale UP,比如:我们向原有的机器添加CPU.内存.

MariaDB Spider蜘蛛侠轻松解决表的横纵向扩展

什么是Spider? 当您的数据库不断增长时,您绝对需要考虑其他技术,如数据库分片.Spider是MariaDB内置的一个可插拔用于MariaDB/MySQL数据库分片的存储引擎,充当应用服务器和远程后端DB之间的代理(中间件),它可以轻松实现MySQL的横向和纵向扩展,突破单台MySQL的限制,支持范围分区.列表分区.哈希分区,支持XA分布式事务,支持跨库join.通过Spider,您可以跨多个数据库后端有效访问数据,让您的应用程序一行代码不改,即可轻松实现分库分表! 分库分表架构图: 应用程

基于Centos 6.5 配置分离式LAMP平台环境的一次扩展实现多PHP Apache和自建DNS来提升LAMP的负载

要达到的目的双Apache+PHP能正常的被DNS轮询解析到Apache 1 2 服务器能正常访问NFS上的静态资源PHP 1 2 服务器能正常访问NFS上的PHP资源Apache 1 2 和PHP 1 2服务器都能和MariaDB数据库服务器通信最终实现低价格提高网站负载的方案 由于这里使用了7台服务器所以下文区别服务器的方法请看命令行的[[email protected] ~]这个字段 服务器编号 服务器IP 服务器安装的服务 服务器系统 LookBack163 172.16.41.163

linux下安装 gd扩展和 ftp扩展

ftp拓展 1.进入PHP安装源码包,找到ext下的ftp,进入 cd /usr/local/mysql/support-files/php-7.0.12/ext/ftp 2./usr/local/php/bin/phpize 3../configure --with-php-config=/usr/local/php/bin/php-config --enable-ftp 4.make && make install 5.vim /etc/php.ini  添加 : extension=

使用Apache+Passenger部署高性能PuppetMaster

前言: 最近在服务器系统上安装了最新的Puppet客户端,发现跟老版本的PuppetMaster做同步时出现了一些问题,警告类的信息很好解决,注释掉配置文件templatedir该行即可,后来又对PuppetMaster做了次升级,直接升为最新的3.6.1,随后发现PuppetMaster默认安装的WEBrick的web服务器性能较低且最新版本3.6.1存在bug以至于无法同时接受多台Agent客户端请求,因此使用Apache+Passenger方案替代原WEBrick,提高并发性能,同时解决b