Saltstack 帮助路径
作为重新系统学习saltstack一些笔记
首先从salt的sys模块开始了解salt有哪些功能
salt-call sys.list_functions sys 获取salt的sys模块有哪些函数,输出以下内容
local:
- sys.argspec
- sys.doc
- sys.list_functions
- sys.list_modules
- sys.list_renderers
- sys.list_returner_functions
- sys.list_returners
- sys.list_runner_functions
- sys.list_runners
- sys.list_state_functions
- sys.list_state_modules
- sys.reload_modules
- sys.renderer_doc
- sys.returner_argspec
- sys.returner_doc
- sys.runner_argspec
- sys.runner_doc
- sys.state_argspec
- sys.state_doc
- sys.state_schema
先介绍list相关函数的一些功能;模块的发现与清单列表
sys.list_modules 列出所有已加载的执行模块(Execution Modules)
查看 Minion 上可用的所有执行模块
salt '*' sys.list_modules
sys.list_functions 列出所有执行模块中的具体函数;
查看模块包含的具体操作
salt '*' sys.list_functions # 列出所有函数
salt '*' sys.list_functions pkg # 仅列出 pkg 模块的函数
sys.list_state_modules 列出所有已加载的状态模块(State Modules)
查看可用于状态管理(.sls 文件)的模块
salt '*' sys.list_state_modules
sys.list_state_functions 列出状态模块中的具体状态函数
查看状态模块可用的声明式函数
salt '*' sys.list_state_functions # 所有状态函数
salt '*' sys.list_state_functions file # 仅 file 状态模块的函数
sys.list_runners 列出所有已加载的Runner 模块(在 Master 端执行)
查看可在 Master 上运行的 Runner 模块
salt-run sys.list_runners
sys.list_runner_functions 列出 Runner 模块中的具体函数
查看 Runner 模块可用的函数
salt-run sys.list_runner_functions
sys.list_returners 列出所有已配置的Returner 模块(用于结果存储)
看可用的结果存储后端
salt '*' sys.list_returners
sys.list_returner_functions 列出 Returner 模块中的函数(通常内部使用)
开发或调试 Returner 时使用
salt '*' sys.list_returner_functions
sys.list_renderers 列出所有可用的渲染器(用于解析模板)
查看支持的模板渲染组合
salt '*' sys.list_renderers
文档与帮助类
sys.doc 显示执行模块函数的文档字符串
查看函数用法、参数和示例
salt '*' sys.doc # 显示所有文档(非常长)
salt '*' sys.doc pkg.install # 显示特定函数的文档
salt '*' sys.doc "pkg.*" # 显示 pkg 模块所有函数的文档
sys.state_doc 显示状态模块函数的文档
状态函数的参数说明和示例
salt '*' sys.state_doc file.managed
sys.runner_doc 显示 Runner 模块函数的文档
Runner 函数的详细说明
salt-run sys.runner_doc jobs.active
sys.returner_doc 显示 Returner 模块函数的文档
配置或调试 Returner 时参考
salt '*' sys.returner_doc mysql.return
sys.renderer_doc 显示渲染器的文档
了解渲染器特性和用法
salt '*' sys.renderer_doc jinja
参数规范类
sys.argspec 显示执行模块函数的参数规范
salt '*' sys.argspec pkg.install
sys.state_argspec 显示状态模块函数的参数规范
编写状态文件时了解参数结构
salt '*' sys.state_argspec file.managed
sys.runner_argspec 显示 Runner 模块函数的参数规范
调用 Runner 时了解参数要求
salt-run sys.runner_argspec jobs.list_jobs
sys.returner_argspec 显示 Returner 模块函数的参数规范
开发或集成 Returner 时使用
salt '*' sys.returner_argspec mysql.return
sys.reload_modules 重新加载所有模块,无需重启服务
salt '*' sys.reload_modules 执行加载模块前,一般是先执行 salt '*' saltutil.sync_modules 同步模块到minion端之后
sys.state_schema 生成状态函数的 JSON Schema
JSON Schema 格式的参数规范
salt '*' sys.state_schema # 所有状态函数的模式
salt '*' sys.state_schema file.managed # 特定函数的模式
新接触一个 Salt 环境
# 1. 看有什么模块可用
salt minion01 sys.list_modules
# 2. 看某个模块有什么功能
salt minion01 sys.list_functions pkg
# 3. 看具体函数怎么用
salt minion01 sys.doc pkg.install
# 4. 查看参数结构
salt minion01 sys.argspec pkg.install
如何编写状态文件
# 1. 查看可用的状态模块
salt minion01 sys.list_state_modules
# 2. 查看状态模块有哪些函数
salt minion01 sys.list_state_functions
# 3. 查看状态函数详细的用法
salt minion01 sys.state_doc file.managed
# 4. 查看参数结构
salt minion01 sys.state_argspec file.managed
如何开发自定义模块
# 1. 模块开发完成后同步
salt '*' saltutil.sync_modules
# 2. 重新加载模块
salt '*' sys.reload_modules
# 3. 验证模块加载
salt '*' sys.list_modules | grep mymodule
# 4. 查看自定义模块文档
salt '*' sys.doc mymodule.myfunction
最后针对 sys.argspec 和sys.state_argspec 这个函数详细说明一下,这个可以帮助你如何使用salt命令传参和如何编写state的sls文件
[root@master01 pillar]# salt node03 sys.argspec ssh.user_keys
node03:
----------
ssh.user_keys: # 函数名
----------
args: # 位置参数(按顺序必须提供的参数)
- user
- pubfile
- prvfile
defaults: # 对应参数的默认值(与args一一对应)
- None # user 的默认值 → 没有默认值(必需)
- None # pubfile 的默认值 → 没有默认值(必需)
- None # prvfile 的默认值 → 没有默认值(必需)
kwargs: # 是否接受关键字参数(**kwargs)
None # 不接受额外的关键字参数(如 name="value")
varargs: # 是否接受可变位置参数(*args)
None # 不接受额外的位置参数(如 *args)
以上ssh.user_keys函数签名类似于
def user_keys(user, pubfile, prvfile):
# 函数体...

浙公网安备 33010602011771号