1.为什么要配置nginx的自动化部署?
nginx在实际生产环境当中意义巨大,因此自动化部署nginx是必须要会的!!!
2.具体过程如下
已经做过apache的自动化部署了,今天接着来学习nginx
打开4台虚拟机的服务
[root@server5 salt]# mkdir nginx
[root@server5 salt]# mkdir pkgs
[root@server5 salt]# ls
apache haproxy nginx pkgs top.sls users
[root@server5 salt]# cd pkgs/
[root@server5 pkgs]# ls
make.sls
[root@server5 pkgs]# vim make.sls
nginx-make:
pkg.installed:
- pkgs:
- gcc
- pcre-devel
- openssl-devel
- make
[root@server5 salt]# cd users/
[root@server5 users]# ls
nginx.sls
[root@server5 users]# vim nginx.sls
nginx:
user.present:
- shell: /sbin/nologin #普通用户无法登录
- home: /usr/local/nginx #在该目录下创建家目录
- createhome: False # 不在/home下创建家目录
[root@server5 nginx]# mkdir files
[root@server5 nginx]# cd files/
[root@server5 files]# ls
nginx-1.16.0.tar.gz nginx.conf nginx.service
[root@server5 salt]# cd nginx/
[root@server5 nginx]# ls
files install.sls service.sls
[root@server5 nginx]# vim install.sls
include:
- pkgs.make #安装命令
install-nginx:
file.managed: #修改配置文件
- name: /mnt/nginx-1.16.0.tar.gz
- source: salt://nginx/files/nginx-1.16.0.tar.gz
cmd.run: #解压运行
- name: cd /mnt && tar zxf nginx-1.16.0.tar.gz && cd nginx-1.16.0 && sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module &> /dev/null && make &> /dev/null && make install &> /dev/null
- creates: /usr/local/nginx #当检测到nginx已经重启结束,不用循环使用
[root@server5 files]# salt server7 state.sls nginx.install
[root@server5 nginx]# vim service.sls
include:
- nginx.install
- users.nginx
/usr/local/nginx/conf/nginx.conf:
file.managed:
- source: salt://nginx/files/nginx.conf
service-nginx:
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
(1)在base目录下面创建nginx目录,进入nginx目录,创建files目录