• 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: 644

    配置文件

    [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: 644
        - template: jinja
        - defaults:
          IPADDR: {{ grains['fqdn_ip4'][0] }}
          PORT: 80
        - 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: 644
        - template: jinja
        - defaults:
          IPADDR: {{ grains['fqdn_ip4'][0] }}
          PORT: 80
        - watch_in:
          - service: apache-service
    
    apache-service:
      service.running:
        - name: httpd
        - enable: True
        - reload: True
    View Code

    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: 644
    
    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: 644
        - 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: 644
    
    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: 644 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: 644 - watch_in: - service: apache-service

    3、虚拟主机shop-user.conf

    [root@linux-node1 /srv/salt/prod/shop-user]# cat files/shop-user.conf
    <VirtualHost *:8080>
        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

  • 相关阅读:
    PAT 甲级 1128 N Queens Puzzle
    HDU 1995 R-汉诺塔V
    PAT L1-039 古风排版
    PAT L2-028 秀恩爱分得快
    ZOJ 2060 A-Fibonacci Again
    HDU 2079 选课时间
    HDU 1016 Prime Ring Problem
    理论相关概念原理
    单播字符、字符串收发
    OSAL的原理
  • 原文地址:https://www.cnblogs.com/venicid/p/11532070.html
Copyright © 2020-2023  润新知