SaltStack netapi 模块总体介绍

Introduction to netapi modules - netapi模块介绍

您也可以参考在Github上维护的这一份技术资料:SaltStack netapi模块开发指南

netapi模块提供了以API为中心的对Salt的访问支持。 通常是面向外部的服务调用,例如REST或WebSockets,XMPP,XMLRPC等。

通常,netapi模块绑定到一个端口并启动服务,对外部应用提供Salt管理服务。 可以单个模块运行,也可以同时运行多个模块。

通过将配置添加到Salt Master配置文件中,然后启动salt-api守护程序来启用netapi模块。 在使用前请检查每个模块的文档以查看外部依赖要求和配置设置。

与Salt和Salt 周边卫星项目的通信是使用Salt自己的Python API完成的。 可用客户端接口的列表如下。

salt-api

在Salt的2014.7.0发行版之前,netapi模块存在于单独的姊妹项目salt-api中。 目前,该项目已合并到Salt项目的主干分支中。

Client interfaces - 客户端接口

Salt的客户端接口通过制作映射到函数参数的值的字典来对外暴露可执行的功能函数。 这允许仅通过创建数据结构来调用函数。 (而这也正是Salt自己内部的工作方式!)

class salt.netapi.NetapiClient(opts)

提供一种以low-data数据结构形式访问Salt中各种客户端接口的统一方法。 例如:

>>> client = NetapiClient(__opts__)
>>> lowstate = {'client': 'local', 'tgt': '*', 'fun': 'test.ping', 'arg': ''}
>>> client.run(lowstate)

HTTP Modules

本教程演示了Salt中可用的各种HTTP模块,它们分布于多个其它的Salt核心功能模块里。 这些模块通过包装Python tornadourllib2requests库,以使用与Salt工作流更一致的方式扩展它们。

Writing netapi modules

简单地说,netapi模块绑定一个服务端口并启动服务。 它们是开放式的,可以用来为Salt提供各种外部接口,甚至可以同时提供多个接口。

CONFIGURATION

所有netapi配置均在Salt master配置中完成,并采用类似于以下的形式:

rest_cherrypy:
  port: 8000
  debug: True
  ssl_crt: /etc/pki/tls/certs/localhost.crt
  ssl_key: /etc/pki/tls/certs/localhost.key

THE __VIRTUAL__ FUNCTION

与Salt中的所有模块类型一样,netapi模块会通过Salt的加载程序接口来确定是否应将其加载到内存中然后执行。

模块中的__virtual__函数进行此确定,并应返回False或将用作模块名称的字符串。 如果模块引发ImportError或任何其他错误,则将不会加载该模块。

THE START FUNCTION

将为每个已加载的netapi模块调用start()函数。 此函数应包含实际启动服务的代码。 这是使用multiprocess多进程启动的。

MULTIPLE INSTANCES

New in version 2016.11.0.

rest_cherrypyrest_tornado支持通过复制和重命名实例的整个目录来运行多个实例。 要启动复制出来的多个netapi模块,请在Salt Master配置中为复制得到的netapi模块添加相应的配置块。 每个添加的配置块的名称必须与复制得到的netapi模块的每个目录的名称匹配。

INLINE DOCUMENTATION

与Salt的其余部分一样,最佳实践是在netapi模块中的类、方法和函数上添加适当的注释说明。

LOADER “MAGIC” METHODS

Salt加载器使得netapi模块中的任意函数都可以访问到 __opts__ 配置数据。

The full list of netapi modules - netapi模块的三种技术实现方案

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
netapi32.dll是Windows操作系统中的一个动态链接库文件,它包含了一些网络相关的函数和接口。当系统出现无法替换netapi32.dll的问题时,可能会导致一些网络功能无法正常运行或者出现错误。 造成netapi32.dll无法替换的原因可能有多种,下面是一些可能的原因和解决方法: 1. 文件被其他程序占用:有时候netapi32.dll文件可能被其他正在运行的程序占用,导致无法替换。此时我们可以通过重启计算机,退出所有正在运行的程序,然后再尝试替换netapi32.dll文件。 2. 没有足够的权限:有时候替换系统文件需要管理员权限,如果当前用户没有足够的权限,则无法进行替换。此时我们可以尝试以管理员身份运行替换操作,或者在文件属性中设置当前用户为文件的所有者。 3. 文件损坏或被破坏:如果netapi32.dll文件本身损坏或被破坏,那么就无法进行正常的替换。此时我们可以尝试从Windows安装盘或者官方网站上下载一个新的netapi32.dll文件,并替换原有的文件。 4. 系统保护:有时候Windows操作系统会对一些核心文件进行保护,防止被替换。如果netapi32.dll是受到保护的文件,那么我们需要关闭系统保护功能,然后再尝试替换。 需要注意的是,在进行替换操作之前,我们应该备份原有的netapi32.dll文件,以防替换失败后能够恢复到原来的状态。此外,如果替换操作仍然无法成功,可能需要进行更进一步的系统故障排查或者寻求专业技术支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值