SaltStack使用
一. SaltStack基本使用方法
二. SaltStack的命令行工具
1. minions在线状态
查看所有minion状态:salt-run manage.status
查看所有minion在线状态:salt-run manage.up
查看所有minion不在线状态:salt-run manage.down
2. key管理
salt-key 密钥管理,通常在master端执行
salt-key [options]
salt-key -L ##查看所有minion-key
salt-key -a <key-name> ##接受某个minion-key
salt-key -d <key-name> ##删除某个minion-key
salt-key -A ##接受所有的minion-key
salt-key -D ##删除所有的minion-key
三. SaltStack的远程执行命令
四. SaltStack的模块
Grains
Grains 是minion启动的时候采集的系统静态,包括CPU,操作系统,文件系统,硬盘等等
显示所有Grains信息分类:salt '*' grains.ls
显示所有静态信息:salt '*' grains.items
Grains应用场景
1. 获取系统信息
2. 用于分类查找minion
3. 与其他模块结合完成更灵活的minion控制
示例:
a.查看模块的用法:
salt 'CentOS7' sys.list_functions grains
b.查看item项
salt 'CentOS7‘ grains.ls
c. 查看某个item值
salt 'CentOS7' grains.get os
自定义Grains
1. /etc/salt/grains
2. /etc/salt/minion
3. _grains目录自定义grai,同步到minions
Pillar
Pillar跟grains类似,可将minion数据通过key/value的格式进行存储。
Pillar使用独立的加密session,可以传递很敏感的数据,例如:ssh-key,加密证书等。
Targeting Minions
1. 为salt指定minion的方法
2. salt web1 apache.signal restart
Targeting with Granis
1. salt -G ‘os: CentOS’ test.ping
2.获取Grains数据的方法:salt '*' grains.items
Compound Targeting
salt -C ‘G@os:Debian and webser* or E@db.*’ test.ping
a. G@指定了grains
b. webser指定了ID以webser开头的minion
c. E@是以正则的方式指定minion的ID
Node Group Targeting
在salt-master的配置文件中增加nodegroups配置项
Salt Runner
salt runner 是在master上运行命令的方法,区别于salt execution model
salt runner模块包括:
cache:返回minion缓存数据
ddns:动态DNS
fileserver:salt fileserver插件管理
等等
自定义Salt Runner
a. 添加一个目录到salt-master配置文件run_dirs配置项
b. 创建该目录
c. 添加Python文件到该目录
示例:
Remote Execution
Target:
1. salt ‘*.example.org’ test.ping
2. salt -G ‘os:Ubuntun’ test.ping
3. salt -E 'virtmach[0-9]' test.ping