SaltStack之编译安装LNMP环境
使用saltstack编译安装LNMP环境
一,系统版本查看

二,安装salt-master和salt-minion
安装配置过程参考SaltStack概述及安装
三,修改配置文件
/etc/salt/master设置根的两个目录

四,设置Nginx安装文档
目录结构为

其中files文件夹下面放置的是源码包 install.sls是安装配置文件
install.sls
include:
- pkg.make nginx:
user.present:
- uid: 1001 nginx-install:
file.managed:
- name: /root/tools/nginx-1.6.3.tar.gz
- source: salt://nginx/files/nginx-1.6.3.tar.gz
- mode: 755
- user: root
- group: root
cmd.run:
- name: cd /root/tools/ && tar -xf nginx-1.6.3.tar.gz && cd nginx-1.6.3 && ./configure --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx --prefix=/usr/local/nginx-1.6.3 && make && make install && ln -s /usr/local/nginx-1.6.3/ /usr/local/nginx
- require:
- pkg: make-pkg
- file: nginx-install
其中user.present为用户模块,创建一个uid为1001的nginx用户 cmd.run执行安装命令 pkg文件夹下面的make.sls放置本次安装所需要的所有yum包 require依赖这两个
make.sls文件内容为
make-pkg:
pkg.installed:
- pkgs:
- gcc
- pcre
- pcre-devel
- openssl-devel
- numactl
- libaio
- net-tools
- freetype-devel
- libjpeg-turbo-devel
- libpng-devel
- gd-devel
- libcurl-devel
- libxslt-devel
执行安装
salt 'web1.example.com' state.sls nginx.install saltenv=prod
默认没有加saltenv参数执行的是base环境下的配置,本次需要执行prod生产配置所以执行加参数saltenv=prod
五,设置MySQL安装文档

MySQL的install.sls文档内容为
include:
- pkg.make mysql-install:
file.managed:
- name: /root/tools/mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar
- source: salt://mysql/files/mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar
- mode: 755
- user: root
- group: root
cmd.run:
- name: cd /root/tools/ && yum remove mysql-libs -y && tar -xf mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar && rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm && rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm && rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm && rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm
- require:
- pkg: make-pkg
- file: mysql-install
执行安装
salt 'web1.example.com' state.sls mysql.install saltenv=prod
六,设置php安装文档

install.sls
include:
- pkg.make php-install:
file.managed:
- name: /root/tools/php-7.0.27.tar.gz
- source: salt://php/files/php-7.0.27.tar.gz
- mode: 755
- user: root
- group: root
cmd.run:
- name: cd /root/tools/ && tar -xf php-7.0.27.tar.gz && cd php-7.0.27 && ./configure --prefix=/usr/local/php7.0.27 --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr/ --enable-xml --disable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-short-tags --enable-zend-multibyte --enable-static --with-xsl --with-fpm-user=nginx --with-fpm-group=nginx --enable-ftp --enable-xml && make && make test && make install && ln -s /usr/local/php7.0.27/ /usr/local/php && /usr/local/php/sbin/php-fpm
- unless: test -L /usr/local/php
- require:
- pkg: make-pkg
- file: php-install
- file: php-config
- file: php-fpm-config
- file: php-www-config php-mysql-install:
file.managed:
- name: /root/tools/mysql-45881bd.tar.gz
- source: salt://php/files/mysql-45881bd.tar.gz
- mode: 755
- user: root
- group: root
cmd.run:
- name: cd /root/tools/ && tar -xf mysql-45881bd.tar.gz && cd mysql-45881bd && /usr/local/php/bin/phpize && ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql=mysqlnd && make && make install && pkill php-fpm && /usr/local/php/sbin/php-fpm
- require:
- pkg: make-pkg
- file: php-mysql-install
- file: php-config
- file: php-fpm-config
- file: php-www-config php-config:
file.managed:
- name: /usr/local/php/lib/php.ini
- source: salt://php/files/php.ini
- user: root
- group: root
- mode: 644 php-fpm-config:
file.managed:
- name: /usr/local/php/etc/php-fpm.conf
- source: salt://php/files/php-fpm.conf
- user: root
- group: root
- mode: 644 php-www-config:
file.managed:
- name: /usr/local/php/etc/php-fpm.d/www.conf
- source: salt://php/files/www.conf
- user: root
- group: root
- mode: 644 php-mysql-test:
file.managed:
- name: /usr/local/nginx/html/mysql.php
- source: salt://php/files/mysql.php
- user: root
- group: root
- mode: 644 php-test:
file.managed:
- name: /usr/local/nginx/html/test.php
- source: salt://php/files/test.php
- user: root
- group: root
- mode: 644
其中test.php的内容为
<?php
phpinfo()
?
mysql.php的内容为
<?php
$mysqli = new mysqli("localhost", "root", "Mysql123456!");
if(!$mysqli) {
echo"database error";
}else{
echo"MySQL successful";
}
$mysqli->close();
?>
php-fpm.conf配置文档的源文件为/usr/local/php/etc/php-fpm.conf.default
www.conf配置文档的源文件为/usr/local/php/etc/php-fpm.d/www.conf.default
php.ini配置文件的源文件为/root/tools/php-7.0.27/php.ini-production
安装的源码包可以下载到本地电脑上再上传至对应的目录
执行安装(源码安装php时间较长)
salt 'web1.example.com' state.sls php.install saltenv=prod
测试


