puppet补充--搭建lnmp   以及dashboard,passenger

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

其他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   启动服务

#mysql

>use dashboard_production;

>show tables;

#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上,可看到

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

点击日志可查看信息

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 支持,按提示操作,基本就是一路回车。

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:

server5

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

时间: 2024-10-03 21:54:08

puppet补充--搭建lnmp   以及dashboard,passenger的相关文章

puppet 搭建lnmp架构

pupppet 搭建lnmp架构: [[email protected] puppet]# tree modules/ modules/ |-- httpd |   |-- files |   |   `-- httpd.conf |   `-- manifests |       |-- config.pp |       |-- init.pp |       |-- install.pp |       `-- service.pp |-- mysqld |   |-- files |  

CentOS源码安装搭建LNMP全过程(包括nginx,mysql,php,svn)【转】

转自:http://blog.csdn.net/yanzi1225627/article/details/49123659 服务器环境为:CentOS6.5 64位 目标:搭建LNMP(Linux + Nginx + MySQL + PHP +SVN),其中svn是用来代替ftp,方便开发中调试同步代码 相关目录:所有软件都安装到/www/目录下,在www目录下新建web文件夹作为网站的根路径,www目录下新建wwwsvn作为svn的仓库地址./www/software用来放nginx,mysq

docker搭建lnmp环境

入门参考 http://www.runoob.com/docker/docker-install-nginx.html 十大常用命令玩转docker 1. #从官网拉取镜像 docker pull <镜像名:tag> 如:docker pull centos(拉取centos的镜像到本机) 2.#搜索在线可用镜像名 docker search <镜像名> 如:docker search centos( 在线查找centos的镜像) 3.#查询所有的镜像,默认是最近创建的排在最上 d

搭建lnmp环境,部署php动态网站

搭建LNMP 前言:"N"代表Nginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgor sysoev开发,其特点是占有内存少,并发能力强,单台物理服务器可支持3万-5万个并发请求,中国使用nginx网站用户有:百度.京东.新浪.网易.腾讯.淘宝等. 通过下面的实验搭建LNMP环境,部署天空影城的php动态网站 本实验在虚拟机中运行,使用Redhat6.5系统部署! 一.安装及运行 1.搭建yum仓库,安装支持软件 nginx的配置及运行需要pcre,zlib等软件

搭建LNMP+CI环境

首先搭建 LNMP 的服务器环境 安装 Nginx, MySQL 和 PHP 软件包,执行以下命令 yum install -y nginx mariadb-server mariadb php php-fpm php-mysql 启动并检查 Nginx 和 PHP 的安装情况 修改 /etc/nginx/nginx.conf,可参考下面的配置示例: nginx.conf user nginx; worker_processes auto; error_log /var/log/nginx/er

搭建LNMP中遇到PHP只能下载无法打开的处理

搭建LNMP中nginx能正常访问,但PHP文件只能下载无法打开的问题处理方法 首先,我们先了解下安装nginx后的目录: |--nginx |-conf.d |-default.conf |-fastcgi_params.default |-nginx.conf |-uwsgi_params.default |-default.d     |-koi-utf |-nginx.conf.default |-win-utf |-fastcgi.conf |-koi-win |-scgi_param

CentOS源码安装搭建LNMP全过程(包括nginx,mysql,php,svn)

服务器环境为:CentOS6.5 64位 目标:搭建LNMP(Linux + Nginx + MySQL + PHP +SVN),其中svn是用来代替ftp,方便开发中调试同步代码 相关目录:所有软件都安装到/www/目录下,在www目录下新建web文件夹作为网站的根路径,www目录下新建wwwsvn作为svn的仓库地址./www/software用来放nginx,mysql,php的安装包和源码.nginx运行分组和账户www:www 一,安装前的准备 yum -y install ntp m

源码搭建LNMP

源码安装LNMP 作者:尹正杰 前言:非常简单的一个平台LNMP,在生产实际环节中我们也经常用到! 二话不说,开始享受我们的搭建过程吧! 一.源码安装nginx 1.安装依赖包 [[email protected] yinzhengjie]# yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre* make gd-devel libjpeg-devel libpng-deve

搭建lnmp环境

本次实验中搭建lnmp环境所使用的软件下载http://链接:http://pan.baidu.com/s/1hsCqI5u 密码:ndsy 1:首先要安装的mysql:一般我们把下载的安装包放在/usr/local/src下面: 首先解压安装包: [[email protected] src]# tar zvxf mysql-5.1.73-linux-i686-glibc23.tar.gz 把解压后的文件移至/usr/local/下: [[email protected] src]# mv m