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

[经验分享] puppet补充--搭建lnmp 以及dashboard,passenger

[复制链接]

尚未签到

发表于 2018-8-2 07:26:24 | 显示全部楼层 |阅读模式
  puppet搭建lnmp
  server4
  #cd /etc/puppet/modules
  #cp -r httpd nginx
  #cd files
  #rm -fr httpd.conf
  #rm -fr * ../templates
  编写puppet执行脚本 nginx-install.sh
  #touch nginx-install.sh
  #chmod +x nginx-install.sh
  脚本内容如下
#!/bin/bash  
yum install -y openssl-devel pcre-devel gcc
  
cd /mnt
  
tar zxf nginx-1.9.14.tar.gz
  
cd nginx-1.9.14
  
./configure --prefix=/usr/local/nginx --with-http_ssl_module &>/dev/null & make & /dev/null && make install &>/dev/null
  脚本发送到server6:~上
  server6
  #cp nginx-1.9.14.tar.gz /mnt
  #/mnt/nginx-install.sh   //测试脚本是否无错,server5与server6上不要预先安装nginx
  #/usr/local/nginx/sbin/nginx/ -t
  若脚本正常运行
  server4
  在脚本最后添加rm -fr /mnt/*
  server4
  #vim /etc/puppet/modules/nginx/files/nginx.conf
  worker_processes下添加worker_cpu_affinity 01 10(表示开启第一个cpu内核,第二个cup内核,有几个cpu就写几位。绑定cpu)
  events下添加use epoll,将worker_connections 改为4096 (增大连接数),
  #cd /etc/puppet/modules/nginx/manifests/
  #cp nginx-1.9.14.tar.gz /etc/puppet/modles/nginx/files
  将pp中的httpd改为nginx
  #vim install.pp
class nginx::install {  
       file {
  
      ‘/mnt/nginx-1.9.14.tar.gz’:
  
        source => ‘puppet:///modules/nginx/nginx-1.9.14.tar.gz’
  
}
  
file {
  
        ‘/mnt/nginx-install.sh’:
  
        source => ‘puppet:///modules/nginx/nginx-install.sh’,
  
        mode => 755
  
}
  
        exec {
  
           ‘/mnt/nginx-install.sh’:
  
            path => ‘/bin:/sbin:/usr/bin:/usr/sbin’,
  
            create => ‘/usr/local/nginx/sbin/nginx’,   //命令只会在指定文件不存在的情况下执行
  
            require => File [‘/mnt/nginx-1.9.14.tar.gz’,’/mnt/nginx-install.sh’]
  
}
  
}
  #vim config.pp
class nginx::config {  
  file {
  
    ‘/usr/local/nginx/conf/nginx.conf’:
  
    source => ‘puppet:///modules/ngxinx/nginx.conf’,
  
    require => Class[‘nginx::install’],
  
    notify => Exec[‘nginx reload’]
  
}
  
}
  #vim service
class nginx::service {  
   exec {
  
        ‘nginx start’:
  
        command => ‘/usr/local/nginx/sbin/nginx’,
  
        require => Class[‘nginx::install’,’nginx::config’],
  
        creates => ‘/usr/local/nginx/logs/nginx.pid’
  
}
  
   exec {
  
          ‘nginx reload’:
  
          command => ‘/usr/local/nginx/sbin/nginx -s reload’,
  
          refreshonly => true //只有当1个依赖的对象改变时,命令才会被执行
  
}
  #vim /etc/puppet/manifests/nodes/server5.pp
node ‘server5.example.com’  
{
  
}
  server5
  #puppet agent --server server4.example.com --no-daemonize -vt
DSC0000.png

  其他mysql,php配置类同。
  puppet dashboard(以web方式管理puppet)
  安装
  server4
  #yum install ruby rubygems rubygem-rake mysql-server ruby-mysql puppet-dashboard -y
  #cd /usr/share/doc/
  #cd puppet-dashboard/config
  #vim databash.yml
  复制文件中sql语句
CREATE DATABASE dashboard_production CHARACTER SET utf8;  
CREATE USER 'dashboard'@'localhost' IDENTIFIED BY 'westos';
  
GRANT ALL PRIVILEGES ON dashboard_production.* TO 'dashboard'@'localhost';
  复制到test.sql文件中
  #service mysqld start
  #mysql < test.sql
  #vim database.yml
  上面全部删除,只留下生产环境配置
production:  
database: dashboard_production
  
username: dashboard
  
password: westos
  
encoding: utf8
  
adapter: mysql
  #rake RAILS_ENV=production db:migrate   //建立 dashboard 所需的数据库和表
  #rake tim:zone:local     //显示dashboard时区
  #vim settings.yml  //puppet-dashboard 默认时区不正确,需要修改
  time_zone: ‘Beijing’
  #/etc/init.d/puppet-dashboard start   启动服务
DSC0001.png

  #mysql
  >use dashboard_production;
  >show tables;
DSC0002.png

  #cd ../log
  #chmod 666 production.log
  #/etc/init.d/puppet-dashboard-workers start  //启动服务
  设置 server 端:
  #vim /etc/puppet/puppet.conf
  [main]
  #添加以下两项
  reports = http
  reporturl = http://172.25.0.4:3000/reports
  设置 client 端:
  [agent]    添加以下行
  report = true
  客户端会半个小时跟服务器同步一次,我们可以修改这个时间。
  runinterval = 60      //代表 60 秒跟服务器同步一次
  # service puppet reload
  server5
  让客户端自动与服务器同步,设置同步时间
  #vim /etc/sysconfig/puppet 进行如下添加修改
  PUPPET_SERVER=server4.example.com    //puppet master 的地址
  PUPPET_PORT=8140     //puppet 监听端口
  PUPPET_LOG=/var/log/puppet/puppet.log        //puppet 本地日志
  #puppet agent --server server4.example.com --no-daemonize -vt
  web上,可看到
DSC0003.png

  server5上重启nginx,统计图发生了变化
DSC0004.png

  点击日志可查看信息
DSC0005.png

  nginx+passenger:
  puppet 默认使用基于 Ruby 的 WEBRickHTTP 来处理 HTTPS 请求,单个服务器使用。webrickhttp只适合测试,实际生产中通过Apache/Nginx+Passenger 替换掉 WEBRickHTTP,Passenger 是用于将 Ruby 程序进行嵌入执行的Apache 模块,实现对 puppet 的负载均衡。
  server4
  #tar zxf nginx-1.9.14.tar.gz -C /mnt/
  #gem install passenger-5.0.15.gem rack-1.6.4.gem
  #passenger-config --root
  #passenger-install-nginx-module   //脚本会自动安装 nginx 支持,按提示操作,基本就是一路回车。
DSC0006.png

  nginx 默认安装在/opt/nginx 目录:
  #vim /opt/nginx/conf/nginx.conf:
#user nobody;  
worker_processes 4;
  
#error_log logs/error.log;
  
#error_log logs/error.log notice;
  
#error_log logs/error.log info;
  
#pid
  
logs/nginx.pid;
  
events {
  
use epoll;
  
worker_connections 4096;
  
}
  
http {
  
#passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-4.0.58;
  
passenger_ruby /usr/bin/ruby;
  
include   mime.types;
  
default_type application/octet-stream;
  
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  
# '$status $body_bytes_sent "$http_referer" '
  
# '"$http_user_agent" "$http_x_forwarded_for"';
  
#access_log logs/access.log main;
  
sendfile  on;
  
tcp_nopush   on;
  
#keepalive_timeout 0;
  
keepalive_timeout 65;#gzip on;
  
server {
  
listen 8140;
  
server_name server4.example.com;
  
root  /etc/puppet/rack/public;
  
passenger_enabled   on;
  
passenger_set_header X_CLIENT_DN $ssl_client_s_dn;
  
passenger_set_header X_CLIENT_VERIFY $ssl_client_verify;
  
sslon;
  
ssl_session_timeout   5m;
  
ssl_certificate /var/lib/puppet/ssl/certs/server4.example.com.pem;
  
        ssl_certificate_key /var/lib/puppet/ssl/private_keys/server4.example.com.pem;
  
ssl_client_certificate /var/lib/puppet/ssl/ca/ca_crt.pem;
  
ssl_crl  /var/lib/puppet/ssl/ca/ca_crl.pem;
  
ssl_verify_client optional;
  
ssl_ciphers SSLv2:-LOW:-EXPORT:RC4+RSA;
  
ssl_prefer_server_ciphers on;
  
ssl_verify_depth 1;
  
ssl_session_cache
  
shared:SSL:128m;
  
}
  
}
  # mkdir /etc/puppet/rack/{public,tmp} -p
  # cp /usr/share/puppet/ext/rack/config.ru /etc/puppet/rack/
  # chown puppet.puppet /etc/puppet/rack/config.ru
  # chkconfig puppetmaster off
  # service puppetmaster stop   //puppetmaster 不需要启动 , nginx 启动时会自动调用 puppet。
  # /opt/nginx/sbin/nginx -t
  # /opt/nginx/sbin/nginx    //检测 nginx
  web:
DSC0007.png

  server5
  #puppet agent --server server4.example.com --no-daemonize -vt
DSC0008.png

运维网声明 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-545000-1-1.html 上篇帖子: 集中管理系统--puppet 下篇帖子: puppet-10846468
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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