本实验是在上一个实验《SaltStack(1)—— SaltStack简介以及服务的部署》基础上进行的,已经配置好master及minion的环境,创建好默认数据配置目录。
上一篇博客的地址 :https://blog.csdn.net/dghfttgv/article/details/104871109
目录:
一、SaltStack下nginx自动安装部署
步骤一:
- 1、创建实验目录
- 2、提前下好nginx的安装包、把nginx安装包放到指定的目录下
- 3、上官网查看相应的配置信息
- 4、编写编译文件
步骤二、创建启动启动脚本文件
- 1、到官网上查找相关的配置模块
- 2、创建服务模板文件
步骤三:
- 1、编译 init.sls文件
步骤四:测试
- 1、查看实验相关的进程
- 2、在浏览器上查看nginx部署是否成功
一、SaltStack下nginx自动安装部署
实验环境:
主机名 | ip | 服务 |
---|---|---|
server1 | 172.25.6.1 | 服务端 salt-master |
server2 | 172.25.6.2 | 客户端 salt-minion |
server3 | 172.25.6.3 | 客户端 salt-minion |
实验:
步骤一:
创建实验目录、将安装包放到新创建的目录下
具体的过程:提前下好nginx的安装包、把nginx安装包放到指定的目录下
1、创建实验目录
[root@server1 ~]# cd /srv/salt/ ##进入到salt默认的编译目录下
[root@server1 salt]#
[root@server1 salt]# mkdir nginx ##创建子目录
[root@server1 salt]#
[root@server1 salt]# cd nginx/
2、提前下好nginx的安装包、把nginx安装包放到指定的目录下
3、上官网查看相应的配置信息
官网链接: http://docs.saltstack.cn/ref/index.html
4、编写编译文件
文件模块的执行步骤:
安装编译软件包——>解压nginx安装包——>编译——>创建启动脚本——>开启nginx服务
(每个模块编译完成后都要进行编译)
[root@server1 nginx]# vim init.sls ##编译文件
install-nginx: ##安装nginx编译所需要的软件
pkg.installed:
- pkgs:
- gcc
- make
- openssl-devel
- pcre-devel
archive.extracted: ##解压模块语句
- name: /mnt ##解压之后的安装包存放的位置
- source: salt://nginx/nginx-1.16.0.tar.gz ##解压安装包所在的位置以及名称
- archive_format: tar ##解压包的类型
cmd.run: ##编译
- name: cd /mnt//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 &> /dev/null && make install &> /dev/null ##将/mnt//nginx-1.16.0/auto/cc/gcc文件中的 CFLAGS="$CFLAGS -g 注解掉、编译的过程内容全部放进垃圾箱
- creates: /usr/local/nginx ##创建nginx服务启动脚本目录
file.managed:
- name: /lib/systemd/system/nginx.service ##将模板放到此路径下
- source: salt://nginx/nginx.service ##服务启动脚本模板所在的位置
service.running: ##开启nginx服务
- name: nginx
[root@server3 nginx-1.16.0]# ./configure --help ##查看编译的语法
步骤二、创建启动启动脚本文件
编辑服务模板
1.1、到官网上查找相关的配置模块
官网模板链接:https://www.nginx.com/resources/wiki/start/topics/examples/systemd/
1.2、创建服务模板文件
将官网上复制的各个模块的把那一路径全都放在 /usr/local/nginx/目录下(nginx默认的安装路径在 /usr/local/nginx/目录下)
[root@server1 ~]# vim /srv/salt/nginx/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 ##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
步骤三:
1、编译 init.sls文件
[root@server1 nginx]# salt server3 state.sls nginx
编译的时候出现报错的情况
解决方法:查看报错信息、发现阿里上的yum源出现报错(显示无法访问)
查看虚拟机的是否可以上网结果发现上网失败(因为用的是网络源虚拟机无法上网就无法连接到阿里运上的软件包资源)
解决:
在真机上:开启虚拟机上网功能
[root@foundation6 ~]# iptables -t nat -I POSTROUTING -s 172.25.6.0/24 -j MASQUERADE
2、再此编译 init.sls 文件
(编译成功!!!)
步骤四:
测试:
1、在server3查看相关模块的运行进程
[root@server3 yum.repos.d]# ps ax
2、在浏览器上输入:http://172.25.6.3/
能访问到nginx页面说明nginx的安装部署已经成功!!!