08 saltstack生产实例-apahce+php+redis
1、apache+php
前几章的LAMP:https://www.cnblogs.com/venicid/p/11276232.html#_label2
Php放在apache
1、目录结构


2、php安装.sls,配置file
安装
[root@linux-node1 /srv/salt/prod/modules/apache]# cat php.sls
php-install:
pkg.installed:
- pkgs:
- php
- php-pdo
- php-mysql php-config:
file.managed:
- name: /etc/php.ini
- source: salt://modules/apache/files/php.ini
- user: root
- group: root
- mode:
配置文件
[root@linux-node1 /srv/salt/prod/modules/apache]# cp /etc/php.ini files/
3、apache安装.sls,配置file
安装
[root@linux-node1 /srv/salt/prod/modules/apache]# cat init.sls
include:
- modules.apache.php apache-install:
pkg.installed:
- name: httpd apache-config:
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://modules/apache/files/httpd.conf
- user: root
- group: root
- mode:
- template: jinja
- defaults:
IPADDR: {{ grains['fqdn_ip4'][] }}
PORT:
- watch_in:
- service: apache-service apache-service:
service.running:
- name: httpd
- enable: True
- reload: True
配置文件
[root@linux-node1 files]# cp /etc/httpd/conf/httpd.conf .
[root@linux-node1 /srv/salt/prod/modules/apache]# vim files/httpd.conf


