zoukankan      html  css  js  c++  java
  • 原创-实用salt部署文档(持续更新)

    检测存活性:

    salt 主机名 test.ping 

    批量检测存活性:

    salt -L '主机名1 主机名2..' test.ping

    执行单句命令

    salt 主机名 cmd.run '执行命令'

    执行某个sls文件

    salt 主机名 state.sls salt下相对路径/目标文件名(不带sls后缀)

     ---传输文件及文件权限

    abcd:(注释)
    file.managed:(使用文件管理功能)
    - source: salt://A/B/C.sh(存放在/srv/salt下的目录)
    - name: /usr/local/A/B.sh(需要传输的目标目录)
    - mode: 0755(文件权限)

    ---执行命令

    cmd.run:
    - name: sh /usr/local/A/B.sh 

    ---crontab设置

    abcd:(注释)
    cron.present:(使用cron功能)
    - name: /usr/local/A/B/C/D.sh monitor > /tmp/monitorA.log 2>&1(crontab语句)
    - identifier: go-node-proxy monitor(注释)
    - user: xladm(crontab用户)

    (默认一分钟一次)

    abcd:(注释)
    cron.present:(使用cron功能)
    - name: /usr/local/A/B/C/D.sh monitor > /tmp/monitorA.log 2>&1(crontab语句)
    - identifier: go-node-proxy monitor(注释)
    - user: xladm(crontab用户) 

    - minute: '*/10'(每10分钟执行一次)

    - minute: '1'
    - hour: '1'
    - daymonth: '1'

    ---循环执行多个rpm包

    {% for pkg in ["kernel-ml-5.6.5-1.el7.elrepo.x86_64.rpm","kernel-ml-devel-5.6.5-1.el7.elrepo.x86_64.rpm"]%}
    {{ pkg }}:
    file.managed:
    - name: /usr/local/src/{{ pkg }}
    - source: salt://A/files/kernel/{{ pkg }}
    cmd.run:
    - cwd: /usr/local/src/
    - name: rpm -ivh {{ pkg }}
    {% endfor %}

    ---文件夹传输及保持各项属性

    /usr/local/A/B:(在配置中如果没有name的情况下,注释这里作为目标路径)
    file.recurse:
    - source: salt://A/files/B
    - user: C
    - group: C
    - file_mode: 0755
    - makedirs: Ture
    - include_empty: True
    - keep_symlinks: True

    传输过去以C用户为属性,0755,允许空文件夹并创建文件夹,保持软连接。

    ---创建文件夹

    /data1/logs/A:
    file.directory:
    - user: C
    - group: C
    - mode: 755
    - makedirs: Ture (目录不存在则创建)
    - recurse:
    - user
    - group
    - mode

    ---创建软连接

    /usr/local/A/B/C:(创建这个软连接文件指向target路径)
    file.symlink:
    - mode: 0755
    - target: /data1/logs/A
    - force: true
    - user: xladm
    - group: xladm
    - onlyif: test -d /data1/logs/A (首先测试文件是否存在,当判断为真执行。)

    ---以某身份执行命令

    start:(注释)
    cmd.run:
    - name: /usr/local/A.sh start
    - runas: xladm

    ---修改内核参数

    net.ipv4.tcp_sack:
    sysctl.present:
    - value: 1

    net.ipv4.tcp_dsack:
    sysctl.present:
    - value: 1

    net.core.default_qdisc:
    sysctl.present:
    - value: fq

    net.ipv4.tcp_congestion_control:
    sysctl.present:
    - value: bbr

    net.ipv4.tcp_fack:
    sysctl.present:
    - value: 1

    net.ipv4.tcp_fastopen:
    sysctl.present:
    - value: 1

    ---设置变量传参

    {% set sql_file = 'ABCD'%}

    copy_sql:
    file.managed:
    - name: /tmp/{{ sql_file }}
    - source: salt://A/mysql/files/{{ sql_file }}
    - mode: 0755

    ---用判断语句使变量传入不同的值

    {% set hostname = grains.id %}
    {% if 'a05' in hostname %}
    {% set host = 'A'%}
    {% elif 'a03' in hostname %}
    {% set host = 'B'%}
    {% elif 'al02' in hostname %}
    {% set host = 'C'%}

    ---修改iptables

    allow_ABCD:(注释)
    iptables.insert:
    - position: 1
    - table: filter
    - chain: RH-Firewall-1-INPUT
    - jump: ACCEPT
    - match:
    - state
    - connstate: NEW
    - source: '114.114.114.114,114.114.115.115'
    - dport: 9004:9005
    - protocol: tcp
    - sport: 1025:65535
    - save: True

    ---删除计划任务

    chown -R A:A /data1/:
    cron.absent:
    - user: xladm
    - name: chown -R A:A /data1/

    ---判断文件存在再执行

    test-onlyif:

    cmd.run:

      - name: mkdir /tmp/onlyif

      - onlyif: test -f /tmp/onlyif.txt

  • 相关阅读:
    苹果IPhone真机开发调试
    Unity3d 错误提示 GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced
    Unity编辑器环境在Inspector面板中显示变量
    微信小程序开发
    Android 9.0 Http不能访问网络
    c#传不确定的参数个数,比如int型
    玩转@Git三剑客
    白话法律42讲-为程序员打造的专属法律武器
    uSurvival 1.41多人在线生存逃杀吃鸡类游戏源码
    NGUI: Next-Gen UI 2018.3.0f
  • 原文地址:https://www.cnblogs.com/normanlin/p/14208402.html
Copyright © 2011-2022 走看看