zoukankan      html  css  js  c++  java
  • Saltstack生产案例之系统初始化

    把之前的配置打个包

    zip -r salt.zip *

    拷贝到/root/tools目录

    博客园文件里面也保留一份,删除之前所有的salt配置文件重新开始

    1,系统初始化 

    2,功能模块:设置单独的目录haproxy nginx php mysql memcached

    3,业务模块:根据业务类型,例如web 服务 论坛 bbs

          include 

    1,salt环境配置

    开发,测试(功能测试环境,性能测试环境) 预生产 生成

    base 基础环境

    init目录,环境初始化 1.dns配置  2history记录时间 3记录命令操作 4内核参数优化 5安装yum仓库 6安装Zabbix-agent

    2,prod生成环境

    vim /etc/salt/master

    mkdir -p /srv/salt/base
    mkdir -p /srv/salt/prod

    mkdir -p /srv/pillar/base
    mkdir -p /srv/pillar/prod

    重启

    systemctl restart salt-master

    cd /srv/salt/base/

    mkdir init

    cd init

    vim dns.sls

    /etc/resolv.conf:
      file.managed:
        - source: salt://init/files/resolv.conf
        - user: root
        - gourp: root
        - mode: 644
    

    新建文件命令,拷贝配置文件

    mkdir files

    cp /etc/resolv.conf  files/

    vim history.sls

    /etc/profile:
      file.append:
        - text:
          - export HISTTIMEFORMAT="%F %T `whoami` "
    

    PS:在/etc/profile 末尾追加一行显示执行时间以及执行者

    vim audit.sls

    /etc/bashrc:
      file.append:
        - text:
          - export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'
    

    PS:记录命令的操作即命令审计

    vim sysctl.sls

    net.ipv4.ip_local_port_range:
      sysctl.present:
        - value: 10000 65000
    fs.file-max:
      sysctl.present:
        - value: 2000000
    net.ipv4.ip_forward:
      sysctl.present:
        - value: 1
    vm.swappiness:
      sysctl.present:
        - value: 0
    

    PS:内核参数优化

      net.ipv4.ip_local_port_range: 本地可用端口范围 作为客户端发起连接的时候

      net.ipv4.ip_forward: 开启转发

      sysctl.present:交换分区使用权重为0是尽量不使用

    vim epel.sls

    yum_repo_release:
      pkg.installed:
        - sources:
          - epel-release: http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
    
    

    vim zabbix-agent.sls

    zabbix-agent:
      pkg.installed:
        - name: zabbix-agent
      file.managed:
        - name: /etc/zabbix/zabbix_agentd.conf
        - source: salt://init/files/zabbix_agentd.conf
        - template: jinja
        - defaults:
          Server: {{ pillar['zabbix-agent']['Zabbix_Server'] }}
        - require:
          - pkg: zabbix-agent
      service.running:
        - enable: True
        - watch:
          - pkg: zabbix-agent
          - file: zabbix-agent
    zabbix_agentd.conf.d:
      file.directory:
        - name: /etc/zabbix/zabbix_agentd.conf.d
        - watch_in:
          - service: zabbix-agent
        - require:
          - pkg: zabbix-agent
          - file: zabbix-agent
    

    拷贝配置文件

    cp /etc/zabbix/zabbix_agentd.conf files/

    vim files/zabbix_agentd.conf 

    PS:这里{}内变量名称Server要和/srv/salt/base/init/zabbix-agent.sls  一样为Server

    直接执行出错

    因为没有配置pillar

    cd /srv/pillar/base/

    mkdir zabbix
    cd zabbix/

    vim agent.sls

    zabbix-agent:
      Zabbix_Server: 10.8.45.27
    

    这样设置还不行,需要master指定给

    vim /srv/pillar/base/top.sls

    base:
      '*':
        - zabbix.agent
    

    salt '*' state.sls init.zabbix-agent

    执行状态成功了

    到此初始化写完了

    cd /srv/salt/base/init

    vim init.sls

    include:
      - init.dns
      - init.history
      - init.audit
      - init.sysctl
      - init.epel
      - init.zabbix-agent
    

    执行salt '10-8-86-172' state.sls init.init

    成功了

    这个是执行单个配置文件 高级状态是定义top.sls

    cd /srv/salt/base

    vim top.sls

    base:
      '*':
        - init.init
    

     先tree一下

     使用salt '*' state.highstate  执行top.sls 因为这里定的是 * init.init 其实效果和上面的是一样的

    PS:使用backup: minion可以在配置文件有更新的时候把原始配置文件备份

    一旦配置文件有更新会把原始配置文件备份一遍

    参考文档

    https://github.com/unixhot/saltbook-code/blob/master/salt/



  • 相关阅读:
    Poi之Word文档结构介绍
    Cannot create PoolableConnectionFactory (ORA-28040: No matching authentication protocol
    ZipFile和ZipInputSteam解压zip文件
    Java读取其他jar包里的配置文件
    安装oracle后不能连接问题
    JDBC oracle 错误总结
    vimplugin破解
    SQL之left join、right join、inner join
    ELK之安装searchguard后默认管理员用户admin修改
    CentOS使用systemctl daemon-reload报错Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: Timeout was reached (g-io-error-quark, 24)解决办法
  • 原文地址:https://www.cnblogs.com/minseo/p/6852591.html
Copyright © 2011-2022 走看看