saltstack使用

saltstack基本使用


按照saltstack部署的方式不是一个master+minion的测试环境。

通过salt-key -L查看一下加入salt环境的minion:
saltstack使用_第1张图片

Grains模块

grains模块使用

grains是minion启动的时候采集的系统的静态信息,包括cpu、操作系统、文件系统、硬盘等。

显示所有的minion的grians信息:

salt '*' grains.ls

可以将 * 替换为具体monions节点id

saltstack使用_第2张图片

上边显示的只是门类,显示具体信息可以使用:

salt '*' grains.items

saltstack使用_第3张图片

grains模块应用场景

1、获取系统信息(监控、应用分配)
2、用于分类查找minion
3、与其他模块结合更灵活控制minion

自定义grains

有三个路径可以打开自定义grains:


  • /etc/salt/grains
  • /etc/salt/minion
  • _grains

这三个路径优先级逐渐升高

pillar模块

和grains类似,可以将minion数据通过key、value方式存储。可以使用单独的加密session,所以可以传递敏感加密数据。它是运行在master端的。

Targeting Minions模块

为salt指定minion的方法,匹配minion的规则。

可以使用-G参数来表示使用grains中变量信息来匹配minion,例如:

salt -G 'os:CentOS' test.ping

saltstack使用_第4张图片

对匹配到 os为centos的机器执行ping操作。

Compound Targeting

通过不同的方式匹配minion,例如:

salt -C 'G@os:CentOS and minion* or E@db.*' test.ping

这里写图片描述

G@ 表示制动grains匹配,minion*表示以minion开头的minion-id,E@ 表示正则方式匹配minion-id
多个条件可以使用逻辑关系符连接。

Node Group Targeting

在salt-master配置文件中增加nodegroups配置项,
saltstack使用_第5张图片

salt runners

salt runners是在master上运行命令的方法,区别于salt execution model。

salt runners模块包括:

- cache:返回minion缓存数据
- ddns:动态dns
- fileserver:salt fileserver插件管理
- .....

自定义salt runner:
1、添加一个目录到salt-master配置文件run_dirs配置项
2、创建该目录
3、添加python文件到该目录

首先添加配置项:
这里写图片描述

然后创建该目录,并在该目录下写一个python文件:
这里写图片描述

运行这个自定义runner:
这里写图片描述

使用salt-run调用runner,后边test表示文件名,hello表示该文件的方法或函数名。打印print输出的是白色,返回值输出为绿色(也可能是其他颜色)

remote execution

将命令在远程minion上执行。
saltstack使用_第6张图片

执行命令

在远程执行命令的时候需要使用cmd.run这个模块:

salt '*' cmd.run 'uname -a'

这里写图片描述

执行代码

使用cmd.exec_code模块:

salt '*' cmd.exec_code python 'import sys;print sys.version'

这里写图片描述

salt 选项

saltstack使用_第7张图片
saltstack使用_第8张图片
saltstack使用_第9张图片
saltstack使用_第10张图片
saltstack使用_第11张图片
saltstack使用_第12张图片
saltstack使用_第13张图片

你可能感兴趣的:(自动化工具-saltstack)