1)創建目錄
[admin@master prod]$ sudo mkdir -p /srv/salt/prod/php
[admin@master prod]$ sudo mkdir -p /srv/salt/prod/php/files
2)下載軟件及拷貝啟動腳本和配置文件
[admin@master files]$ sudo wget http://cn2.php.net/distributions/php-7.1.14.tar.gz
然后找一臺機器安裝一下,如如下幾個文件拷貝到files目錄下
配置文件2個
#/usr/local/php-7.1.14/etc
-rw-r--r-- 1 root root 4495 Jan 25 18:55 php-fpm.conf.default
-rw-r--r-- 1 root root 18538 Jan 25 18:55 www.conf.default
#啟動腳本
#/usr/local/src/php-7.1.14/sapi/fpm
-rw-rw-r--. 1 root root 2390 Jan 31 03:05 init.d.php-fpm.in
php.ini文件
#/usr/local/src/php-7.1.14/
-rw-rw-r--. 1 root root 71096 Jan 31 03:05 php.ini-product
最后在該目錄下的文件如下
[admin@master files]$ ll
total 19076
-rw-r--r--. 1 root root 2568 Jan 30 16:19 init.d.php-fpm.in
-rw-r--r--. 1 root root 19426882 Feb 1 2018 php-7.1.14.tar.gz
-rw-r--r--. 1 root root 4495 Jan 30 16:13 php-fpm.conf.default
-rw-r--r--. 1 root root 71096 Jan 30 16:44 php.ini-production
-rw-r--r--. 1 root root 18536 Jan 30 16:26 www.conf.default
接下我們需要修改一下
第一步: 修改啟動腳本
#prefix=@prefix@
prefix=/usr/local/php-7.1.14
#exec_prefix=@exec_prefix@
exec_prefix=${prefix}
#php_fpm_BIN=@sbindir@/php-fpm
php_fpm_BIN=${exec_prefix}/sbin/php-fpm
#php_fpm_CONF=@sysconfdir@/php-fpm.conf
php_fpm_CONF=${prefix}/etc/php-fpm.conf
#php_fpm_PID=@localstatedir@/run/php-fpm.pid
php_fpm_PID=${prefix}/var/run/php-fpm.pid
第二步: 修改www.conf.default配置文件
;user = nobody
;group = nobody
user = web
group = web
listen = 127.0.0.1:9000
根據實際情況調整一下一下幾個參數,以下是參考
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30
pm.max_requests = 50000
二)編寫安裝php的sls文件
~~~
[admin@master php]$ cat install.sls
include:
- pkg.pkg-init
- user.web
- zlib.install
pkg-php:
pkg.installed:
- names:
- mysql-devel
- openssl-devel
- swig
- libjpeg-turbo
- libjpeg-turbo-devel
- libpng
- libpng-devel
- freetype
- freetype-devel
- libxml2
- libxml2-devel
- libcurl
- libcurl-devel
php-source-install:
file.managed:
- name: /usr/local/src/php-7.1.14.tar.gz
- source: salt://php/files/php-7.1.14.tar.gz
- user: root
- group: root
- mode: 755
cmd.run:
- name: cd /usr/local/src && sudo tar xf php-7.1.14.tar.gz && cd php-7.1.14 && sudo ./configure --prefix=/usr/local/php-7.1.14 --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-jpeg-dir --with-png-dir --with-zlib=/usr/local/src/zlib-1.1.12 --enable-xml --with-libxml-dir --with-curl --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --with-openssl --enable-mbstring --with-gd --enable-gd-native-ttf --with-freetype-dir=/usr/lib64 --with-gettext=/usr/lib64 --enable-sockets --with-xmlrpc --enable-zip --enable-soap --disable-debug --enable-opcache --enable-zip --with-config-file-path=/usr/local/php-7.1.14/etc --enable-fpm --with-fpm-user=web --with-fpm-group=web && sudo make && sudo make install
- unless: test -d /usr/local/php-7.1.14
- require:
- file: php-source-install
- pkg: pkg-php
- user: web-user-group
php-ini:
file.managed:
- name: /usr/local/php-7.1.14/etc/php.ini
- source: salt://php/files/php.ini-production
- user: root
- group: root
- mode: 644
php-fpm:
file.managed:
- name: /usr/local/php-7.1.14/etc/php-fpm.conf
- source: salt://php/files/php-fpm.conf.default
- user: root
- group: root
- mode: 644
www-conf:
file.managed:
- name: /usr/local/php-7.1.14/etc/php-fpm.d/www.conf
- source: salt://php/files/www.conf.default
- user: root
- group: root
- mode: 644
php-service:
file.managed:
- name: /etc/init.d/php-fpm
- source: salt://php/files/init.d.php-fpm.in
- user: root
- group: root
- mode: 755
cmd.run:
- name: chkconfig --add php-fpm
- unless: chkconfig --list|grep php-fpm
- require:
- file: php-service
service.running:
- name: php-fpm
- enable: True
- reload: True
- require:
- cmd: php-service
- watch:
- file: php-ini
- file: php-fpm
- file: www-conf
~~~
接下就測試
[admin@master php]$ sudo salt 'proxy01*' state.sls php.install env=prod test=true
Summary
-------------
Succeeded: 36 (unchanged=12, changed=5)
Failed: 0
-------------
Total states run: 36
沒有問題就安裝
[admin@master php]$ sudo salt 'proxy01*' state.sls php.install env=prod
- 第一章:saltstack的基本介紹
- 第二章:saltstack的安裝部署
- 第一節:在centos7系統上安裝saltstack工具
- 第二節:在windows server 2008上安裝salt-minion
- 第三章: saltstack的配置管理
- 第一節:salt-master配置
- 第二節:salt-minion配置
- 第三節:了解YAML
- 第四節:salt-master配置文件詳解
- 第五節:了解Jinja2
- 第六節:配置普通用戶可以運行saltstack的模塊
- 第四章:遠程執行
- 第一節:遠程執行基礎介紹
- 第二節:目標定位
- 一、全局及正則表達式匹配
- 二、列表匹配
- 三、Grains
- 四: Pillar
- 五:subnet and ip
- 六:組合匹配
- 七: node group
- 第三節:常用模塊
- 一、查看幫助
- 二、Network模塊
- 三、Service模塊
- 四:State模塊
- 五、Cron模塊
- 六、File模塊
- 七、iptables模塊
- 八、pkg包管理
- 第四節:Salt其他命令
- 一、salt-cp(拷貝文件)
- 二、salt-ssh
- 三、salt-key
- 第五節:saltstack返回程序
- 第一節:返回保持到數據庫(mysql)
- 第五章:配置管理
- 第一節:簡單入門
- 第二節:狀態間關系
- 第六章:數據系統
- 第一節:grains
- 第二節:pillar
- 第七章:saltstack配置管理
- 第一節:系統初始化操作
- 第二節:功能模塊
- 一、haproxy模塊
- 二、keepalived模塊
- 三、nginx模塊
- 四: pcre模塊
- 五: zlib模塊
- 六:user模塊
- 七:php模塊
- 第三節:業務模塊
- 第一節:haproxy代理
- 第二節:keepalived業務
- 第八章:自動化管理工具saltstack
- 第一節:文件管理
- 第二節:軟件管理
- 第三節:服務管理
- 第四節:sysctl模塊管理