Ansible 模块 1、什么是Ansible模块?...bash无论在命令行上执行,还是bash脚本中,都需要调用cd、ls、copy、yum等命令;模块就是Ansible的“命令”,模块是ansible命令行和脚本中都需要调用的。...常用的Ansible模块有yum、copy、template等。...或者ftp下载文件 nmcli:管理网络 uri:与WEB服务交互 3、Ansible 常用模块 1 user模块 参数 解释 name 要创建、修改、移除的用户名 password 设置用户密码。...也可以使用’u+rwx’ or 'u=rw,g=r,0=r’等 方式设置 src ansible控制器上Jinja2格式的模板所在位置,可以是相对或绝对路径 validate 在复制到目标主机后但放到目标位置之前
[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 :
写在前面 今天和小伙伴分享使用lookup插件模板化外部数据 博文内容比较简单 主要介绍的常用lookup插件和对应的Demo 外部数据如何代替cat等通过lookup插件读取 理解不足小伙伴帮忙指正...食用方式:了解Ansible基础语法 「运维箴言:重启试试 」 ---- lookup插件 lookup 插件是 Jinja2 模板化语言的 Ansible 扩展。...我们随便看一个模块 ┌──[root@vms81.liruilongs.github.io]-[~/ansible] └─$ansible-doc -t lookup vars > VARS (/...0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 json也是一样的,我们来看一下,这是传递一个docker加速器设置...使用 k8s模块来管理 Kubernetes 集群。
一、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模块
ansible通过各种模块完成操作,除了ping模块,其他模块可以使用如下命令查看 ansible -l 可以用如下方式来获取ping模块的详细信息和介绍,若看到required表示参数必须要有,大多是模块都会有一些参数必须要有...ansible-doc -s ping 例如copy模块,传输文件,这个肯定要指定当前文件和目的目录 echo “one” > a.txt ansible 192.168.56.108 -m copy...ansible的模块非常多,没必要全都学习,先学习一些简单易用的,了解使用方法和原理后,其他模块可以自行学习。按照分类模块大致分为数据库模块、文件模块、命令模块等等,具体可以查看模块索引
一、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" },...常用模块知识图谱
一、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模块
环境 [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
一、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模块
管理用户 选项 参数 备注 append yesno 如果为yes,把用户添加到指定的组如果为no,仅将用户添加到指定的组中,并将其从其他组中移除 create...
一、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模块
ansible模块定制开发 ansible做为流行的运维自动化工具,异常强大与好用,自身带了诸多的通用模块,在日常工作中,基本能满足需求,但是需求是变化多端的,尤其是在结合业务的时候,ansible就不是很给力了...,这就是需要我们定制开发自己的模块,在ansible运行框架下,更好的服务的我们的业务。...模块返回值 在使用ansible-playbook时,我们需要保存模块执行的返回值来进行后续的处理,那如何让模块正常返回内容,同样以pids.py的内容为例,我们可以看到这样的代码: module.exit_json...当执行这句代码时,整个模块就会正常退出,继续后面的task。 4. 异常处理 是程序就会有异常,这是我们不可避免的,你永远不会想到别人如何使用你的模块。...模块的存放位置 模块开发完成,那ansible是如何找到我们自定义的模块的呢? Ansible自动将在某些目录中找到的所有可执行文件作为模块加载,因此您可以在以下任何位置创建或添加本地模块: 1.
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+'
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
基于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模块
一、file模块(重点) file模块用于对文件或文件夹相关的操作,主要用来设置文件、链接、目录的属性,或者移除文件、链接、目录,很多其他的模块也会包含这种作用,例如copy,assemble和template...https://docs.ansible.com/ansible/latest/modules/file_module.html#file-module 参数 说明 path 文件绝对路径 state...设置所属的组 mode 权限 0000 recurse 递归 yes or no 文件的创建 在所有的业务机器的/tmp下创建一个文件:zutuanxue [root@manage01 ~]# ansible...-m file group1 -a "path=/tmp/zutuanxue state=touch" 192.168.98.202 | CHANGED => { "ansible_facts...}, "changed": true, "path": "/tmp/zutuanxue123", "state": "absent" } 二、学习视频 视频:file模块
Ansible 中的 copy 模块用于将文件或目录从本地计算机或远程主机复制到远程主机上的特定位置。...它是一个功能强大的模块,可用于各种文件传输任务.作用将配置文件复制到远程服务器将应用程序部署到远程服务器将日志文件从远程服务器复制到本地计算机备份和恢复文件和目录copy 模块的主要特性简单高效:轻松复制文件和目录...强制覆盖:提供强制覆盖现有文件的选项,确保无论以前的内容如何都会应用更改。条件执行:根据目标文件的存在启用条件执行,防止不必要的复制。...模板支持:与 Ansible 模板功能集成,允许在文件传输期间插入动态内容。copy 模块的常见用例分发配置文件:将 .conf 或 .ini 文件等配置文件部署到远程计算机以获得一致的系统设置。...Ansible 通常会出于处理目的创建临时文件。"state": "file" :表示对文件进行操作的模块。
领取专属 10元无门槛券
手把手带您无忧上云