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

[经验分享] puppet 搭建lnmp架构

[复制链接]

尚未签到

发表于 2018-8-1 13:49:33 | 显示全部楼层 |阅读模式
  pupppet 搭建lnmp架构:
  [root@server1 puppet]# tree modules/
  modules/
  |-- httpd
  |   |-- files
  |   |   `-- httpd.conf
  |   `-- manifests
  |       |-- config.pp
  |       |-- init.pp
  |       |-- install.pp
  |       `-- service.pp
  |-- mysqld
  |   |-- files
  |   |   |-- cmake-2.8.4.tar.gz
  |   |   |-- my.cnf
  |   |   |-- mysql-5.5.12.tar.gz
  |   |   `-- mysql_install.sh
  |   `-- manifests
  |       |-- config.pp
  |       |-- init.pp
  |       |-- install.pp
  |       `-- service.pp
  |-- nginx
  |   |-- files
  |   |   |-- nginx-1.10.1.tar.gz
  |   |   |-- nginx.conf
  |   |   `-- nginx_install.sh
  |   `-- manifests
  |       |-- config.pp
  |       |-- init.pp
  |       |-- install.pp
  |       `-- service.pp
  `-- php
  |-- files
  |   |-- libmcrypt-2.5.8.tar.bz2
  |   |-- php-5.3.6.tar.bz2
  |   |-- php-fpm.conf
  |   `-- php_install.sh
  `-- manifests
  |-- config.pp
  |-- init.pp
  |-- install.pp
  `-- service.pp
  12 directories, 28 files
  nginx模块:
  [root@server1 manifests]# ls
  config.pp  init.pp  install.pp  service.pp
  [root@server1 manifests]# cat init.pp
  class nginx {
  include nginx::install,nginx::config,nginx::service
  }
  [root@server1 manifests]# cat install.pp
  class nginx::install {
  file {
  "/mnt/nginx-1.10.1.tar.gz":
  source => "puppet:///modules/nginx/nginx-1.10.1.tar.gz";
  "/mnt/nginx_install.sh":
  source => "puppet:///modules/nginx/nginx_install.sh",
  mode => 775
  }
  exec {
  "nginx-install":
  command => '/mnt/nginx_install.sh',
  timeout => 9999,
  path => '/bin:/sbin:/usr/bin:/usr/sbin',
  creates => '/usr/local/nginx/sbin/nginx',
  require => File ["/mnt/nginx_install.sh"],
  }
  }
  [root@server1 manifests]# cat config.pp
  class nginx::config {
  file {
  "/usr/local/nginx/conf/nginx.conf":
  source => "puppet:///modules/nginx/nginx.conf",
  notify => Exec["reload-nginx"],
  require => Class[nginx::install]
  }
  }
  [root@server1 manifests]# cat service.pp
  class nginx::service {
  exec {
  "start-nginx":
  command =>'/usr/local/nginx/sbin/nginx',
  require => Class['nginx::config'],
  creates => '/usr/local/nginx/logs/nginx.pid'
  }
  exec {
  "reload-nginx":
  command => '/usr/local/nginx/sbin/nginx -s reload',
  refreshonly => true
  }
  }
  [root@server1 manifests]#
  [root@server1 nginx]# cd files/
  [root@server1 files]# ls
  nginx-1.10.1.tar.gz  nginx.conf  nginx_install.sh
  [root@server1 files]# cat nginx_install.sh
  #!/bin/bash
  yum install -y gcc  pcre-devel openssl-devel zlib-devel &>/dev/null
  cd /mnt/
  tar -xf nginx-1.10.1.tar.gz &>/dev/null
  cd nginx-1.10.1
  ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module &> /dev/null
  sed -i.bak 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc
  make &> /dev/null
  make install &> /dev/null
  [root@server1 files]#

  mysql模块:
  [root@server1 nginx]# ls
  files  manifests
  [root@server1 nginx]# cd manifests/
  [root@server1 manifests]# cat init.pp
  class nginx {
  include nginx::install,nginx::config,nginx::service
  }
  [root@server1 manifests]# cat install.pp
  class nginx::install {
  file {
  "/mnt/nginx-1.10.1.tar.gz":
  source => "puppet:///modules/nginx/nginx-1.10.1.tar.gz";
  "/mnt/nginx_install.sh":
  source => "puppet:///modules/nginx/nginx_install.sh",
  mode => 775
  }
  exec {
  "nginx-install":
  command => '/mnt/nginx_install.sh',
  timeout => 9999,
  path => '/bin:/sbin:/usr/bin:/usr/sbin',
  creates => '/usr/local/nginx/sbin/nginx',
  require => File ["/mnt/nginx_install.sh"],
  }
  }
  [root@server1 manifests]# cat config.pp
  class nginx::config {
  file {
  "/usr/local/nginx/conf/nginx.conf":
  source => "puppet:///modules/nginx/nginx.conf",
  notify => Exec["reload-nginx"],
  require => Class[nginx::install]
  }
  }
  [root@server1 manifests]# cat service.pp
  class nginx::service {
  exec {
  "start-nginx":
  command =>'/usr/local/nginx/sbin/nginx',
  require => Class['nginx::config'],
  creates => '/usr/local/nginx/logs/nginx.pid'
  }
  exec {
  "reload-nginx":
  command => '/usr/local/nginx/sbin/nginx -s reload',
  refreshonly => true
  }
  }
  [root@server1 nginx]# cd files/
  [root@server1 files]# ls
  nginx-1.10.1.tar.gz  nginx.conf  nginx_install.sh
  [root@server1 files]# cat nginx_install.sh
  #!/bin/bash
  yum install -y gcc  pcre-devel openssl-devel zlib-devel &>/dev/null
  cd /mnt/
  tar -xf nginx-1.10.1.tar.gz &>/dev/null
  cd nginx-1.10.1
  ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module &> /dev/null
  sed -i.bak 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc
  make &> /dev/null
  make install &> /dev/null
  useradd mysql
  cd /usr/local/lnmp/mysql
  cd support-files
  cp my-large.cnf  /etc/my.cnf
  cp mysql.server  /etc/init.d/mysqld
  sed -i '10s/^/#/g' ~/.bash_profile
  echo "PATH=\$PATH:\$HOME/bin:/usr/local/lnmp/mysql/bin" >> ~/.bash_profile
  source ~/.bash_profile
  chown -R mysql:mysql /usr/local/lnmp/mysql/
  cd /usr/local/lnmp/mysql/scripts
  ./mysql_install_db --user=mysql --basedir=/usr/local/lnmp/mysql --datadir=/usr/local/lnmp/mysql/data
  chown -R root.root /usr/local/lnmp/mysql/
  cd /usr/local/lnmp/mysql/
  chown  mysql data/ -R
  [root@server1 files]#
  [root@server1 files]#

  [root@server1 php]# cd manifests/
  [root@server1 manifests]# vim in
  init.pp     install.pp
  [root@server1 manifests]# vim init.pp
  [root@server1 manifests]# cat init.pp
  class php {
  include php::install,php::config,php::service
  }
  [root@server1 manifests]# cat install.pp
  class php::install {
  file {
  "/mnt/php_install.sh":
  source => 'puppet:///modules/php/php_install.sh',
  mode => 775;
  "/mnt/php-5.3.6.tar.bz2":
  source => 'puppet:///modules/php/php-5.3.6.tar.bz2';
  "/mnt/libmcrypt-2.5.8.tar.bz2":
  source => 'puppet:///modules/php/libmcrypt-2.5.8.tar.bz2';
  }
  exec {
  "php-install":
  command => '/mnt/php_install.sh ',
  timeout =>99999,
  path =>'/bin:/usr/bin:/usr/sbin:/sbin',
  creates => '/etc/init.d/php-fpm',
  require => File ["/mnt/php_install.sh"]
  }
  }
  [root@server1 manifests]# cat config.pp
  class php::config {
  file {
  "/usr/local/lnmp/php/etc/php-fpm.conf":
  source =>'puppet:///modules/php/php-fpm.conf',
  notify =>Exec["php-fpm_reload"],
  require =>Class[php::install]
  }
  }
  [root@server1 manifests]# cat service.pp
  class php::service {
  service {
  "php-fpm":
  ensure =>running,
  require =>Class['php::config'],
  #creates => '/usr/local/lnmp/php/data/server3.example.com.pid'
  }
  exec {
  "php-fpm_reload":
  command =>'/etc/init.d/php-fpm reload',
  refreshonly => true
  }
  }
  [root@server1 manifests]#
  [root@server1 php]# cd files/
  [root@server1 files]# ls
  libmcrypt-2.5.8.tar.bz2  php-5.3.6.tar.bz2  php-fpm.conf  php_install.sh
  [root@server1 files]# cat php_install.sh
  #!/bin/bash
  cd /mnt/
  tar -xf libmcrypt-2.5.8.tar.bz2
  cd libmcrypt-2.5.8
  ./configure --libdir=/usr/local/lib64 &>/dev/null
  make && make install &>/dev/null
  cd libltdl/
  ./configure –libdir=/usr/local/lib64 --enable-ltdl-install &>/dev/null
  make &> /dev/null
  make install &> /dev/null
  yum install -y net-snmp-devel curl-devel libxml2-devel libpng-devel libjpeg-devel freetype-devel gmp-devel &>/dev/null
  cd /mnt/
  tar jxf php-5.3.6.tar.bz2
  cd php-5.3.6
  ./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=/usr/local/lnmp/mysql/lib/ --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir  --with-pear --with-gettext --with-gmp --with-mcrypt --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --with-mysqli=/usr/local/lnmp/mysql/bin/mysql_config --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-libdir=lib64 &> /dev/null
  ln -s /usr/local/lnmp/mysql/lib /usr/local/lnmp/mysql/lib64
  make &> /dev/null
  make install &> /dev/null
  #make test
  cp /usr/local/lnmp/php/etc/php.ini-production /usr/local/lnmp/php/etc/php.ini
  cp /mnt/php-5.3.6/sapi/fpm/php-fpm /etc/init.d/
  chmod +x /etc/init.d/php-fpm
  sed -i "843a cgi.fix_pathinfo=0" /usr/local/lnmp/php/etc/php.ini
  sed -i "998a date.timezone = Asia/Shanghai" /usr/local/lnmp/php/etc/php.ini
  sed -i " 152a pm.start_servers = 10 \n pm.min_spare_servers = 5 \n pm.max_spare_servers = 15 \n pm.max_requests = 500" /usr/local/lnmp/php/etc/php-fpm.conf
  [root@server1 files]#


运维网声明 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-544874-1-1.html 上篇帖子: puppet写ntp模块 下篇帖子: puppet-11065514
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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