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 ...
随机推荐
- java中成员变量、代码块、构造函数运行顺序
1.java虚拟机执行程序,首先须要装载类,安装现装载父类,初始化父类的静态代码块和静态成员变量 再load子类. 初始化子类静态代码块和成员变量 2.load完成父类与子类后,从main函数入口运行 ...
- min宏的学习
1.先上实现代码: #define __min(t1, t2, min1, min2, x, y) ({ \ t1 min1 = (x); \ t2 min2 = (y); \ (void) (&am ...
- [svc]expect的爱恨情仇
背景 openvpn生成证书想把它做成一键化,这样添加新用户时候就方便 遇到的问题 我的代码 gg_vpn_keys.exp #!/usr/bin/expect set user [lindex $a ...
- 使用digitalocean搭建v·p·s
这几天digitalocean开始猛卡,一顿操作之后连不上了=_=遂复习了一下怎么搭vps 准备工作 事先准备好Putty,直接百度搜索下载即可(也可直接使用digitalocean的access c ...
- yii2 ContentDecorator 和 block 挂件
在做网站的过程中,大部分的页面结构都是相似的.如都有相同的头部和底部.各个页面这样仅仅是中间的部分不同. Yii中的布局文件就是用来实现这样的功能.如: 布局文件:@app/views/layouts ...
- js in
定义: in操作符用来判断某个属性属于某个对象,可以是对象的直接属性,也可以是通过prototype继承的属性.(参见hasOwnProperty) 注意事项: n 对于一般的对象属性 ...
- jquery ajax api
执行一个异步的HTTP(Ajax)的请求. version added: 1.5jQuery.ajax( url, [ settings ] ) url一个用来包含发送请求的URL字符串. setti ...
- select下拉选框的默认值,包括每次进入页面的默认值
下拉选: <select onchange="selectTotal(this.value)" style="width: 50px;"> ...
- inline-block元素的空白间距解决方法<转>
使用inline-block来代替float进行布局,或者使用inline-block来实现元素的居中效果.有关于使用inline-block来代替float的讨论也蛮多的. 不过就是使用inline ...
- Spring Boot 属性配置&自定义属性配置
在使用spring boot过程中,可以发现项目中只需要极少的配置就能完成相应的功能,这归功于spring boot中的模块化配置,在pom.xml中依赖的每个Starter都有默认配置,而这些默认配 ...