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可能可以达到每 ...
随机推荐
- 关于Oracle MAX()KEEP(DENSE_RANK LAST/FIRST ORDER BY ) 函数的使用分析
MAX()/MIN() KEEP(DENSE_RANK LAST/FIRST) 函数 解释: 1. max() 获取最大值: 2.min() 获取最小值; 3. keep 保持满足括号内条件的内容; ...
- 小记--------spark的worker原理分析及源码分析
- MFC使用ado连接SQLserver
https://blog.csdn.net/GK_2014/article/details/50530103
- RESTful、共用接口、前后端分离、接口约定的实践 (转)
出处: 某小公司RESTful.共用接口.前后端分离.接口约定的实践 前言 随着互联网高速发展,公司对项目开发周期不断缩短,我们面对各种需求,使用原有对接方式,各端已经很难快速应对各种需求,更难以提 ...
- redis 学习(19)-- RDB与AOF的抉择
RDB与AOF的抉择 1.RDB VS AOF RDB AOF 启动优先级 低 高 体积 小 大 恢复速度 快 慢 数据安全性 容易丢数据 根据策略决定 轻重 重 轻 2.RDB的最佳策略 关闭RDB ...
- tracert命令详解_tracert结果详解_tracert命令使用详解
17:06:40 正在等待客服售后工程师令狐冲接入,您可以先简单描述所要咨询的问题,如果长时间没有响应,您也可以 重新选择客服 . 17:06:42 您好,客服售后工程师令狐冲为您服务.售后工程师令狐 ...
- C# 定义热键
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- AutoCAD2013 以上利用AccoreConsole+ c# NetApi Windows Froms 封装
1# 封装类 public static class CmdHelper { /// <summary> /// 调用AutoCAD 安装目录下的AccoreConsole.exe来实现批 ...
- Navicat连接CentOS7中的MariaDB
Step 1:首先登录数据库设置开启远程连接 mysql -u root -p Step 2:使用改表法实现远程连接 use mysql; update user set host = '%' whe ...
- NetScaler循环抓包设置
NetScaler循环抓包设置 来源 https://raynorli.com/2018/07/01/netscaler-nstrace-cycling-capture/ 参考文档 How to Re ...