欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SaltStack说明文档

程序员文章站 2022-04-13 08:47:46
...

SaltStack说明文档

master安装

# 安装
yum -y install salt-master salt-minion salt-ssh
# 启动
systemctl start salt-master salt-minion

master管理端配置

vim /etc/salt/master
#保存以下配置文件即可
interface: 0.0.0.0
file_recv: True
file_roots:
  base:
    - /srv/salt/
pillar_roots:
  base:
    - /srv/pillar
nodegroups:
  kaifa: '[email protected]_*'
  test: '[email protected]_0001,test_0002'

认证成功的minion文件路径:/etc/salt/pki/master/minions

minion被管理端配置

# 安装
yum -y install salt-minion
# 将master ip添加到hosts
sed -i 's/#master:.*/master: MASTER_IP/' /etc/salt/minion
# 设置minion标识,设置为ip地址
sed -i 's/#id:.*/id: MINION_HostName/' /etc/salt/minion
# 启动
systemctl restart salt-minion

master主机上执行认证

salt-key -L
salt-key -A -y  
# 删除单个主机
salt-key -d minion_name
# 删除所有认证主机
salt-key -D
# 被删除minion主机重新认证
rm -f /etc/salt/pki/minion/minion.*
systemctl restart salt-minion
# 检查master主机是否能正常在minion上执行命令
salt '*' test.ping

salt常用命令说明

salt '' [arguments]
target: 执行salt命令的目标,可以使用正则表达式
function: 方法,由module提供
arguments: function的参数

target常用表达式

# 1. 正则表达式
salt -E 'Minion*' test.ping
salt -E 'aaa*|.*bbb*|ccc-*' cmd.run test.ping
# 2. 列表匹配
salt -L Minion,Minion1 test.ping
# 3. Grians匹配
salt -G 'os:CentOS' test.ping
# 4. 组匹配
salt -N groups test.ping
# 5. CIDR匹配
salt -S '127.0.0.1' test.ping
salt -S '10.252.0.0/16' test.ping
salt -S '10.252.137.0/24' test.ping
# 6. 复合匹配
salt -C '[email protected]:CentOS or [email protected]' test.ping

function常用表达式

salt '*' cmd.run "hostname'"
salt '*' cmd.script salt://scripts/runme.sh
salt '*' cmd.script salt://scripts/runme.sh 'arg1 arg2 arg3'

salt 传送文件

salt传输文件、文件夹的固定目录为: /srv/salt/

# 传送文件 (mkdirs可选参数,目录不存在,自动创建)
salt "*" cp.get_file salt://iplist /home/iplist makedirs=True
# 传送目录
salt "*" cp.get_dir salt://abc/ home/

salt 远程执行脚本

  • 可将脚本分发到远程服务器,再通过cmd.run命令执行
  • master服务器执行
salt "*" cmd.script salt://test.sh

cp.push 模块使用

允许minion上传文件到master端
注意事项:
cp.push功能默认不开启,需要修改配置文件中的file_recv环境
vim /etc/salt/master
file_recv参数默认为False,修改为True

# 上传的文件存放在master端的/var/cache/salt/master/minions/<minion_id>/files/目录下
salt "*" cp.push /data/backup/DB_$(date +"%Y%m%d").sql

salt-ssh 使用

# 不允许安装minion或不用长期管理某台minion
# 安装
yum -y install salt-ssh
# 配置文件
vim /etc/salt/roster
cat /etc/salt/roster
linux-node1.example.com:
  host: 192.168.56.11
  port: 22
  user: root
  passwd: 

linux-node2.example.com:
  host: 192.168.56.12
  port: 22
  user: root
  passwd: 98Vs

salt-ssh '*' test.ping
salt-ssh -i --roster-file=roster 'Minion' test.ping
# -r 参数执行shell命令
salt-ssh -i --roster-file=roster 'Minion' -r "hostname"