使用
大约 1 分钟
使用
saltenv及file_roots配置
配置 salt-master
vi /etc/salt/master
- 配置完成后重启salt-master
file_roots:
base:
- /xxx/saltstack/base
dev:
- /xxx/saltstack/base/dev
- file_roots 目录 tree
└── base
├── dev
│ ├── files
│ │ └── test
│ │ ├── nc.sh
│ │ └── test.sh
│ └── scripts
│ └── test.sls
└── files
└── base-test-file.txt
salt
命令salt
命令用于远程操作minion,进行批量操作管理
模块
module-salt.modules.cmdmod(命令模块)
cmd.run
# 1. 创建 appUser 用户
# 2. 创建 /opt/app 文件夹
# 3. 赋予 appUser 用户 app 文件夹 权限
# 4. 使用 appUser 用户 执行命令
sudo salt 'dev-test' cmd.run 'useradd appUser'
sudo salt 'dev-test' cmd.run 'mkdir -p /opt/app'
sudo salt 'dev-test' cmd.run 'chown -R appUser:appUser /opt/app'
sudo salt 'dev-test' cmd.run 'cd /opt/app && mkdir app1' runas=appUser
module-salt.modules.cp(文件操作)
cp.get_file
sudo salt 'dev' cp.get_file salt://files/base-test-file.txt /opt/
SLS
(Salt State)-状态,配置管理
使用
- test.sls
file.managed 文件操作
cmd.run 执行命令
test-sls:
file.managed:
- name: /opt/base-test-file.txt
- source: salt://files/base-test-file.txt
cmd.run:
- name: ls -l /opt
- 调用
默认 env 为 base,执行dev/script 目录下的test.sls
sudo salt "dev" state.sls dev.scripts.test
指定 env 为 dev,执行scripts目录下的test.sls
sudo salt "dev" state.sls saltenv=dev scripts.test
匹配minion
- 所有
salt '*'
- 以开头
salt 'test*'
- 范围
test-00[1-4]
test-001到test-004 - Perl-compatible正则表达式
salt -E '$regex'
- 指定值 salt -L 'test-002,test-004'
自定义分组nodegroups
配置方式
- 在 /etc/salt/master 中配置 nodegroups
- 或配置单独的nodegroups文件,需在/etc/salt/master配置default_include: master.d/*.conf
配置及使用
vi /etc/salt/master.d/testgroups.conf
nodegroups:
test-all: 'test*'
test-00: 'test-00[1-4]'
test-redis: 'test-002,test-004'
- 分组执行:
salt -N 'test-all' test.ping