1. 程式人生 > >saltstack源碼安裝nginx

saltstack源碼安裝nginx

pc2 ocs rtp 拷貝 mas name multi true .gz

[首先配置好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


saltstack源碼安裝nginx