• SaltStack 与 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
  • 相关阅读:
    BBS项目
    form组件
    auth模块
    模板语言
    内置auth 的使用,用超级用户创建
    django文件上传
    django序列化问题
    SPI Flash的操作
    输入捕获实验
    uc os相关的C语言知识点1-函数指针
  • 原文地址:https://www.cnblogs.com/autopenguin/p/7447408.html
Copyright © 2020-2023  润新知