puppet 纵向扩展Apache+Passenger

简介: 转载:http://blog.51cto.com/ywzhou/15765291、功能说明puppet默认使用基于Ruby的WEBRickHTTP来处理HTTPS请求,单个服务器使用Apache+Passenger替换掉WEBRickHTTP,P...

转载:http://blog.51cto.com/ywzhou/1576529
1、功能说明

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

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

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

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

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

2、安装apache

[root@puppet ~]# yum install -y httpd httpd-devel openssl mod_ssl ruby-devel libcurl-devel rubygems gcc

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

3、安装passenger

[root@puppet ~]# gem install rack passenger
[root@puppet ~]# passenger-install-apache2-module

直接回车
img_52974ca5ba37f4dd19f984cb74b361e7.jpe
wKiom1RlnC2xwyjjAABaPfWHCQ8592.jpg
默认选择了Ruby,直接回车

检查需要安装的包,根据提示安装需要的软件包,再重新执行
[root@puppet ~]# yum install libcurl-devel

需要将此段写入passenger.conf中:
[root@puppet ~]# 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进程

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

5、配置passenger和vhost

[root@puppet puppet]# cp ext/rack/example-passenger-vhost.conf  /etc/httpd/conf.d/puppetmaster.conf
[root@puppet 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、服务

[root@puppet ~]# service puppetmaster stop
[root@puppet ~]# service httpd restart
[root@puppet ~]# chkconfig httpd on
[root@puppet ~]# netstat -nlp | grep 8140

7、测试

(1)WEB网页访问测试

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

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

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

(2)linux客户端测试

[root@zabbix ~]# puppet agent --server puppet.ewin.com --test

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

(3)puppet服务端测试

[root@puppet ~]# tailf /var/log/httpd/access_log
10.188.1.172是windows客户机ywzhou-pc:

10.188.1.103是linux客户机zabbix:

客户机发出HTTP GET请求,状态码200表示请求成功,再使用PUT请求提交了一个报告
目录
相关文章
|
Apache 数据中心 微服务
构建可扩展的消息系统:Apache Pulsar和NATS的比较
消息系统在现代分布式应用程序中扮演着至关重要的角色,它们用于实现异步通信、事件驱动架构和可靠数据传输。在本篇文章中,我们将探讨两个流行的消息系统:Apache Pulsar和NATS,并比较它们的特点、性能和可扩展性。我们将研究它们的架构、部署方式以及如何使用它们来构建可靠和高性能的消息传递系统。
545 0
|
4月前
|
SQL 消息中间件 Java
兼容Trino Connector,扩展Apache Doris数据源接入能力|Lakehouse 使用手册(四)
通过兼容 Connector 插件,Apache Doris 能够支持 Trino/Presto 可对接的所有数据源,而无需改动 Doris 的内核代码。
兼容Trino Connector,扩展Apache Doris数据源接入能力|Lakehouse 使用手册(四)
|
8月前
|
Apache PHP
百度搜索:蓝易云【Apache环境php安装扩展swoole。】
通过以上步骤,你就可以在Apache环境中成功安装和配置Swoole扩展了。请确保你按照正确的步骤进行操作,并根据你的系统和环境进行相应的调整。如果遇到问题,你可以参考Swoole官方文档或社区的支持资源来获取更多帮助。
61 1
|
SQL 运维 数据挖掘
《Apache Flink 案例集(2022版)》——2.数据分析——快手-Flink SQL 在快手的扩展和实践(1)
《Apache Flink 案例集(2022版)》——2.数据分析——快手-Flink SQL 在快手的扩展和实践(1)
242 0
|
SQL 数据挖掘 Apache
《Apache Flink 案例集(2022版)》——2.数据分析——快手-Flink SQL 在快手的扩展和实践(2)
《Apache Flink 案例集(2022版)》——2.数据分析——快手-Flink SQL 在快手的扩展和实践(2)
262 0
|
SQL 数据挖掘 Apache
《Apache Flink 案例集(2022版)》——2.数据分析——快手-Flink SQL 在快手的扩展和实践(3)
《Apache Flink 案例集(2022版)》——2.数据分析——快手-Flink SQL 在快手的扩展和实践(3)
218 0
|
SQL 数据挖掘 Apache
《Apache Flink 案例集(2022版)》——2.数据分析——快手-Flink SQL 在快手的扩展和实践(4)
《Apache Flink 案例集(2022版)》——2.数据分析——快手-Flink SQL 在快手的扩展和实践(4)
184 0
|
25天前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
313 33
The Past, Present and Future of Apache Flink
|
3月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
899 13
Apache Flink 2.0-preview released
|
3月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
114 3

推荐镜像

更多