Saltstack——saltstack自动化部署nginx

nginx软件包部署
  • 在/srv/salt/下建立nginx角色存放文件,在nginx下建立files用来存放配置文件以及安装包
[root@server1 ~]# cd /srv/salt/
[root@server1 salt]# ls
apache  top.sls
[root@server1 salt]# mkdir nginx
[root@server1 salt]# cd nginx/
[root@server1 nginx]# mkdir files
[root@server1 nginx]# cd files/
[root@server1 files]# mv /root/nginx-1.15.8.tar.gz .
[root@server1 files]# ls
nginx-1.15.8.tar.gz

  • 由于编译nginx需要安装一些软件包所以我们再创建一个角色pkgs,此角色是为nginx服务的
[root@server1 salt]# mkdir pkgs
[root@server1 salt]# cd pkgs/
[root@server1 pkgs]# vim install.sls
[root@server1 pkgs]# cat install.sls 
nginx-make:
  pkg.installed:
    - pkgs:
      - pcre-devel
      - openssl-devel
      - gcc

  • 编写nginx下的install.sls文件
[root@server1 salt]# cd nginx/
[root@server1 nginx]# ls
files  install.sls
[root@server1 nginx]# cat install.sls 
include:
  - pkgs.install   ## 调用pkgs角色用来安装gcc等

install-nginx:
  file.managed:
    - name: /mnt/nginx-1.15.8.tar.gz  ## 将安装在主机的mnt下
    - source: salt://nginx/files/nginx-1.15.8.tar.gz

  cmd.run:
    - name: cd /mnt && tar zxf nginx-1.15.8.tar.gz && cd nginx-1.15.8 && sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && ./configure --prefix=/usr/local/nginx && make && make install   ## 将要执行的动作包括编译以及make
    - creates: /usr/local/nginx

  • 执行成功
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 在server3上查看,nginx成功安装在/mnt下
    在这里插入图片描述
  • 打开nginx成功
    在这里插入图片描述
    在这里插入图片描述
自动部署及自动开启nginx
  • 编写service文件
[root@server1 nginx]# ls
files  install.sls
[root@server1 nginx]# vim service.sls
[root@server1 nginx]# cat service.sls 
include:
  - nginx.install   ##调用nginx的软件包部署

/usr/local/nginx/conf/nginx.conf:
  file.managed:
    - source: salt://nginx/files/nginx.conf


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

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

  • 将配置文件放进nginx下的files目录
[root@server1 nginx]# ls
files  install.sls  service.sls
[root@server1 nginx]# cd files/
[root@server1 files]# scp server3:/usr/local/nginx/conf/nginx.conf .
nginx.conf                                    100% 2656     2.6KB/s   00:00    
[root@server1 files]# ls
nginx-1.15.8.tar.gz  nginx.conf

  • 编写system的文件,可以参考httpd的模版,此文件是为了定义操纵nginx的命令行
[root@server1 files]# ls
nginx-1.15.8.tar.gz  nginx.conf  nginx.service
[root@server1 files]# cat 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

  • nginx中要有这些为文件才可以执行
[root@server1 files]# ls
nginx-1.15.8.tar.gz  nginx.conf  nginx.service
[root@server1 files]# cd ..
[root@server1 nginx]# ls
files  install.sls  service.sls

  • 执行成功
    在这里插入图片描述
    在这里插入图片描述
  • 自动开启成功
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值