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可能可以达到每 ...
随机推荐
- PTA(Advanced Level)1025.PAT Ranking
To evaluate the performance of our first year CS majored students, we consider their grades of three ...
- Android开发自定义View
Android中View组件的作用类似于Swing变成中的JPanel,它只是一个空白的矩形区域,View组件中没有任何内容.对于Android应用的其他UI组件来说,它们都继承了View组件,然后在 ...
- 洛谷P1603 斯诺登的密码(水题
不知道什么时候打开的,随手做掉了,没什么用...大概又熟悉了一下map吧...大概........一开始还因为没读清题没把非正规的英文表示数字存进去wa了...orz最近状态不行 题目描述 题目描述 ...
- PAT A1006 Sign In and Sign Out (25)
AC代码 #include <cstdio> #include <algorithm> #include <iostream> using namespace st ...
- Linux7_MySQL5.7_主从复制_scripts
# cat my_full_backup.sh #!/bin/bash BEGINTIME=`date +"%Y-%m-%d %H:%M:%S"` format_time=`dat ...
- Java New IO
1.NIO介绍 应用程序中,通常会涉及两种类型的计算:计算密集型和I/O密集型.对多数应用来说,花费在等待IO上的时间是比较大的.因此提高IO操作效率对应用的性能至关重要. 面向流的IO系统一次处理一 ...
- 24-Perl 数据库连接
1.Perl 数据库连接本章节我们将为大家介绍 Perl 数据库的连接.Perl 5 中我们可以使用 DBI 模块来连接数据库.DBI 英文全称:Database Independent Interf ...
- 6-Perl 标量
1.Perl 标量标量是一个简单的数据单元.标量可以是一个整数,浮点数,字符,字符串,段落或者一个完整的网页.以下实例演示了标量的简单应用:实例#!/usr/bin/perl$age = 20; # ...
- Validator自动验证与手动验证
自动: public JResult projectAdd(@Valid Project project, BindingResult result) {Map<String,Object> ...
- mybatis+oracle批量插入报不符合协议和sql未正确结束
在Java中循环save,需要加useGeneratedKeys="false",否则报错不符合协议 mybatis批量插入,也需要在insert里加入 useGeneratedK ...