pc2 ocs rtp 拷贝 mas name multi true .gz
[首先配置好 saltstack 基础环境,确保 master 能远程 minion,这里就不列举了]
因为涉及到的目录较多,因此先规划好目录结构
│ ├ initpkg.sls
[root@pc1 dev]# tree /srv/dev/
/srv/dev/nginx_install
│ ├ initall .sls
│ ├ nginx_init.sls
│ ├ files
│ └── nginx-1.9.2.tar.gz
│ └── nginx.service
│
└── top.sls
一,修改配置文件,为不同的环境配置不同的文件目录 [root@pc1 /]#vim /etc/salt/master
二,指定环境路径
file_roots:
base:
- /srv/base
dev:
- /srv/dev
prod:
- /srv/prod
[root@pc1 salt]# systemctl restart salt-master.service 重启服务
[root@pc1 salt]# mkdir /srv/{base,dev,prod} 创建目录
1, 部署源码包运行环境
- nginx_install 只定义目录位置 会默认去 init.sls 文件找
[root@pc1 dev]# vim top.sls
dev:
'pc1'
2,创建目录, 并把源码包拷贝过来
3,安装依赖包
[root@pc1 dev]#mkdir nginx_install
[root@pc1 nginx_install]# mkdir files 为了方便另创一个目录
[root@pc1 nginx_install]# cp nginx-1.9.2.tar.gz files/ 拷贝源码包
使用 pkg.installed 模块安装依赖包
4,设定源码编译方式
[root@pc1 nginx_install]# vim initpkg.sls
init_pkg_install:
pkg.installed:
- name:
- gcc
- gcc-c++
- make
- autoconf
- openssl-devel
- pcre-devel
首先通过 file.managed 模块将源码分发至服务器
- name: /usr/local/src/nginx-1.9.2.tar.gz 目标路径
[root@pc1 nginx_install]# vim install.sls
nginx_src_install:
file.managed:
- source: salt://nginx_install/files/nginx-1.9.2.tar.gz 文件源路经
- user: root 所有者
- group: root 所属主
- mode: 644 权限
为了方便可以写个小脚本执行源码安装
build_src: 指定源码安装脚本路径
- unless: test -d usrlocal/nginx 判断有这个文件就不执行脚本
cmd.scropt:
- source: salt://nginx_install/files/build.sh 指定脚本路径
- cwd: usrlocal/src
- user: root
- repuire:
- file: nginx_src_install 上面执行完才会执行脚本
- pkg: init_pkg_install 判断是否已经安装依赖包
5,创建脚本并存放在指定路径
三,配置开机启动服务
[root@pc1 nginx_install]# vim files/build.sh
#!/bin/bash
useradd -s /sbin/nologin nginx
tar zxf nginx-1.9.12.tar.gz
cd nginx-1.9.12
./configure -prefix=usrlocal/nginx -user=nginx -group=nginx
make
make install
1,创建开机启动的文件
- name: usrlib/systemd/system/nginx.service 拷贝服务单元文件
[root@pc1 nginx_install]# vim nginx_init.sls
nginx_init:
file.managed:
nginx_service: 设定服务运行状态
- source: salt://nginx_install/files/nginx.service 源文件路径
- user: root
- group: root
- mode: 644
- watch: 判断上述执行成功才运行服务
sevrice.running:
- name: nginx
- enable: true
- restart: true
- file: nginx_init
2,创建 init.sls 运行文件
[root@pc1 nginx_install]# vim init.sls
include: 按顺序执行
- .initpkg . 当前目录
3,进行测试.
- .initall
- .nginx_init
[root@pc1 nginx_install]# salt 'pc2' state.highstate saltenv=dev test=true
如果没有报错就执行 False
[root@pc1 nginx_install]# salt 'pc2' state.highstate saltenv=dev test=false
4,进入 pc2 上查看端口是否开启
nginx.service 文件
saltstack 源码安装 nginx
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=usrlocal/nginx/logs/nginx.pid
ExecStartPre=usrlocal/nginxsbinnginx -t -c usrlocal/nginx/conf/nginx.conf
ExecStart=usrlocal/nginxsbinnginx -c usrlocal/nginx/conf/nginx.conf
ExecReload=usrlocal/nginxsbinnginx -s reload
ExecStop=usrlocal/nginxsbinnginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
来源: http://www.bubuko.com/infodetail-2478113.html