ansible模块编写

一直不知道这个模块到底在哪,并且也挺想搞清楚官方那些模块到底在哪个目录下。
1.使用grep -rl "copy.py" /usr/lib/python2.7/site-packages/ansible(这个目录是专门放ansible源码目录的)
然后找到是/usr/lib/python2.7/site-packages/ansible/modules/files/copy.py这个文件,这里需要注意的是如果你安装ansible用过copy这个模块,那么可能就不会是copy.py这个文件,就变成两个文件,一个是copy.pyc,一个是copy.pyo

2.两个文件说下作用,
pyc文件,是python编译后的字节码(bytecode)文件。只要你运行了py文件,python编译器就会自动生成一个对应的pyc字节码文件。这个pyc字节码文件,经过python解释器,会生成机器码运行(这也是为什么pyc文件可以跨平台部署,类似于java的跨平台,java中JVM运行的字节码文件)。下次调用直接调用pyc,而不调用py文件。直到你这个py文件有改变。python解释器会检查pyc文件中的生成时间,对比py文件的修改时间,如果py更新,那么就生成新的pyc。
pyo文件,是python编译优化后的字节码文件。pyo文件在大小上,一般小于等于pyc文件。其实也就是将源码的断言去除了。
如果想得到某个py文件的pyo,则可以运行:python -O -m py_compile yourfile.py

3.至于你想看运行过的一些模块源码,可以直接去https://github.com/ansible/ansible去看

原文地址:http://blog.51cto.com/9237101/2344391

时间: 2024-11-08 15:43:49

ansible模块编写的相关文章

ansible剧本编写

作者:Georgekai 归档:学习笔记 2018/1/31 ansible剧本编写 1.1.1 ansible基于口令方式免交互登录 1.编辑/etc/ansible/hosts管理配置文件,实现基于口令免交互登录 vim /etc/ansible/hosts [client] 172.16.1.7 172.16.1.31 ansible_ssh_user=root ansible_ssh_pass=123456 172.16.1.41 2.测试是否需要进行交互登录 [[email prote

第4天:Ansible模块

Ansible对远程服务器的实际操作实际是通过模块完成的,其工作原理如下: 1)将模块拷贝到远程服务器 2)执行模块定义的操嘴,完成对服务器的修改 3)在远程服务器中删除模块 需要说明的是,Ansible中的模块是幂等的.也就是说,多次执行相同的操作,只有第一次会起作用.这也是在编写自定义Ansible模块的需要注意的地方. Ansible提供了大量的模块,ansible-doc命令用于在命令行查看模块列表,也可以使用该工具在命令行获取模块帮助信息 ansible-doc -l 下面命令用户获取

nginx自定义模块编写-根据post参数路由到不同服务器

nginx可以轻松实现根据不同的url 或者 get参数来转发到不同的服务器,然而当我们需要根据http包体来进行请求路由时,nginx默认的配置规则就捉襟见肘了,但是没关系,nginx提供了强大的自定义模块功能,我们只要进行需要的扩展就行了. 我们来理一下思路,我们的需求是: nginx根据http包体的参数,来选择合适的路由 在这之前,我们先来考虑另一个问题: 在nginx默认配置的支持下,能否实现服务器间的跳转呢?即类似于状态机,从一个服务器执行OK后,跳转到另一台服务器,按照规则依次传递

ansible模块yum、services、setup

ansible模块 yum: [[email protected] ~]# ansible-doc -s yum less 436 Copyright (C) 1984-2009 Mark Nudelman less comes with NO WARRANTY, to the extent permitted by law. For information about the terms of redistribution, see the file named README in the l

ansible模块command、shell、raw、script

环境: ansible端: ip:192.168.100.129 hostname:node1.lansgg.com client端: ip:192.168.100.131 hostname:v2.lansgg.com ip:192.168.100.132 hostname:v3.lansgg.com [[email protected] ansible]# pwd /etc/ansible [[email protected] ansible]# cat hosts [testservers]

linux内核hello world模块编写

#include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> int param = 0; /* 设备模块注册时执行的初始化函数 */ static int __init initialization_module(void) { printk("Hello world.\n"); printk("param = %d.\n", param)

scapy编写简单的ARP扫描脚本 本课程基于 Python 的 scapy 模块编写,适合有 Python 基础的同学学习,最终完成一个简单的 ARP 扫描脚本。

scapy编写简单的ARP扫描脚本 本课程基于 Python 的 scapy 模块编写,适合有 Python 基础的同学学习,最终完成一个简单的 ARP 扫描脚本.

Nginx自定义模块编写:根据post参数路由到不同服务器

Nginx自定义模块编写:根据post参数路由到不同服务器 2014-05-05 15:27 blogread IT技术博客 字号:T | T Nginx可以轻松实现根据不同的url 或者 get参数来转发到不同的服务器,然而当我们需要根据http包体来进行请求路由时,Nginx默认的配置规则就捉襟见肘了,但是没关系,Nginx提供了强大的自定义模块功能,我们只要进行需要的扩展就行了. 我们来理一下思路,我们的需求是: Nginx根据http包体的参数,来选择合适的路由 在这之前,我们先来考虑另

基于Asterisk的VoIP开发指南——Asterisk 模块编写指南(1)

原文:基于Asterisk的VoIP开发指南--Asterisk 模块编写指南(1) 1 开源项目概述 Asterisk是一个开源的软件包,通常运行在Linux操作系统平台上.Asterisk可以用三种协议来实现VoIP,同时可以与目前电话使用的标准硬件进行交互通信,Asterisk在实现VoIP时,不需要任何附加硬件,本文所采用的也是这种使用方式.但是,如果企业没有与VoIP语音网关运营商建立合作关系,想要自己构建这样的一个平台,那么要和数字电话设备与模拟电话设备进行交互通信,Asterisk