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

html,body { font-size: 12pt }
body { font-family: Helvetica, "Hiragino Sans GB", "微软雅黑", "Microsoft YaHei UI", SimSun, SimHei, arial, sans-serif; line-height: 1.6; margin: 0 auto; padding: 1.25rem 1rem }
h1,h2,h3,h4,h5,h6 { margin: 1.25rem 0 0.625rem; padding: 0; font-weight: bold }
h1 { font-size: 1.67rem }
h2 { font-size: 1.5rem }
h3 { font-size: 1.25rem }
h4 { font-size: 1.17rem }
h5 { font-size: 1rem }
h6 { font-size: 1rem; color: #777777; margin: 1rem 0 }
div,p,ul,ol,dl,li { margin: 0 }
blockquote,table,pre,code { margin: 8px 0 }
ul,ol { padding-left: 2rem }
ol.wiz-list-level1>li { list-style-type: decimal }
ol.wiz-list-level2>li { list-style-type: lower-latin }
ol.wiz-list-level3>li { list-style-type: lower-roman }
blockquote { padding: 0 0.75rem }
blockquote>:first-child { margin-top: 0 }
blockquote>:last-child { margin-bottom: 0 }
img { border: 0; max-width: 100%; height: auto !important; margin: 2px 0 }
table { border-collapse: collapse; border: 1px solid #bbbbbb }
td,th { padding: 4px 8px; border-collapse: collapse; border: 1px solid #bbbbbb; min-height: 28px }
.wiz-hide { display: none !important }

SaltStack 与 Python 程序的结合的更多相关文章

  1. 运行python程序

    1 在windows下运行python程序 1)从DOS命令行运行python脚本 用python解释器来执行python脚本,在windows下面python解释器是python.exe,我的pyt ...

  2. 【python之路2】CMD中执行python程序中文显示乱码

    在IDLE中执行下面代码,中文显示正常: # -*- coding:utf-8 -*- st=raw_input("请输入内容")print st 但在CMD中执行e:\hello ...

  3. Python程序高效地调试

    现在我在debug python程序就只是简单在有可能错误的地方print出来看一下,不知道python有没像c++的一些IDE一样有单步调试这类的工具?或者说各位python大神一般是怎么debug ...

  4. python学习笔记-python程序运行

    小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...

  5. python程序一直在后台运行的解决办法

    刚写了个python程序,要一直在后台运行,即使断开ssh进程也在,下面是解决办法: 假如Python程序为test.py 编写shell脚本start.sh #!/bin/bash python t ...

  6. 第一个python程序

    一个python程序的两种执行方式: 1.第一种方式是通过python解释器: cmd->python->进入python解释器->编写python代码->回车. 2.第二种方 ...

  7. Python程序的首行

    >问题 >>在一些python程序中的首行往往能够看见下面这两行语句中的一句 >>>#!/usr/bin/Python >>>#!/usr/bin ...

  8. Python程序员的进化史

    各种程序员所写的阶乘算法代码 # -*- coding: utf-8 -*- #新手程序员(递归) def factorial(x): if x == 0: return 1 else: return ...

  9. Python程序的常见错误(收集篇)

    关于Python Python是一门解释性的,面向对象的,并具有动态语义的高级编程语言.它高级的内置数据结构,结合其动态类型和动态绑定的特性,使得它在快速应用程序开发(Rapid Applicatio ...

随机推荐

  1. Effective Java 第三版——25. 将源文件限制为单个顶级类

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  2. .23-浅析webpack源码之事件流compilation(1)

    正式开始跑编译,依次解析,首先是: compiler.apply( new JsonpTemplatePlugin(options.output), // start new FunctionModu ...

  3. LNMP 与 LAMP 架构的区别及配置解决方案

    2014-12-31 10:33| 发布者: digitser| 查看: 5618| 评论: 0|原作者: liangsheng 摘要: LNMP 与 LAMP 架构的区别及配置解决方案 LNMP 的 ...

  4. dede添加会员功能听语音

    http://jingyan.baidu.com/article/363872ec36d33f6e4ba16fb7.html 其实 dede里面的 会员功能就是圈子模版啦 圈子 安装了 基本上有 1, ...

  5. python_协程方式操作数据库

    # !/usr/bin/python3 # -*- coding: utf-8 -*- import requests import gevent import pymysql from gevent ...

  6. Linux实践篇--自动删除n天前日志

    原文出处:http://www.cnblogs.com/peida/archive/2013/03/25/2980121.html linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在 ...

  7. Servlet--转发和重定向

    Servlet的跳转有2种,一种是转发,一种是重定向. 重定向: <strong><span style="font-size:14px;"></sp ...

  8. http常见状态码(转载)

    常见HTTP状态码 常见HTTP状态码 200 OK 301 Moved Permanently 302 Found 304 Not Modified 307 Temporary Redirect 4 ...

  9. js面向对象之继承那点事儿根本就不是事

    继承 说道这个继承,了解object-oriented的朋友都知道,大多oo语言都有两种,一种是接口继承(只继承方法签名):一种是实现继承(继承实际的方法) 奈何js中没有签名,因而只有实现继承,而且 ...

  10. struts2.xml的配置问题

    1.<package namespace="/"></package> namespace决定访问action的路径: 如果省略,将代表任意路径: 2.&l ...