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
[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
- 执行成功
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/57af212719d2f9c1949a76b68348a552.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e45f10f095cc2c802116606e5b218d89.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9441529718d7a1261bb84ad305c1bbdc.png)
- 在server3上查看,nginx成功安装在/mnt下
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5c608632a52db6dca5f8cea6e153e6a7.png)
- 打开nginx成功
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1a231b4bad00b24ae723b7adc87f362d.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/28b1d5d174b72707078aa9bb7753eaf2.png)
自动部署及自动开启nginx
[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
[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
[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