SaltStack 与 Python 程序的结合

python

SaltStack 库中的 Modules:

在 SaltStack 中,每个子系统插件(plug-in)都是一个 Python Module。因此,SaltStack 库中的 Module 可以看作是一组 functions(例如:aka 命令);可以看作是一个应用(例如:mysql、docker);可以看作是一个系统组件(例如:disk、file);还可以看作是一个外部系统(gitfs)。

使用 SaltStack 库中的 Modules 需要注意以下几点:

(1).所有的模块都在 salt 目录下,每个子系统又通过不同的子目录进行区分 ,最后每个具体的 modile 将以单独的 .py 文件呈现出来;

(2).各个模块以 salt.subsystem.module 的格式命名,其中 subsystem 代表子系统,module代表子系统模块名。注意:由于执行(execution)模块是 Salt 最先有的模块,因此其以 salt.module 的形式命名;

(3).各个模块内包含了我们所需的 functions。

 

SaltStack 库中的 Functions:

在 SaltStack 中,Functions 相当于动词。

 

SaltStack 库中 Functions 的形参(Arguments):

1.在命令行模式指定 Functions 的形参

一般而言,Functions 中必选的形参将最先被指定,同时以特定的顺序排列。而非必选的形参则都带有默认值。

当以 Salt 命名行模式调用 Function 时,如果形参没有以 argument=value 的形式指定,而是仅以值的形式指定,那么我们需要以空格隔开,并以特定的顺序指定形参。如果以 argument=value 的形式则无所谓。

例如:定义了如下 Function

>>> salt.modules.useradd.add(name, uid=None, gid=None, groups=None, home=None, shell=None, unique=True, system=False, fullname='',  oomnumber='', workphone='', homephone='', createhome=True, loginclass=None)

则以命令行模式调用如下。

>>> salt '*' user.add fred shell=/bin/zsh

注意:当使用可变形参(可变无名参数 *args 和可变关键字参数 **kw )时,则可变无名形参直接以值形式填入,而可变关键字参数以 argument=value 的形式指定。

例如:指定了 1 个可变无名形参以及 3 个可变关键字形参。

>>> salt '*' network.connect google-public-dns-a.google.com port=53 proto=udp timeout=3

2.状态(State)系统的形参指定

State 系统的形参保存于 state file 中,基于 YAML 的语法。

例如:salt.states.user.present 定义如下。

>>> salt.states.user.present(name, uid=None, gid=None, gid_from_name=False, groups=None, optional_groups=None, remove_groups=True, home=None, createhome=True, password=None, hash_password=False, enforce_password=True, empty_password=False, shell=None, unique=True, system=False, fullname=None, roomnumber=None, workphone=None, homephone=None, loginclass=None, date=None, mindays=None, maxdays=None, inactdays=None, warndays=None, expire=None, win_homedrive=None, win_profile=None, win_logonscript=None, win_description=None)

则在 state file 中,以 YAML 语法指定类似如下。

a state example that calls user.present:

  user.present:

    - name: fred

    - shell: /bin/zsh

 

参考连接:

https://docs.saltstack.com/en/getstarted/system/python.html

以上是 SaltStack 与 Python 程序的结合 的全部内容, 来源链接: utcz.com/z/387437.html

回到顶部