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的更多相关文章

  1. 09 saltstack生产实例--Haproxy+keepalived

    1.如何理解haproxy+keepalived https://www.cnblogs.com/zs-wei/p/9213961.html HaProxy可以通过监听一个统一的端口对外提供能力,然后 ...

  2. 07 saltstack生产实例-mysql主从

    1.服务部署 .服务部署 抽象:功能模块 redis 安装.配置.启动 mysql 安装.配置(my.cnf可以统一 目录默认配置可以统一) master: server_id slave: serv ...

  3. 06 saltstack生产实例-需求

    https://github.com/unixhot/saltbook-code .Cobbler 1.15 统一网卡名 .Zabbix 系统已经安装好了! base .手动实现 .需要使用salt的 ...

  4. SaltStack生产案例-服务部署(redis,mysql,apache+php,haproxy+keepalived)

    顺序代码资料链接 课上资料.zip 接上篇:SaltStack生产案例-系统初始化 1,redis 主从 2,mysql 主从 2.1 mysql-install.sls (安装 初始化) 2.2   ...

  5. 13.生产环境中的 redis 是怎么部署的?

    作者:中华石杉 面试题 生产环境中的 redis 是怎么部署的? 面试官心理分析 看看你了解不了解你们公司的 redis 生产集群的部署架构,如果你不了解,那么确实你就很失职了,你的 redis 是主 ...

  6. 【WCF--初入江湖】08 并发与实例模式

    08 并发与实例模式 1. 实例上下文模式   一个服务代理:servicePoxy ChannelFactory<IService1> factoryservicel = new Cha ...

  7. 第十四章 Odoo 12开发之部署和维护生产实例

    本文中将学习将 Odoo 服务器作为生产环境的基本准备.安装和维护服务器是一个复杂的话题,应该由专业人员完成.本文中所学习的不足以保证普通用户创建应对包含敏感数据和服务的健壮.安全环境. 本文旨在介绍 ...

  8. 生产环境中的 redis 是怎么部署的

    redis cluster,10 台机器,5 台机器部署了 redis 主实例,另外 5 台机器部署了 redis 的从实例,每个主实例挂了一个从实例,5 个节点对外提供读写服务,每个节点的读写高峰q ...

  9. 面试系列20 生产环境中的redis是怎么部署的

    redis cluster,10台机器,5台机器部署了redis主实例,另外5台机器部署了redis的从实例,每个主实例挂了一个从实例,5个节点对外提供读写服务,每个节点的读写高峰qps可能可以达到每 ...

随机推荐

  1. [转帖]socks5 协议简介

    socks5 协议简介 http://zhihan.me/network/2017/09/24/socks5-protocol/ 什么是socks5 或许你没听说过socks5,但你一定听说过Shad ...

  2. SQLite基础-5.数据操作语言

    目录 一.添加数据(insert) 二.查询数据(select) 三.更新数据(update) 三. 删除数据(delete) 一.添加数据(insert) INSERT INTO 用于向数据库的某个 ...

  3. tp5 post接到的json被转义 问题解决

    今天做项目的时候前端需要可以保存可变数据, 然后原样返回给前端 接口 $data =input('post.');//用户唯一标识$goods = $data['goods']; $shopcuxia ...

  4. Python三大主流框架的对比

    相信做Python这一块的程序员都有听说这三个框架,就像神一样的存在,每一个框架的介绍我就不写出来了,感兴趣可以自己百度了解了解!下面我就说正事 Django:Python 界最全能的 web 开发框 ...

  5. Elastic Search 分布式架构分析

    1 ES分布式机制的透明隐藏特性ES本身就是一个分布式系统,就是为了处理海量数据的应用.ES隐藏了复杂的分布式机制,简化了配置和操作的复杂度.ES在现在的互联网环境中,盛行的原因,主要的核心就是分布式 ...

  6. T100——菜单action控制单身栏位的修改

    通过菜单ACTION来控制单身栏位内容的编辑修改: 范例axmt500: DEFINE l_xmdcua012_bk DYNAMIC ARRAY OF RECORD # ljr xmdcua012 L ...

  7. python之paramiko 远程执行命令

    有时会需要在远程的机器上执行一个命令,并获得其返回结果.对于这种情况,python 可以很容易的实现. 1 .工具 Python paramiko 1) Paramiko模块安装 在Linux的Ter ...

  8. Left4Dead2 LAN Online

    Left4Dead2 LAN Online Franklin vs Wolverine 求生之路 局域网联机说明 ============================ 局域网联机方法: 1.先找到 ...

  9. js修改当前页面地址栏参数

    利用HTML5 history新特性replaceState方法可以修改当前页面地址栏参数,示例代码: //选择日期后改变地址栏 var urlSearch = location.href; var ...

  10. Laravel 实现多级控制器(实现Api区分版本)

    路由: Route::get('', 'v1\\UserController@index'); 文件夹分层 User控制器命名空间: namespace App\Http\Controllers\v1 ...