SaltStack之编译安装LNMP环境的更多相关文章
- CentOS编译安装LNMP环境
这里是教大家如何在centos下利用源码编译安装LNMP环境. 工具/原料 centos服务器一台 自用电脑一台 准备篇 配置好IP.DNS .网关,确保使用远程连接工具能够连接服务器 配置防火墙,开 ...
- Centos 6.8编译安装LNMP环境
Centos 6.8编译安装LNMP环境 参考资料: http://www.jb51.net/article/107429.htm https://phperzh.com/articles/1360 ...
- 源码编译安装lnmp环境(nginx-1.14.2 + mysql-5.6.43 + php-5.6.30 )------踩了无数坑,重装了十几次服务器才会的,不容易啊!
和LAMP不同的是,LNMP中的N指的是Nginx(类似于Apache的一种web服务软件),并且php是作为一个独立服务存在的,这个服务叫做php-fpm,Nginx直接处理静态请求,动态请求会转发 ...
- CentOS 6.5 编译安装 LNMP环境
建立一个软件包目录存放 mkdir -p /usr/local/src/ 清理已经安装包 rpm -e httpd rpm -e mysql rpm -e php yum -y remove http ...
- 源码编译安装lnmp环境
一.源码编译安装步骤 首先说明源码安装的好处 速度快,可自定义路径 主要有三步:1.配置 进入源码安装包 ./configure --prefix=/uer/local/nginx 可指定参数 ...
- centos6源码编译安装lnmp环境
操作系统 版本 64位 CentOS-6.6 10.0.0.20 安装环境所需依赖包 yum -y install gcc automake autoconf libtool make gcc- ...
- CentOS 6.4 linux下编译安装 LNMP环境
1.nginx编译安装 2.PHP编译安装 3.mysql编译安装 4.NGINX配置模板 5.CentOS 6.4 php-fpm 添加service 添加平滑启动/重启
- 源码编译安装LNMP环境及配置基于域名访问的多虚拟主机
实验环境及软件版本: CentOS版本: 6.6(2.6.32.-504.el6.x86_64) nginx版本: nginx-1.6.2 mysql版本: Mysql-5.6.23 php版本: ...
- CentOS6.5 编译安装lnmp环境
参考:http://54im.com/tag/libmcrypt http://www.educity.cn/linux/1240338.html 设置防火墙,并开启3306 80端口:vi /etc ...
随机推荐
- [Jobdu] 题目1377:缓变序列
题目描述: 陈博在写论文时碰到一个难题:如何将给定的整数序列变换成缓变序列:即任意两个相邻的元素相差均为1,第1个元素和最后一个元素相差也为1. 变换是指改变原整数序列中各元素的顺序.例如整数序列1, ...
- Atitit.软件gui按钮and面板---通讯子系统(区)-- github 的使用....
Atitit.软件gui按钮and面板---通讯子系统(区)-- github 的使用.... 1. 1.注册账户以及创建仓库 1 2. 二.在GitHub中创建项目(create a new rep ...
- atitit.MyEclipse10 中增加svn插件故障排除
atitit.MyEclipse10 中增加svn插件故障排除 删除\configuration \org.eclipse.update 不行... 二. 在configuration下的config ...
- jquery 情况form表单的所有内容
#project_file_upload 为表单的id $(':input','#project_file_upload') .not(':button, :submit, :reset, :hidd ...
- am335x gpio 控制的另一种方法
#include <linux/gpio.h> #include <linux/module.h> #include <linux/kernel.h> #in ...
- PHP高并发的解决方案
这几天面试,被问到这样一个问题:如何解决大流量的高并发问题.起初不知所措,在查阅相关资料,以及网上大牛们的解答之后,总结出以下几点: 1.服务器,如果同时访问量超过10W的话,需要采用专用服务器来承载 ...
- CI $_GET
CI默认过滤了$_GET 需要传递get参数时一般直接 /参数一/参数二 详见手册说明:http://codeigniter.org.cn/user_guide/general/controllers ...
- AWT是Java最早出现的图形界面,但很快就被Swing所取代
AWT是Java最早出现的图形界面,但很快就被Swing所取代. Swing才是一种真正的图形开发. AWT在不同平台所出现的界面可能有所不同:因为每个OS都有自己的UI组件库,java调用不同系统的 ...
- Hibernate Annotations 注解
Hibernate Annotations 注解 对于org.hibernate.annotations与org.hibernate.persistence,它的注释比如Columns,可是不知道怎么 ...
- Java设计模式菜鸟系列(十)模板方法模式建模与实现
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39806973 模板方法模式(Template Method):在一个方法中定义了一个算法的 ...