SaltStack自动化运维管理(四)——使用源码部署nginx服务

SaltStack自动化运维管理(四)——使用源码部署nginx服务

cd /srv/salt/
mkdir nginx
cd nginx/			#在此目录下放nginx源码包
vim init.sls

install-nginx:
  pkg.installed:
    - pkgs:
      - gcc
      - make
      - pcre-devel
      - openssl-devel
  archive.extracted:
    - name: /mnt
    - source: salt://nginx/nginx-1.16.1.tar.gz

SaltStack自动化运维管理(四)——使用源码部署nginx服务_第1张图片
进行推送:

salt server3 state.sls nginx

SaltStack自动化运维管理(四)——使用源码部署nginx服务_第2张图片

SaltStack自动化运维管理(四)——使用源码部署nginx服务_第3张图片
在server3主机中查看:

cd /mnt/
ls

SaltStack自动化运维管理(四)——使用源码部署nginx服务_第4张图片

解压成功!

继续编辑:

install-nginx:
  pkg.installed:
    - pkgs:
      - gcc
      - make
      - pcre-devel
      - openssl-devel
  archive.extracted:
    - name: /mnt
    - source: salt://nginx/nginx-1.16.1.tar.gz

  cmd.run:
    - name: cd /mnt/nginx-1.16.1 && sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && ./configure --prefix=/usr/local/nginx --with-http_ssl_module &> /dev/null && make &> /dev/null && make install &> /dev/null
    - creates: /usr/local/nginx
 
  file.managed:
    - name: /lib/systemd/system/nginx.service               
    - source: salt://nginx/nginx.service

SaltStack自动化运维管理(四)——使用源码部署nginx服务_第5张图片

编写启动脚本:

cd /srv/salt/nginx/
vim nginx.service

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

SaltStack自动化运维管理(四)——使用源码部署nginx服务_第6张图片
进行推送:

salt server3 state.sls nginx

SaltStack自动化运维管理(四)——使用源码部署nginx服务_第7张图片SaltStack自动化运维管理(四)——使用源码部署nginx服务_第8张图片
在server3主机中进行查看:

systemctl status nginx

在这里插入图片描述
启动脚本已经可以被识别,推送成功!

编写service.sls文件:

vim service.sls

/usr/local/nginx/conf/nginx.conf:
  file.managed:
    - source: salt://nginx/nginx.conf
    - require:					#这里来设置优先级,先装包,再启动配置
      - sls: nginx

  service.running:
    - name: nginx
    - enable: true
    - reload: true
    - watch:
      - file: /usr/local/nginx/conf/nginx.conf

SaltStack自动化运维管理(四)——使用源码部署nginx服务_第9张图片
编写service.sls文件:

install-nginx:
  pkg.installed:
    - pkgs:
      - gcc
      - make
      - pcre-devel
      - openssl-devel
  archive.extracted:
    - name: /mnt
    - source: salt://nginx/nginx-1.16.1.tar.gz

  cmd.run:
    - name: cd /mnt/nginx-1.16.1 && sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && ./configure --prefix=/usr/local/nginx --with-http_ssl_module &> /dev/null && make &> /dev/null && make install &> /dev/null
    - creates: /usr/local/nginx

  file.managed:
    - name: /lib/systemd/system/nginx.service
    - source: salt://nginx/nginx.service

include:
  - nginx.service

SaltStack自动化运维管理(四)——使用源码部署nginx服务_第10张图片

拷贝配置文件:

scp server3:/usr/local/nginx/conf/nginx.conf .

SaltStack自动化运维管理(四)——使用源码部署nginx服务_第11张图片
进行推送:

salt server3 state.sls nginx

SaltStack自动化运维管理(四)——使用源码部署nginx服务_第12张图片

SaltStack自动化运维管理(四)——使用源码部署nginx服务_第13张图片
在server3主机中进行查看:

ps ax
netstat -antlp

SaltStack自动化运维管理(四)——使用源码部署nginx服务_第14张图片
SaltStack自动化运维管理(四)——使用源码部署nginx服务_第15张图片
部署成功!

你可能感兴趣的:(企业级项目实战,SaltStack)