zoukankan      html  css  js  c++  java
  • Saltstack项目实践

    项目分解与环境规划

    1.环境配置

    # 开发、测试、预生产、生产
    [root@salt0-master ~]# vim /etc/salt/master 
    file_roots:
      base:
        - /srv/salt/base  #base基础环境
      prod:
        - /srv/salt/prod  #prod生产环境
    
    pillar_roots:
      base:
        - /srv/pillar/base
      prod:
        - /srv/pillar/prod
    [root@salt0-master ~]# systemctl restart salt-master
    

    系统初始化配置

    DNS配置
    history记录时间
    内核参数优化
    limits配置
    yum仓库配置
    sshd服务调整
    防火墙设定
    基础软件包
    ntp客户端
    应用用户

    [root@salt0-master srv]# tree /srv/salt/base/
    /srv/salt/base/
    ├── init
    │   ├── dns.sls
    │   ├── env_init.sls
    │   ├── files
    │   │   ├── authorized_keys.template
    │   │   ├── limits.conf.template
    │   │   ├── resolv.conf.template
    │   │   ├── selinux_config.template
    │   │   ├── sshd_config.template
    │   │   ├── yum.repos.d.template
    │   │   │   ├── base.repo
    │   │   │   ├── epel.repo
    │   │   │   ├── nginx.repo
    │   │   │   ├── salt-latest.repo
    │   │   │   └── zabbix.repo
    │   │   └── zabbix_agentd.conf.template
    │   ├── firewalld.sls
    │   ├── history.sls
    │   ├── limit.sls
    │   ├── ntp.sls
    │   ├── pkg.sls
    │   ├── repo.sls
    │   ├── sshd.sls
    │   ├── ssh-key.sls
    │   ├── sysctl.sls
    │   ├── user.sls
    │   └── zabbix_agent.sls
    └── top.sls
    

    基础模块配置管理

    [root@salt0-master srv]# tree /srv/salt/prod/modules/
    /srv/salt/prod/modules/
    ├── keepalived
    │   ├── files
    │   └── install.sls
    ├── mysql
    │   ├── files
    │   │   └── my.cnf.template
    │   ├── install.sls
    │   └── service.sls
    ├── nginx
    │   ├── files
    │   │   └── nginx.conf.template
    │   ├── install.sls
    │   └── service.sls
    └── php
        ├── files
        │   ├── php-fpm.conf.template
        │   ├── php-fpm.d.template
        │   │   └── www.conf
        │   └── php.ini.template
        ├── install.sls
        └── service.sls
    

    业务模块配置管理

    根据业务类型划分,使用cluster业务引入,包含基础模块的配置

    [root@salt0-master srv]# tree /srv/salt/prod/cluster/
    /srv/salt/prod/cluster/
    ├── proxy
    │   ├── files
    │   │   ├── keepalived.conf.template
    │   │   └── proxy.conf.template
    │   ├── keepalived-outside.sls
    │   └── server.sls
    └── webnode
        ├── code.sls
        ├── files
        │   ├── config.d.template
        │   │   └── bbs.conf
        │   └── index.php
        └── vhost.sls
    

    haproxy

    haproxy
    
    [root@saltstack01 ~]# cat /srv/salt/prod/haproxy/files/haproxy.cfg 
    global
        log 127.0.0.1 local2 
        chroot /var/lib/haproxy 
        pidfile /var/run/haproxy.pid 
        maxconn 4000 
        user haproxy 
        group haproxy 
        daemon 
        stats socket /var/lib/haproxy/stats
    
    defaults
        mode http 
        log global 
        option httplog 
        option dontlognull 
        option http-server-close 
        option forwardfor except 127.0.0.0/8 
        option redispatch retries 3 
        timeout http-request 10s 
        timeout queue 1m 
        timeout connect 10s 
        timeout client 1m
        timeout server 1m 
        timeout http-keep-alive 10s 
        timeout check 10s 
        maxconn 3000
    
    listen stats
        bind *:8925
        stats enable
        stats hide-version
        stats uri /stats
        stats realm HaproxyStats
        stats auth bgx:123
        stats admin if TRUE
    
    frontend web
    mode http
    bind *:80
    default_backend httpservers
    
    backend httpservers 
        balance roundrobin 
        server http1 192.168.56.11:80 maxconn 2000 weight 1 check inter 1s rise 2 fall 2
        server http2 192.168.56.12:80 maxconn 2000 weight 1 check inter 1s rise 2 fall 2
    

    keepalived

    [root@saltstack01 ~]# cat /srv/salt/prod/keepalived/files/keepalived.conf 
    ! Configuration File for keepalived
    
    global_defs { 
        router_id {{ ROUTER_ID }} 
    }
    
    vrrp_instance VI_1 { 
        state {{ STATE }}
        interface eth0
        virtual_router_id 51 
        priority {{ PRIORITY }} 
        advert_int 1 authentication {
            auth_type PASS
            auth_pass 1111 
        } 
        virtual_ipaddress {
            192.168.56.11
        }
    }
    
    
    
    keepalived-install:
      pkg.installed:
        - name: keepalived 
      file.managed:
        - name: /etc/keepalived/keepalived.conf
        - source: salt://keepalived/files/keepalived.conf
        - user: root
        - group: root
        - mode: 644
        - require:
          - pkg: keepalived-service
        - template: jinja 
        {% if grains['fqdn'] == 'saltstack01.com' %}
        - ROUTER_ID: saltstack01
        - STATE: MASTER
        - PRIORITY: 100 
        {% elif grains['fqdn'] == 'saltstack02.com' %}
        - ROUTER_ID: saltstack02
        - STATE: BACKUP
        - PRIORITY: 50 
        {% endif %} 
    
    keepalived-service:
      service.running:
        - name: keepalived
        - enable: True
        - reload: True
        - require:
          - pkg: keepalived-service
          - file: keepalived-service
        - watch:
        - file: keepalived-service
  • 相关阅读:
    Eclipse解决运行、启动缓慢问题思路
    Flask---日常笔记1
    Flask与Django对比
    Flask框架-基本使用
    常用软件下载地址
    乌合之众大众心理学
    C#使用IKVM来实现与java互通的RSA签名
    C#使用BouncyCastle来实现私钥加密公钥解密的方法与java互通的RSA加解密和签名(转)
    SignalR新手系列教程详解总结(转)
    项目管理的三大难题及应对策略(转)
  • 原文地址:https://www.cnblogs.com/henrylinux/p/11498108.html
Copyright © 2011-2022 走看看