4、test
[root@# localhost ~]# salt 'linux-node1*' state.sls modules.apache.init saltenv=prod
[root@# localhost ~]# salt 'linux-node2*' state.sls modules.apache.init saltenv=prod

5、问题
问题描述:grains获取minion的ip地址时,获取失败。

解决:
saltstack master端grains.item fqdn_ip4 获取不到fqdn_ip4 值原因以及解决办法
关于hostname和fqdn的区别和获取及设置
最后:
重启master、minion
2、shop-user业务分离,管理apahce php
产品线分级 shop
按业务分类:
功能模块写在modules,通用的
剩下的都是业务目录
不同的产品线对应不同的业务
1、目录结构
模块和业务目录

基本模块安装目录

业务对应的服务目录

2、php+apahce的基础安装配置

php基础安装.sls
[root@linux-node1 /srv/salt/prod/modules/apache]# cat php.sls
php-install:
pkg.installed:
- pkgs:
- php
- php-pdo
- php-mysql
apache基础安装.sls,如上
[root@linux-node1 /srv/salt/prod/modules/apache]# cat init.sls
include:
- modules.apache.php apache-install:
pkg.installed:
- name: httpd apache-config:
file.managed:
- name: /etc/httpd/conf/httpd.conf
- source: salt://modules/apache/files/httpd.conf
- user: root
- group: root
- mode:
- template: jinja
- defaults:
IPADDR: {{ grains['fqdn_ip4'][] }}
PORT:
- watch_in:
- service: apache-service apache-service:
service.running:
- name: httpd
- enable: True
- reload: True
3、配置文件,修改如上

配置文件
[root@linux-node1 /srv/salt/prod/modules/apache]# cp /etc/php.ini files/

4、shop-user业务

业务对应的php+apahce的 sls文件
[root@linux-node1 /srv/salt/prod/shop-user]# cat web.sls
include:
- modules.apache.init php-config:
file.managed:
- name: /etc/php.ini
- source: salt://shop-user/files/php.ini
- user: root
- group: root
- mode: web-config:
file.managed:
- name: /etc/httpd/conf.d/shop-user.conf
- source: salt://shop-user/files/shop-user.conf
- user: root
- group: root
- mode:
- watch_in:
- service: apache-service
File将要放在的位置

业务对应的配置文件

php.ini如上
shop-user.conf 待续................
3、php使用redis实现session 共享
https://www.cnblogs.com/youjiaxing/p/10407361.html

1、shop-user下的php.conf
用来进行session共享的


2、shop-user的apahce+php的sls
[root@linux-node1 /srv/salt/prod/shop-user]# cat web.sls
include:
- modules.apache.init php-config: # php的conf
file.managed:
- name: /etc/php.ini
- source: salt://shop-user/files/php.ini
- user: root
- group: root
- mode: php-redis-config: # session共享的
file.managed:
- name: /etc/httpd/conf.d/php.conf
- source: salt://shop-user/files/php.conf
- user: root
- group: root
- mode: web-config: # apache的conf
file.managed:
- name: /etc/httpd/conf.d/shop-user.conf
- source: salt://shop-user/files/shop-user.conf
- user: root
- group: root
- mode:
- watch_in:
- service: apache-service
3、虚拟主机shop-user.conf
[root@linux-node1 /srv/salt/prod/shop-user]# cat files/shop-user.conf
<VirtualHost *:>
ServerAdmin admin@example.com
DocumentRoot /var/www/html
ServerName demo.example.com
ErrorLog "logs/demo-error.log"
CustomLog "logs/demo-access.log" common
</VirtualHost>
4、修改apahce的8088端口
[root@linux-node1 /srv/salt/prod/modules/apache]# vim init.sls

5、启动
[root@linux-node1 /srv/salt/prod/shop-user]# salt \* state.sls shop-user.web saltenv=prod

容器,每个容器只跑一个虚拟主机
查看端口


6、配置php主页
node1,node2
[root@linux-node1 /srv/salt/prod/shop-user]# cd /var/www/html/
[root@linux-node1 /var/www/html]# cat info.php
<?php
phpinfo();
?>
访问主页

php和redis连上了


我的未连接到redis上面???
未开启redis主从模式吗?
7、添加到top.sls中


启动
[root@linux-node1 /srv/salt/base]# salt \* state.highstate

08 saltstack生产实例-apahce+php+redis的更多相关文章
- 09 saltstack生产实例--Haproxy+keepalived
1.如何理解haproxy+keepalived https://www.cnblogs.com/zs-wei/p/9213961.html HaProxy可以通过监听一个统一的端口对外提供能力,然后 ...
- 07 saltstack生产实例-mysql主从
1.服务部署 .服务部署 抽象:功能模块 redis 安装.配置.启动 mysql 安装.配置(my.cnf可以统一 目录默认配置可以统一) master: server_id slave: serv ...
- 06 saltstack生产实例-需求
https://github.com/unixhot/saltbook-code .Cobbler 1.15 统一网卡名 .Zabbix 系统已经安装好了! base .手动实现 .需要使用salt的 ...
- SaltStack生产案例-服务部署(redis,mysql,apache+php,haproxy+keepalived)
顺序代码资料链接 课上资料.zip 接上篇:SaltStack生产案例-系统初始化 1,redis 主从 2,mysql 主从 2.1 mysql-install.sls (安装 初始化) 2.2 ...
- 13.生产环境中的 redis 是怎么部署的?
作者:中华石杉 面试题 生产环境中的 redis 是怎么部署的? 面试官心理分析 看看你了解不了解你们公司的 redis 生产集群的部署架构,如果你不了解,那么确实你就很失职了,你的 redis 是主 ...
- 【WCF--初入江湖】08 并发与实例模式
08 并发与实例模式 1. 实例上下文模式 一个服务代理:servicePoxy ChannelFactory<IService1> factoryservicel = new Cha ...
- 第十四章 Odoo 12开发之部署和维护生产实例
本文中将学习将 Odoo 服务器作为生产环境的基本准备.安装和维护服务器是一个复杂的话题,应该由专业人员完成.本文中所学习的不足以保证普通用户创建应对包含敏感数据和服务的健壮.安全环境. 本文旨在介绍 ...
- 生产环境中的 redis 是怎么部署的
redis cluster,10 台机器,5 台机器部署了 redis 主实例,另外 5 台机器部署了 redis 的从实例,每个主实例挂了一个从实例,5 个节点对外提供读写服务,每个节点的读写高峰q ...
- 面试系列20 生产环境中的redis是怎么部署的
redis cluster,10台机器,5台机器部署了redis主实例,另外5台机器部署了redis的从实例,每个主实例挂了一个从实例,5个节点对外提供读写服务,每个节点的读写高峰qps可能可以达到每 ...
随机推荐
- 2019CSP-S游记
\(2019CSP-S\)游记 \(Day : -26\) 初赛退役失败,准备复赛了... \(Day:0\) 早上\(7:30\)出发坐车去杭州,车上一直在听歌和睡觉中度过(话说锦零的歌真好听).. ...
- RSA加密-解密以及解决超长内容加密失败解决
加解密(没有使用到证书):https://blog.csdn.net/qy20115549/article/details/83105736 生成证书网站:https://blog.csdn.net/ ...
- 安装consul
概述consul是google开源的一个使用go语言开发的服务发现.配置管理中心服务.内置了服务注册与发现框架.分布一致性协议实现.健康检查.Key/Value存储.多数据中心方要依赖其他工具(比如Z ...
- pg_ctl — 启动、停止、重启 PostgreSQL
pg_ctl 名称 pg_ctl -- 启动.停止.重启 PostgreSQL 语法 pg_ctl start [-w] [-s] [-D datadir] [-l filename] [-o opt ...
- 你不知道的css各类布局(三)之自适应布局
自适应布局 概念 自适应布局(Adaptive Layout)是对凡是有自适应特性的一类布局的统称 自适应布局使用media query来检测当前浏览器的宽度进而通过CSS样式调整页面大小.自适应布局 ...
- (四)创建基于maven的javaFX+springboot项目,用户界面与后台逻辑分离方式
下面来介绍创建maven的javaFX+springboot项目,基于用户界面与后天逻辑分离的方式,用户界面使用fxml文件来常见,类似于jsp,可以引入css文件修饰界面 maven依赖 <d ...
- O040、Migrate Instance 操作详解
参考https://www.cnblogs.com/CloudMan6/p/5538599.html Migrate 操作的作用是将instance 从当前的计算节点迁移到其他的计算节点上. ...
- Laravel where条件拼接,数组拼接where条件
问题描述:laravel where 条件拼接 Like出错,搜索不到要搜索的内容. 问题代码: // 作物 $crop_class_id = $request->crop_class_id; ...
- java文件上传复制等功能
package com.sitech.message.controller.task;import java.io.File;//引入类 import java.io.FileInputStream; ...
- C99 inline关键字
C99 inline 一直以来都用C++用得比较多,这个学期做操作系统的课设用回了C,结果一波內联函数居然链接不过去--查了查资料,C99引入的inline和C++的inline语义区别是很大的,我算 ...