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):
    # 函数体...
posted @ 2026-02-06 17:53  在半空頫視地球╰☆╮  阅读(5)  评论(0)    收藏  举报