黑帽联盟

 找回密码
 会员注册
查看: 888|回复: 0
打印 上一主题 下一主题

[集群服务] saltstack自动化编译安装php

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

    本帖最后由 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

    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部