SaltStack之安装部署nginx

一、源码编译并启动nginx

1.源码编译nginx
1>下载安装包到/srv/salt/nginx/files目录下

[root@server1 ~]# cd /srv/salt/
[root@server1 salt]# mkdir nginx
[root@server1 salt]# ls
httpd  nginx
[root@server1 salt]# cd nginx/
[root@server1 nginx]# mkdir files
[root@server1 nginx]# cd files/
[root@server1 files]# ls
nginx-1.15.8.tar.gz

2>部署脚本

[root@server1 nginx]# pwd
/srv/salt/nginx
[root@server1 nginx]# vim install.sls
nginx-install:
  pkg.installed:
    - pkgs:
      - pcre-devel
      - zlib-devel
      - gcc
      - make

  file.managed:
    - name: /mnt/nginx-1.15.8.tar.gz
    - source: salt://nginx/files/nginx-1.15.8.tar.gz
   cmd.run:   #调用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 --pr
efix=/usr/local/nginx &> /dev/null && make &> /dev/null && make install &> /dev
/null && cd .. && rm -rf nginx-1.15.8
     - creates: /usr/local/nginx   #判断/usr/local/nginx是否存在,如果存在,就不执行cmd.run这部分

3>执行推送

[root@server1 nginx]# salt server3 state.sls nginx.install

在这里插入图片描述4>测试
minion端(server3)查看/usr/local/nginx目录及/mnt/nginx-1.15.8.tar.gz文件是否存在,如果存在则编译成功

在这里插入图片描述

2.启动(触发)
1>编写nginx脚本

[root@server1 files]# pwd
/srv/salt/nginx/files
[root@server1 files]# ls
nginx-1.15.8.tar.gz
[root@server1 files]# vim nginx.service
[Unit]
Descripition=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=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

2>部署脚本

[root@server1 nginx]# pwd
/srv/salt/nginx
[root@server1 nginx]# ls
files  install.sls
[root@server1 nginx]# vim service.sls
include:
  - nginx.install
 
nginx-service:
  file.managed:
    - name: /etc/systemd/system/nginx.service
    - source: salt://nginx/files/nginx.service
 
  service.running:
    - name: nginx
    - reload: True
    - watch:    #这个触发器可有可无
      - file: nginx-service  

3>执行推送

[root@server1 nginx]# salt server3 state.sls nginx.service

在这里插入图片描述
4>进行测试
minion端(server3)查看80端口是否已经打开,并查看nginx的进程是否存在
在这里插入图片描述

二、源码编译并启动nginx+配置nginx服务的主配置文件nginx.conf

1、拷贝nginx.conf文件/srv/salt/nginx/files目录下

[root@server3 ~]# scp /usr/local/nginx/conf/nginx.conf server1:/srv/salt/nginx/files

2、编辑nginx.conf文件

[root@server1 files]# pwd
/srv/salt/nginx/files
[root@server1 files]# ls
nginx-1.15.8.tar.gz  nginx.conf  nginx.service
[root@server1 files]# vim nginx.conf   #这里配置启动进程的用户为nginx用户
 2 user  nginx;
 3 worker_processes  auto;

3、编写添加nginx用户的脚本

[root@server1 ~]# cd /srv/salt/
[root@server1 salt]# ls
httpd  nginx
[root@server1 salt]# mkdir users   #该目录必须建在基本目录/srv/salt目录下
[root@server1 salt]# cd users
[root@server1 users]# vim nginx.sls
nginx:
  user.present:
    - uid: 1001   #值的注意的是,该uid号一定得是空uid号(即该uid号没有被别的用户占用)
    - shell: /sbin/nologin

4、部署脚本

[root@server1 nginx]# pwd
/srv/salt/nginx
[root@server1 nginx]# ls
files  install.sls  service.sls
[root@server1 nginx]# vim service.sls
include:
  - nginx.install
  - users.nginx
 
/usr/local/nginx/conf/nginx.conf:
  file.managed:
    - source: salt://nginx/files/nginx.conf
 
nginx-service:
  file.managed:
    - name: /etc/systemd/system/nginx.service
    - source: salt://nginx/files/nginx.service
 
  service.running:
    - name: nginx
    - reload: True
    - watch: 
      - file: /usr/local/nginx/conf/nginx.conf   

5、执行推送

[root@server1 ~]# salt server3 state.sls nginx.service

在这里插入图片描述6、进行测试

minion端(server3)查看nginx的worker进程对应的用户是否是nginx用户。并查看nginx的worker进程数是否和cpu的个数相同
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值