黑帽联盟

标题: saltstack自动化安装部署nginx [打印本页]

作者: yun    时间: 2019-8-27 17:19
标题: saltstack自动化安装部署nginx
本帖最后由 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




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