标签:ble targe tmp emd 目录 源码编译 pcr mode 基础
[首先配置好saltstack基础环境,确保master能远程minion,这里就不列举了]因为涉及到的目录较多,因此先规划好目录结构
[root@pc1 dev]# tree /srv/dev/
/srv/dev/nginx_install
│ ├ initpkg.sls
│ ├ 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、 部署源码包运行环境
[root@pc1 dev]# vim top.sls
dev:
‘pc1’
- nginx_install 只定义目录位置 会默认去init.sls 文件找
2、创建目录,并把源码包拷贝过来
[root@pc1 dev]#mkdir nginx_install
[root@pc1 nginx_install]# mkdir files 为了方便另创一个目录
[root@pc1 nginx_install]# cp nginx-1.9.2.tar.gz files/ 拷贝源码包
3、安装依赖包
使用pkg.installed模块安装依赖包
[root@pc1 nginx_install]# vim initpkg.sls
init_pkg_install:
pkg.installed:
- name:
- gcc
- gcc-c++
- make
- autoconf
- openssl-devel
- pcre-devel
4、设定源码编译方式
首先通过file.managed模块将源码分发至服务器
[root@pc1 nginx_install]# vim install.sls
nginx_src_install:
file.managed:
- name: /usr/local/src/nginx-1.9.2.tar.gz 目标路径
- source: salt://nginx_install/files/nginx-1.9.2.tar.gz 文件源路经
- user: root 所有者
- group: root 所属主
- mode: 644 权限
为了方便可以写个小脚本执行源码安装
build_src: 指定源码安装脚本路径
cmd.scropt:
- source: salt://nginx_install/files/build.sh 指定脚本路径
- cwd: usrlocal/src
- user: root
- unless: test -d usrlocal/nginx 判断有这个文件就不执行脚本
- 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、创建开机启动的文件
[root@pc1 nginx_install]# vim nginx_init.sls
nginx_init:
file.managed:
- name: usrlib/systemd/system/nginx.service 拷贝服务单元文件
- source: salt://nginx_install/files/nginx.service 源文件路径
- user: root
- group: root
- mode: 644
nginx_service: 设定服务运行状态
sevrice.running:
- name: nginx
- enable: true
- restart: true
- watch: 判断上述执行成功才运行服务
- file: nginx_init
2、创建init.sls运行文件
[root@pc1 nginx_install]# vim init.sls
include: 按顺序执行
- .initpkg . 当前目录
- .initall
- .nginx_init
3、进行测试.
[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文件
[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
标签:ble targe tmp emd 目录 源码编译 pcr mode 基础
原文地址:http://blog.51cto.com/13560729/2065956