检测存活性:
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