自定义模块和grains
一、自定义模块
saltstack有很多模块,模块的源码文件是在salt项目的:salt/modules.py;
salt linux-node2-computer sys.doc 查看有哪些module
这里file_roots还是/srv/salt/base目录,自定义模块步骤如下:
#新建自定义模块的目录_modules和模块文件
[root@linux-node1 _modules]# pwd
/srv/salt/base/_modules
[root@linux-node1 _modules]# cat f1.py
def charles():
return 'date' #将模块同步到指定客户端
salt '*' saltutil.sync_all #使用
[root@linux-node1 _modules]# salt '*' f1.charles
linux-node2-computer:
date
linux-node1.oldboyedu.com:
date
二、自定义grains
自定义grains也是使用脚本实现的,grains的源码文件是salt项目的salt/grains.py
自定义grains步骤如下:
#新建_grains目录,并创建grains文件
[root@linux-node1 base]# cd _grains/
[root@linux-node1 _grains]# ls
file.py
[root@linux-node1 _grains]# cat file.py
import os
def file():
grains={}
file = os.popen('ulimit -n').read()
grains['file']=file
return grains #同步grains到客户端
salt '*' saltutil.sync_all #运行
root@linux-node1 _grains]# salt '*' grains.item file
linux-node2-computer:
----------
file:
1024
linux-node1.oldboyedu.com:
----------
file:
8192
一个grains文件中可以定义多个grains item
[root@linux-node1 _grains]# vim g1.py def g_func():
grains = {}
grains['charles'] = 'charles'
grains['qq'] = 'QQ'
return grains [root@linux-node1 _grains]# salt '*' grains.item charles
linux-node2-computer:
----------
charles:
5
linux-node1.oldboyedu.com:
----------
charles:
charles
[root@linux-node1 _grains]# salt '*' grains.item qq
linux-node2-computer:
----------
qq:
linux-node1.oldboyedu.com:
----------
qq:
自定义模块和grains的更多相关文章
- 【python】用setup安装自定义模块和包
python解释器查找module进行加载的时候,查找的目录是存放在sys.path变量中的,sys.path变量中包含文件的当前目录.如果你想使用一个存放在其他目录的脚本,或者是其他系统的脚本,你可 ...
- angular(3)服务 --注入---自定义模块--单页面应用
ng内部,一旦发生值改变操作,如$scope.m=x,就会自动轮询$digest队列,触发指定的$watch,调用其回调函数,然后修改dom树. 干货:https://github.com/xufei ...
- python基础知识8——模块1——自定义模块和第三方开源模块
模块的认识 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需 ...
- (02)odoo自定义模块
* 官方建议模块骨架 -------------------------- addons/<my_module_name>/ │─ __init ...
- Func系列3:自定义模块
简介 Func自带的模块已经非常丰富,但在日常系统运维当中,尤其是面对大规模的服务器集群.不同类别的业务平台,次是Func自带的模块或许已经不能满足我们的需求,所以有必要通过自定义模块来填补这块的不足 ...
- Python3导入自定义模块的3种方式
前话 最近跟着廖雪峰的教程学到 模块 这一节.关于如何自定义一个模块,如果大家不懂的话还请先看下面这篇博文 ↓ http://www.liaoxuefeng.com/wiki/001431608955 ...
- Python开发【第一篇】Python基础之自定义模块和内置模块
为什么要有模块,将代码归类.模块,用一砣代码实现了某个功能的代码集合. Python中叫模块,其他语言叫类库. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代 ...
- Nginx模块开发1_明白自定义模块的编译流程
自定义模块的编译流程 --add-module参数 configure使用--add-module参数指定添加模块目录. config脚本 由--add-module指定的目录保存为$ngx-addo ...
- windows 下Python import 导入自定义模块
周末在家研究这个东西,则找到解决方案. 费话少说,上代码 #定义一个自定义的函数,如下 #函数的名称必须是字母和数字的组合,不能用数字开头 #函数名后用小括号括住入参,可以用逗号分隔多个 #如果有返回 ...
随机推荐
- 神州数码广域网Frame-Relay封装配置(即帧中继)
实验要求:了解帧中继的配置方法 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface s0/1 进入端口 ip address ...
- j教你如何用erlang-tuple
元组是用来保存一组数据元素的复合数据类型,其中数据元素是要求为erlang的数据类型,单不一定要是相同的类型,元组使用封闭的花括号{}来定义,里面的元素有逗号隔开. 例如: 1> {1,2,3} ...
- centOS连接没问题,使用SecureCRT就不能连接
原因: 将NAT模式改为自定义的模式即可:
- 10.python面向对象进阶功能
isinstance(obj,cls)和issubclass(sub,super)(1)isinstance(obj,cls)检查一个对象obj是否是一个类cls的实例(2)issubclass(su ...
- js barcode 打印
新建 html <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset=&quo ...
- SSH(远程登录)原理
最近在研究hadoop,因为是分布式的,会涉及很多机器协作工作,但所有的操作都是需要进行权限验证的,namenode主机会尝试启动datanode主机上的进程等等.下面就用一张图来解释SSH登录验证的 ...
- MySQL:日期函数、时间函数总结(MySQL 5.X)
http://www.cnblogs.com/she27/archive/2009/01/16/1377089.html 原文:http://www.51sdj.com/phpcms/picture/ ...
- 使用samba或NFS实现文件共享
- java_线程
线程1 与线程相关的概念 线程与进程的区别 线程创建策略 线程组 线程创建策略 并发应用中一般有两种不同的线程创建策略 1直接控制线程 ...
- ILBC 运行时 (ILBC Runtime) 架构
本文是 VMBC / D# 项目 的 系列文章, 有关 VMBC / D# , 见 <我发起并创立了一个 VMBC 的 子项目 D#>(以下简称 <D#>) https:// ...