黑帽联盟

标题: saltstack自动化编译安装php [打印本页]

作者: yun    时间: 2019-8-29 13:15
标题: saltstack自动化编译安装php
本帖最后由 yun 于 2019-8-29 13:41 编辑

环境:centos6.7
172.31.225.250 node1.example.com
172.31.225.251 node2.example.com

我们所需要用到的相关文件都在 /srv/salt/prod/files/ 这个目录下面,大家直接下载即可: php.zip (18.25 MB, 下载次数: 0)
6.png

master相关配置:(/etc/salt/master)

  1. file_roots:
  2.   base:
  3.     - /srv/salt/base
  4.   dev:
  5.     - /srv/salt/dev
  6.   prod:
  7.     - /srv/salt/prod

  8. pillar_roots:
  9.   base:
  10.     - /srv/salt/base/pillar
  11.   dev:
  12.     - /srv/salt/dev/pillar
  13.   prod:
  14.     - /srv/salt/prod/pillar
复制代码
开始部署lnmp,个人建议一个一个的部署,不要把nginx、php、mysql都部署在一个文件,这样的话,针对minion端,可以针对性的部署相应的服务


1、部署php(这里个人是编译安装)
首先下载源码包:
wget https://www.php.net/distributions/php-5.6.40.tar.gz


初始化安装:(/srv/salt/prod/init/install.sls)
  1. pkg-init-install:
  2.   pkg.installed:
  3.     - names:
  4.       - gcc
  5.       - gcc-c++
  6.       - glibc
  7.       - make
  8.       - automake
  9.       - autoconf
  10.       - libjpeg-turbo-devel
  11.       - libpng
  12.       - libpng-devel
  13.       - freetype-devel
  14.       - libxml2
  15.       - libxml2-devel
  16.       - zlib
  17.       - zlib-devel
  18.       - libcurl
  19.       - libcurl-devel
  20.       - openssl
  21.       - openssl-devel
  22.       - swig
  23.       - cmake
  24.       - ncurses-devel
  25.       - libmcrypt
  26.       - libmcrypt-devel
  27.       - libtool-ltdl-devel
  28.       - bison
  29.       - git
  30.       - gd
  31.       - gd-devel
  32.       - mcrypt
  33.       - libXpm
  34.       - libXpm-devel
  35.       - libevent
  36.       - libevent-devel
复制代码

php安装:(/srv/salt/prod/php.sls)
  1. include:
  2.   - init.install

  3. php-source:
  4.   file.managed:
  5.     - name: /usr/local/src/php-5.6.40.tar.gz
  6.     - source: salt://files/php-5.6.40.tar.gz
  7.     - user: root
  8.     - group: root
  9.     - mode: 644
  10.     - unless: test -f /usr/local/src/php-5.6.40.tar.gz

  11. php-install:
  12.   cmd.run:
  13.     - name: cd /usr/local/src && tar xf php-5.6.40.tar.gz && cd php-5.6.40 && ./configure --prefix=/usr/local/php --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-zlib=/usr/local/zlib --enable-mbstring=all --enable-mbregex --enable-shared --enable-fpm && make && make install
  14.     - unless: test -d /usr/local/php
  15.     - require:
  16.       - pkg: pkg-init-install
  17.       - file: php-source

  18. php-ini:
  19.   file.managed:
  20.     - name: /usr/local/php/etc/php.ini
  21.     - source: salt://files/php.ini-development
  22.     - user: root
  23.     - group: root
  24.     - mode: 644
  25.     - require:
  26.       - cmd: php-install
  27.     - watch_in:
  28.       - service: php-service

  29. php-fpm-conf:
  30.   file.managed:
  31.     - name: /usr/local/php/etc/php-fpm.conf
  32.     - source: salt://files/php-fpm.conf
  33.     - user: root
  34.     - group: root
  35.     - mode: 644

  36. /etc/init.d/php-fpm:
  37.   file.managed:
  38.     - source: salt://files/init.d.php-fpm
  39.     - user: root
  40.     - group: root
  41.     - mode: 755
  42.     - require:
  43.       - cmd: php-install

  44. user-create:
  45.   cmd.run:
  46.     - name: groupadd www && useradd -r -g www www -s /sbin/nologin
  47.     - unless: id www

  48. php-chkconfig:
  49.   cmd.run:
  50.     - name: chkconfig --add php-fpm
  51.     - unless: chkconfig --list | grep php-fpm
  52.     - require:
  53.       - file: /etc/init.d/php-fpm

  54. php-service:
  55.   service.running:
  56.     - name: php-fpm
  57.     - enable: True
  58.     - require:
  59.       - file: /etc/init.d/php-fpm
  60.     - watch:
  61.       - file: php-fpm-conf

  62. nginx-php:
  63.   file.managed:
  64.     - name: /usr/local/nginx/conf/enable-php.conf
  65.     - source: salt://files/enable-php.conf
  66.     - user: root
  67.     - group: root
  68.     - mode: 644
  69.     - require:
  70.       - service: php-service
复制代码

下面正式安装:
安装之前最好先进行测试安装,检查有没有错误,因为在生产环境下直接执行安装错误,会导致对外服务的相关组件有可能出现问题,所以先进性测试安装
  1. salt '*' state.sls php env=prod test=True
复制代码
这里我测试没有问题,就直接安装了
  1. salt '*' state.sls php env=prod
复制代码
查看php服务
node2.png

node1.png


至此就结束了。原创不易,转载请注明原创来处,谢谢!


相关文章:
saltstack自动化安装编译mysql

saltstack自动化安装部署nginx






欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5