SaltStack下nginx自动安装部署
实验环境
主机名 | ip | 服务 |
---|---|---|
server1 | 172.25.1.1 | 服务端 salt-master |
server2 | 172.25.1.2 | 客户端 salt-minion |
server3 | 172.25.1.3 | 客户端 salt-minion |
实验
步骤一:在数据文件默认存放路径下编辑nginx安装编译文件
nginx-install:
pkg.installed: #安装包
- pkgs:
- gcc
- pcre-devel
- openssl-devel
file.managed: #文件复制
- name: /mnt/nginx-1.16.1.tar.gz #目标主机存放位置
- source: salt://nginx/files/nginx-1.16.1.tar.gz #来源
cmd.run: #运行模块
- name: cd /mnt/ && tar zxf nginx-1.16.1.tar.gz && cd nginx-1.16.1 && sed -i.bak 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && ./configure --prefix=/usr/local/nginx --with-http_ssl_module &> /dev/null && make install &> /dev/null #任务:进入指定路径、解压压缩包、修改gcc文件配置,轻量级安装、编译、安装
- creates: /usr/local/nginx #判断
步骤二:编写服务文件service.sls,调用安装文件,配置并运行服务
include:
- nginx.install #包含安装文件
/usr/local/nginx/conf/nginx.conf:
file.managed:
- source: salt://nginx/files/nginx.conf
nginx-service:
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
步骤三:在server3主机上运行install.sls文件安装nginx
生成配置文件/usr/local/nginx/conf/nginx.conf,供server1使用。
salt server3 state.sls install
步骤四:创建files文件,将服务需要用到的配置文件拷贝进来,并编辑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
步骤五:运行service.sls文件
salt server2 state.sls nginx.service
步骤六:测试
在server2上查看进程: