saltstack 自动化部署PHP应用平台


1.saltstack 介绍;

 

Salt,,一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。

salt底层采用动态的连接总线, 使其可以用于编配, 远程执行, 配置管理等等.


2.参考学习网站;

    

  官方网站: http://www.saltstack.com

  官方文档: http://docs.saltstack.com

  Githup : https://githup.com/saltstack

  中国saltstack用户组: http://www.saltstack.cn


3.运行方式;

   LOCAL 

   Master/minion

   Salt ssh


4.功能介绍;     

  

    远程执行,配置管理,云管理;


5.支持操作系统版本;

 Centos redhat centoo debianubuntu freeBSD

 Solaris fedora macos archlinux windows suse 

 注意:windows 只能作为minion 端,不能作为master;


6.saltstack 部署;

   

To install using the SaltStack repository:

  1. Run one of     the following commands based on your version to import the SaltStack     repository key:

Version 7:

rpm --importhttps://repo.saltstack.com/yum/redhat/7/x86_64/latest/SALTSTACK-GPG-KEY.pub

Version 6:

rpm --importhttps://repo.saltstack.com/yum/redhat/6/x86_64/latest/SALTSTACK-GPG-KEY.pub

Version 5:

wget https://repo.saltstack.com/yum/redhat/5/x86_64/latest/SALTSTACK-EL5-GPG-KEY.pub

rpm --import SALTSTACK-EL5-GPG-KEY.pub

rm -f SALTSTACK-EL5-GPG-KEY.pub

  1. Save the     following file to /etc/yum.repos.d/saltstack.repo:

Version 7 and 6:

[saltstack-repo]

name=SaltStack repo for RHEL/CentOS $releasever

baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest

enabled=1

gpgcheck=1

gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub

Version 5:

[saltstack-repo]

name=SaltStack repo for RHEL/CentOS $releasever

baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest

enabled=1

gpgcheck=1

gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-EL5-GPG-KEY.pub

  1. Run sudo yum     clean expire-cache.

  2. Run sudo yum     update.

  3. Install the     salt-minion, salt-master, or other Salt components:

  • yum install      salt-master

  • yum install      salt-minion

  • yum install      salt-ssh

  • yum install      salt-syndic

              yum install salt-cloud

7.配置salstack;

  wKiom1ij8YWBJ_2GAAHETZvKLLQ240.png-wh_50

wKiom1ij8cigt4gXAACPZlLA61c773.png-wh_50

8.master 配置项目路径:

wKioL1ij8n2xV0nWAACAlI72oJ4782.png-wh_50

9.项目目录结构;

tree       /etc/salt/states/

├── app-user                             ########项目环境需要用户名################
│   └── app-mysql-user.sls        ######## 配置mysql用户名 sls 文件###########
├── p_w_picpaths-app                         #########图片社区环境目录################     
│   ├── dfsj-p_w_picpath.sls                ##########图片社区核心配置文件############
│   └── files                                #######环境代码和配置文件################  
│       ├── dfsj-p_w_picpaths.sql.gz        ##########项目数据库文件##############
│       ├── p_w_picpath_admin_project.py   
│       ├── p_w_picpath_api_project.py
│       ├── img4admin.tar.gz          ###########软件源码包#########################
│       └── img4api.tar.gz
├── init                                 #########依赖包环境主目录###################  
│   ├── files                         │                 
│   │   ├── packages
│   │   │   ├── libevent-2.0.21-stable.tar.gz          ######依赖包###########
│   │   │   └── zend-loader-php5.6-linux-x86_64.tar.gz
│   ├── limit.sls          
│   ├── memecached_packages.sls     ########php memcached 依赖包扩展配置文件####
│   ├── mysql_packege.sls           ############mysql 数据库依赖配置文件###############
│   ├── nginx_packege.sls           ###########nginx 配置环境依赖包###################
│   ├── pkg.sls                            #######php 依赖环境包###########################   
├── memcached-php                ###################memcache 扩展php #########
│   ├── files               
│   │   ├── libmemcached.tar.gz
│   │   └── memcached.tar.gz              #########环境包#######################
│   └── php-memecached-mode.sls     ############模块添加php 扩展配置文件####
├── mysql
│   ├── db_install_bak.sls          ############mysql 核心配置文件#############
│   └── files                      
│       ├── my_new.cnf             ############mysql 主配置文件################
│       ├── mysql-5.6.27.tar.gz     ########################
│       ├── mysqld                                                软件包
│       ├── mysql.tar.gz
│       └── mysq.usermangaer.txt   #######################
├── nginx
│   ├── files
│   │   ├── p_w_picpath.api.conf             ########程序api 程序配置文件############
│   │   ├── p_w_picpath.community.conf  #############程序后台配置文件########
│   │   ├── nginx.conf                   #########nginx 核心文件################
│   │   └── test-app.php             ###############php 环境测试页面#########
│   └── web_install.sls                ############nginx 编排核心文件###########
├── php
│   ├── files
│   │   ├── php-5.6.28.tar.bz2    ##################php 软件包####################
│   │   └── php-fpm                  ###################php-fpm 配置文件############
│   └── php_fastcgi.sls
├── prod                     
├── system-optimization         ################环境初始化目录#############
│   └── system_sysctl.sls           ###############修改内核参数###############
├── top.sls                                ################项目入口文件##############
└── zend-php                           ################zend 模块扩展#############
├── files
│   └── zend-loader-php.tar.gz   #############zend-loader 包###########
└── php-zend-mode.sls               ################zend模块配置文件######



10.项目相关sls文件;


(1).程序入口sls 文件;

wKiom1ij9i6xT4TLAABBorJON_Q091.png-wh_50


(2).添加mysql 用户sls 文件;

wKiom1ij9ZeCFShpAABMwfXJloU947.png-wh_50

(3).环境内核调整sls文件;

wKiom1ij9weASm2dAABs2IlZKEU803.png-wh_50

wKioL1ij9weSPbNOAABxc6XlBuQ373.png-wh_50

wKiom1ij9wfzmAU9AABrjPsCZAA602.png-wh_50

wKiom1ij9wjSUEdsAABYxRevii0519.png-wh_50

(4).nginx 相关配置文件;

依赖包sls文件;

wKioL1ij-AuS7htfAAA27FB1XhQ377.png-wh_50

核心配置sls

wKioL1ij96yScyV8AACgi7F38QY779.png-wh_50

wKiom1ij963Sx3LrAABsw3HIVx0121.png-wh_50


(5).mysql 相关配置文件;

依赖软件包;

wKioL1ij-eLhoIvnAAB-jtPZRis348.png-wh_50

核心配置文件

wKioL1ij-LPxU1eqAACiAC8cIo4319.png-wh_50

wKioL1ij-YryGJwlAACLJuESuBs912.png-wh_50



(6)php 配置文件sls;

依赖包;

wKiom1ij_OSQ0iKeAAB57wZXB3U808.png-wh_50

核心配置文件;

wKioL1ij_SGgN528AADzlm5e7lI531.png-wh_50

7.添加zend php 加速模块;

wKiom1ij_X-CINOEAAB5B7hpnkY051.png-wh_50


8.memcached 扩展sls文件;

依赖文件:

wKiom1ij_hjgGGo9AAAor6IE31o727.png-wh_50

核心配置sls 文件;

wKioL1ij_eShLK2sAAEcRngCwMQ194.png-wh_50


9.程序后台/api 配置sls文件:


wKioL1ij_yuAT2NIAACdzzuPMMo648.png-wh_50

wKioL1ij_sPDjS56AAC0hK33Zhs767.png-wh_50

wKiom1ij_4XCH8lFAAC4m9V86uk306.png-wh_50


10.项目部署成功路径;


(1).项目代码路径:/var/www/img4admin  以及 /var/www/img4api     


(2).mysql程序:

             后台程序日志:/var/log/nginx/img4admin.log  
             接口程序日志;/var/log/nginx/img4api.log
             mysql 主日志:/var/log/mysqld.log
             mysql 慢查询日志:/usr/local/mysql/slow.log
             安装目录:/usr/local/mysql
             数据目录: /usr/local/mysql/data
             配置文件:/etc/my.cnf
             启动脚本:/etc/init.d/mysqld


(3).nginx 程序:

             主程序目录:/etc/nginx/conf.d
             启动脚本:/etc/init.d/nginx
             
(4).php 程序目录;
            安装目录:/usr/local/php
            php-fpm 配置文件目录:/usr/local/php/etc/php-fpm
            php 核心配置文件: /usr/local/php/etc/php.ini
            启动脚本:/etc/init.d/php-fpm