Ansible 模块 1、什么是Ansible模块?...bash无论在命令行上执行,还是bash脚本中,都需要调用cd、ls、copy、yum等命令;模块就是Ansible的“命令”,模块是ansible命令行和脚本中都需要调用的。...常用的Ansible模块有yum、copy、template等。...# 执行的状态返回信息: --绿色:执行成功并且不需要做改变的动作 --黄色:执行成功并且对目标主机做变更 --红色:执行失败 3、Ansible模块 文件模块: copy:将本地文件复制到受控主机...或者ftp下载文件 nmcli:管理网络 uri:与WEB服务交互 3、Ansible 常用模块 1 user模块 参数 解释 name 要创建、修改、移除的用户名 password 设置用户密码。
[TOC] 0x00 快速入门 描述:ansible使用ansible-doc --list可以看见所有的模块,ansble-doc -s模块名称显示模块使用详情; ansible-doc --list...ansible-doc --list | grep "ping" 模块名称及作用一览: fetch 模块:进行文件拉取 copy 模块:进行文件/内容的拷贝 file 模块:进行对文件/目录进行创建与操作...script模块的常用参数: free_form参数 :必须参数,指定需要执行的脚本,脚本位于ansible主机本地,并没有具体的一个参数名叫free_form,具体解释参考command模块。...描述:debug模块的作用就是帮助我们进行调试的,debug模块可以帮助我们把信息输出到ansible控制台上,以便我们能够定位问题 debug参数一览表: msg: [debug信息] #设置...' cacheable=yes echo {{demo}}" include_var模块 描述:可以在playbook运行中动态的加载被修改了的ansible变量参数文件; 模块参数: file :
一、stat模块 stat模块类似linux的stat命令,用于获取文件的状态信息。...https://docs.ansible.com/ansible/latest/modules/stat_module.html#stat-module 获取/etc/fstab文件的状态信息 [root...@manage01 ~]# ansible -m stat 192.168.98.201 -a "path=/etc/fstab" 192.168.98.201 | SUCCESS => {..."ansible_facts": { "discovered_interpreter_python": "/usr/libexec/platform-python" },...常用模块知识图谱
ansible通过各种模块完成操作,除了ping模块,其他模块可以使用如下命令查看 ansible -l 可以用如下方式来获取ping模块的详细信息和介绍,若看到required表示参数必须要有,大多是模块都会有一些参数必须要有...ansible-doc -s ping 例如copy模块,传输文件,这个肯定要指定当前文件和目的目录 echo “one” > a.txt ansible 192.168.56.108 -m copy...ansible的模块非常多,没必要全都学习,先学习一些简单易用的,了解使用方法和原理后,其他模块可以自行学习。按照分类模块大致分为数据库模块、文件模块、命令模块等等,具体可以查看模块索引
一、group模块 group模块用于管理用户组和用户组属性。...https://docs.ansible.com/ansible/latest/modules/group_module.html#group-module 参数 说明 name= 组名 state=...persent|absent 创建|删除 system= yes|no 是否为系统组 gid gid #组创建 [root@manage01 ~]# ansible -m group group1 -...: 4444, "name": "admin", "state": "present", "system": false } #删除组 [root@manage01 ~]# ansible...platform-python" }, "changed": true, "name": "admin", "state": "absent" } 二、学习视频 视频:group模块
一、hostname模块 hostname模块用于修改主机名(注意: 它不能修改/etc/hosts文件) https://docs.ansible.com/ansible/latest/modules.../hostname_module.html#hostname-module 将192.168.98.203机器的主机名修改为zutuanxue_node3 [root@manage01 ~]# ansible...-m hostname -a "name=zutuanxue_node3" 192.168.98.203 192.168.98.203 | CHANGED => { "ansible_facts...": { "ansible_domain": "", "ansible_fqdn": "zutuanxue_node3", "ansible_hostname...}, "changed": true, "name": "zutuanxue_node3" } 备注:批量修改需要使用playbook剧本 二、学习视频 视频:hostname模块
一、script模块 如何通过ansible执行一个脚本:lamp安装脚本 script模块:用于在远程机器上执行本地脚本。...https://docs.ansible.com/ansible/latest/modules/script_module.html#script-module 在manage01上创建脚本,通过ansible...将脚本分发到被管理端 [root@manage01 ~]# cat ansible_test.sh #!.../log \; #脚本不用给执行权限 [root@manage01 ~]# ansible -m script group1 -a "/root/ansible_test.sh" 192.168.98.203...error.log' 为同一文件", "cp: '/opt/log/access.log' 与'/opt/log/access.log' 为同一文件" ] } 二、学习视频 视频:script模块
基于ansible2.9 选项 参数 备注 archive yesno 启用递归、链接、权限、时间、所有者、组 compress yesno 在传输过程中压缩文件,在大多数情况下,请启用该功能 delete
一、fetch模块 fetch模块与copy模块类似,但作用相反。用于把远程机器的文件拷贝到本地。...https://docs.ansible.com/ansible/latest/modules/fetch_module.html#fetch-module 将group1组机器的/opt/readme...manage01的/opt目录 注意:不管是拷贝多个机器还是一个机器的文件,在管理机本地目录都会按照 IP/路径/文件名 的方式命名,防止冲突 [root@manage01 ~]# ansible...remote_checksum": "f8182e9ccdbe6efd13eb36a056a7db203fe66e40", "remote_md5sum": null } 二、学习视频 视频:fetch模块
node1 ~]# 2、 常用模块之command/shell/raw 使用模块 command或者shell或者raw都能调用对象机器上的某条指令或者某个可执行文 command模块,执行远程命令 script...模块 ,在远程主机执行主控端的shell/python脚本 shell模块 ,执行远程主机的shell/python脚本 raw模块 ,类似于command模块、支持管道传递 (1)直接执行脚本 [...setup模块,用于收集对象机器的基本设定信息 (1) 不用option的情况会输出所有相关的对象机器的facts [root@node1 ~]# ansible 192.168.80.133 -...[root@node1 ~]# echo node3 >> /etc/ansible/hosts 使用user模块添加用户 [root@node1 ~]# ansible node3 -m command...=vim state=absent" 使用yum模块删除httpd [root@node1 ~]# ansible node3 -m shell -a "rpm -qa |grep httpd" [WARNING
import ansible.runner import ansible.playbook import ansible.inventory from ansible import callbacks...from ansible import utils 远程执行命令 hosts = [hosts] host_inventory = ansible.inventory.Inventory(hosts)...pm = ansible.runner.Runner(module_name = 'command',module_args = cmds,timeout = 600,inventory = host_inventory...,subset = 'all') out = pm.run() 远程传输文件 hosts = [hosts] host_inventory = ansible.inventory.Inventory(hosts...) pm = ansible.runner.Runner(module_name = 'copy',module_args = 'src='+file_path+' dest='+file_path+'
一、copy模块(重点) copy模块用于对文件的远程拷贝操作(如把本地的文件拷贝到远程的机器上) https://docs.ansible.com/ansible/latest/modules/copy_module.html...模块拷贝时要注意拷贝目录后面是否带"/"符号 /etc/yum.repos.d后面不带/符号,则表示把/etc/yum.repos.d整个目录拷贝到/tmp/目录下 [root@manage01 ~]#.../目录里的所有文件拷贝到/tmp/目录下 [root@manage01 ~]# ansible group1 -m copy -a 'src=/etc/yum.repos.d/ dest=/tmp/'...使用content参数直接往远程文件里写内容(会覆盖原内容) [root@manage01 ~]# ansible -m file group1 -a "path=/tmp/zutuanxue_333...group1 -m copy -a "src=/etc/fstab dest=/tmp/zutuanxue_333 backup=yes" 二、学习视频 视频:copy模块
ansible模块定制开发 ansible做为流行的运维自动化工具,异常强大与好用,自身带了诸多的通用模块,在日常工作中,基本能满足需求,但是需求是变化多端的,尤其是在结合业务的时候,ansible就不是很给力了...,这就是需要我们定制开发自己的模块,在ansible运行框架下,更好的服务的我们的业务。...现以pids.py模块进行讲解,该文件位于ansible/modules/system/pids.py,一旦你理解模块的基本开发流程,就可以开发的模块,让自己的能力更上一层楼: #!...参数定义 from ansible.module_utils.basic import AnsibleModule 在模块开发的过程中,主要依赖AnsibleModule模块,来与ansible...模块的存放位置 模块开发完成,那ansible是如何找到我们自定义的模块的呢? Ansible自动将在某些目录中找到的所有可执行文件作为模块加载,因此您可以在以下任何位置创建或添加本地模块: 1.
一、setup模块 setup模块用于收集远程主机的基本信息(如操作系统类型,主机名,ip,cpu信息,内存信息等) #打印192.168.98.201机器的所有信息 [root@manage01 ~]...-a "filter='ansible_ens*'" 192.168.98.201 | SUCCESS => { "ansible_facts": { "ansible_ens33...ansible_memtotal_mb:显示系统总内存。 ansible_memfree_mb:显示可用系统内存。 ansible_memory_mb:详细显示内存情况。...ansible_swaptotal_mb:显示总的swap内存。 ansible_swapfree_mb:显示swap内存的可用内存。 ansible_mounts:显示系统磁盘挂载情况。...ansible_processor:显示cpu个数(具体显示每个cpu的型号)。 ansible_processor_vcpus:显示cpu个数(只显示总的个数)。 二、学习视频 视频:setup模块
环境 [root@workstation ansible]# cat /etc/ansible/hosts [myhosts] 192.168.1.110 192.168.1.111 模块用法 模块...如果命令比较短可以一行写完 ansible myhosts -m shell -a "df -hT|sed '1d'|head -1" script模块 如果命令比较多可以写成一个脚本,然后使用ansible..." stat模块 显示远程主机文件的超级详细的信息 ansible myhosts -m stat -a "path=/tmp/hosts" yum模块 name...模块 开启路由转发 ansible -i /etc/ansible/hosts myhosts -m sysctl -a "name=net.ipv4.ip_forward value=1 reload...1: 使用python的crypt模块 使用python的crypt模块 [root@ansible ~]#python >>> import crypt >>> crypt.crypt('ononon
管理用户 选项 参数 备注 append yesno 如果为yes,把用户添加到指定的组如果为no,仅将用户添加到指定的组中,并将其从其他组中移除 create...
管理远程主机的定时任务 选项 参数 备注 day 默认值:* 天。1-31、、/2 disabled yesno 注释该定时任务,使任务失效 hour 默认值:...
一、yum模块 yum模块用于使用yum命令来实现软件包的安装与卸载。...https://docs.ansible.com/ansible/latest/modules/yum_module.html#yum-module 参数 说明 name 需要安装软件包的名称 list...=> { "ansible_facts": { "discovered_interpreter_python": "/usr/libexec/platform-python"...-m yum 192.168.98.201 -a "state=absent name=vsftpd" 192.168.98.201 | CHANGED => { "ansible_facts...", "rc": 0, "results": [ "Removed: vsftpd-3.0.3-28.el8.x86_64" ] } 二、学习视频 视频:yum模块
经过前面的介绍,我们已经熟悉了 Ansible 的一些常识性的东西和如何编译安装Ansible,从本章开始我们将全面介绍 Ansible 的各种生产常用模块,这些也是我们使用 Ansible 的过程中必须掌握的重点...,本章将介绍和使用 Ansible 中经常使用的一些模块,大体模块分为: 文件操作类,命令执行类,系统管理类,等使我们能对 Ansible 有一个全面的了解.命令执行模块◆Command◆Command...模块是Ansible的默认调用模块,它可以帮助我们在远程主机上执行任意命令,但是需要注意的是,使用Command模块执行命令时,如果需要执行的命令是单一的命令那没什么,但如要需要使用含有管道符,重定向,...中我们可以使用copy模块本模块的作用就是拷贝文件它与fetch模块类似,不过fetch模块是从远程主机中拉取文件到 ansible 管理主机,而 copy 模块是将 ansible 管理主机上的文件拷贝到远程主机中.../tmp/ansible-tmp-1544005363.57-45479136087498/source" ]文本修改模块◆Replace◆replace 模块可以根据我们指定的正则表达式替换文件中的字符串
领取专属 10元无门槛券
手把手带您无忧上云