跳至主要內容

使用

酷风大约 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