黑帽联盟

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

[集群服务] saltstack自动化安装部署nginx

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

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

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

    [LV.9]以坛为家II

    本帖最后由 yun 于 2019-8-29 13:44 编辑

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

    我们所需要用到的相关文件都在 /srv/salt/prod/files/ 这个目录下面,大家直接下载即可: nginx.zip (3.54 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、部署nginx(这里个人是编译安装)
    首先下载源码包:
    wget http://nginx.org/download/nginx-1.16.1.tar.gz

    初始化安装:(/srv/salt/prod/init/install.sls)
    init.png
    1. pkg-init-install:
    2.   pkg.removed:
    3.     - names:
    4.       - gcc
    5.       - gcc-c++
    6.       - glibc
    7.       - make
    8.       - autoconf
    9.       - libjpeg-turbo-devel
    10.       - libpng
    11.       - libpng-devel
    12.       - freetype-devel
    13.       - libxml2
    14.       - libxml2-devel
    15.       - zlib
    16.       - zlib-devel
    17.       - libcurl
    18.       - libcurl-devel
    19.       - openssl
    20.       - openssl-devel
    21.       - swig
    复制代码
    pcre安装:(/srv/salt/prod/pcre.sls)
    pcre.png
    1. include:
    2.   - init.install

    3. pcre-install:
    4.   file.managed:
    5.     - name: /usr/local/src/pcre-8.43.tar.gz
    6.     - source: salt://files/pcre-8.43.tar.gz
    7.     - user: root
    8.     - group: root
    9.     - mode: 644

    10.   cmd.run:
    11.     - name: cd /usr/local/src/ && tar xf pcre-8.43.tar.gz && cd pcre-8.43 && ./configure --prefix=/usr/local/pcre && make && make install
    12.     - unless: test -d /usr/local/pcre
    13.     - require:
    14.       - pkg: pkg-init-install
    15.       - file: pcre-install
    复制代码
    zlib安装:(/srv/salt/prod/zlib.sls)
    zlib.png
    1. include:
    2.   - init.install

    3. zlib-install:
    4.   file.managed:
    5.     - name: /usr/local/src/zlib-1.2.11.tar.gz
    6.     - source: salt://files/zlib-1.2.11.tar.gz
    7.     - user: root
    8.     - group: root
    9.     - mode: 644

    10.   cmd.run:
    11.     - name: cd /usr/local/src/ && tar xf zlib-1.2.11.tar.gz && cd zlib-1.2.11 && ./configure --prefix=/usr/local/zlib && make && make install
    12.     - unless: test -d /usr/local/zlib
    13.     - require:
    14.       - pkg: pkg-init-install
    15.       - file: zlib-install
    复制代码
    nginx安装:(/srv/salt/prod/nginx.sls)
    nginx.png
    1. include:
    2.   - init.install
    3.   - pcre
    4.   - zlib

    5. nginx-source:
    6.   file.managed:
    7.     - name: /usr/local/src/nginx-1.16.1.tar.gz
    8.     - source: salt://files/nginx-1.16.1.tar.gz
    9.     - user: root
    10.     - group: root
    11.     - mode: 644

    12. user-create:
    13.   cmd.run:
    14.     - name: useradd www -s /sbin/nologin && useradd -G www www
    15.     - unless: id www
    16.     - require_in:
    17.       - cmd: nginx-install

    18. nginx-install:
    19.   cmd.run:
    20.     - name: cd /usr/local/src/ && tar xf nginx-1.16.1.tar.gz && cd nginx-1.16.1 && ./configure --prefix=/usr/local/nginx --user=www --group=www --with-pcre=/usr/local/src/pcre-8.43 --with-zlib=/usr/local/src/zlib-1.2.11 --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-http_dav_module && make && make install
    21.     - unless: test -d /usr/local/nginx
    22.     - require:
    23.       - pkg: pkg-init-install
    24.       - file: nginx-source
    25.       - cmd: pcre-install
    26.     - watch:
    27.       - cmd: zlib-install

    28. nginx-conf:
    29.   file.managed:
    30.     - name: /usr/local/nginx/conf/nginx.conf
    31.     - source: salt://files/nginx.conf
    32.     - user: root
    33.     - group: root
    34.     - mode: 644
    35.     - require:
    36.       - cmd: nginx-install

    37. nginx-init:
    38.   file.managed:
    39.     - name: /etc/init.d/nginx
    40.     - source: salt://files/nginx-test
    41.     - user: root
    42.     - group: root
    43.     - mode: 755
    44.     - require_in:
    45.       - service: nginx-service

    46. nginx-service:
    47.   service.running:
    48.     - name: nginx
    49.     - enable: True
    50.     - require:
    51.       - cmd: nginx-install
    52.     - watch:
    53.       - file: nginx-conf

    54. nginx-chkconfig:
    55.   cmd.run:
    56.     - name: chkconfig --add nginx
    57.     - unless: chkconfig --list | grep nginx
    58.     - require:
    59.       - service: nginx-service
    复制代码
    下面正式安装:
    安装之前最好先进行测试安装,检查有没有错误,因为在生产环境下直接执行安装错误,会导致对外服务的相关组件有可能出现问题,所以先进性测试安装
    1. salt '*' state.sls nginx env=prod test=True
    复制代码
    这里我测试没有问题,就直接安装了
    prod.png
    1. salt '*' state.sls nginx env=prod
    复制代码
    查看nginx服务,或者查看80端口起没起来
    node1.png

    node2.png


    访问http://172.31.225.250 和 http://172.31.225.251
    web1.png

    web2.png

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


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

    saltstack自动化安装编译mysql
    帖子永久地址: 

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

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

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