转自:http://blog.csdn.net/iloveyin/article/details/46982023
ansible 默认提供了很多模块来供我们使用。在 Linux 中,我们可以通过 ansible-doc -l 命令查看到当前 ansible 都支持哪些模块,通过 ansible-doc -s 模块名 又可以查看该模块有哪些参数可以使用。
下面介绍比较常用的几个模块:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
copy模块
file 模块
cron 模块
group模块
user模块
yum模块
service模块
script模块
ping 模块
command 模块
raw模块
get_url模块
synchronize模块
|
copy模块:
目的:把主控端/root目录下的a.sh文件拷贝到到指定节点上
命令:ansible 10.1.1.113 -m copy -a 'src=/root/a.sh dest=/tmp/'
执行效果:
file模块:
目的:更改指定节点上/tmp/t.sh的权限为755,属主和属组为root
命令:ansible all -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root"
执行效果:
cron模块:
目的:在指定节点上定义一个计划任务,每隔3分钟到主控端更新一次时间
命令:ansible all -m cron -a 'name="custom job" minute=*/3 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate 172.16.254.139"'
执行效果:
group模块:
目的:在所有节点上创建一个组名为nolinux,gid为2014的组
命令:ansible all -m group -a 'gid=2014 name=nolinux'
执行效果:
user模块:
目的:在指定节点上创建一个用户名为nolinux,组为nolinux的用户
命令:ansible 10.1.1.113 -m user -a 'name=nolinux groups=nolinux state=present'
执行命令:
补充:删除用户示例
yum模块:
目的:在指定节点上安装 lrzsz 服务
命令:ansible all -m yum -a "state=present name=httpd"
执行效果:
service模块:
目的:启动指定节点上的 puppet 服务,并让其开机自启动
命令:ansible 10.1.1.113 -m service -a 'name=puppet state=restarted enabled=yes'
执行效果:
script模块:
目的:在指定节点上执行/root/a.sh脚本(该脚本是在ansible控制节点上的)
命令:ansible 10.1.1.113 -m script -a '/root/a.sh'
执行效果:
ping模块:
目的:检查指定节点机器是否还能连通
命令:ansible 10.1.1.113 -m ping
执行效果:
command模块:
目的:在指定节点上运行hostname命令
命令:ansible 10.1.1.113 -m command -a 'hostname'
执行效果:
raw模块:
目的:在10.1.1.113节点上运行hostname命令
命令:ansible 10.1.1.113 -m raw-a 'hostname|tee'
执行效果:
get_url模块:
目的:将http://10.1.1.116/favicon.ico文件下载到指定节点的/tmp目录下
命令:ansible 10.1.1.113 -m get_url -a 'url=http://10.1.1.116/favicon.ico dest=/tmp'
执行效果:
synchronize模块:
目的:将主控方/root/a目录推送到指定节点的/tmp目录下
命令:ansible 10.1.1.113 -m synchronize -a 'src=/root/a/ dest=/tmp/ compress=yes'
执行效果:
delete=yes 使两边的内容一样(即以推送方为主)
compress=yes 开启压缩,默认为开启
--exclude=.git 忽略同步.git结尾的文件
由于模块,默认都是推送push。因此,如果你在使用拉取pull功能的时候,可以参考如下来实现
mode=pull 更改推送模式为拉取模式
目的:将10.1.1.113节点的/tmp/a目录拉取到主控节点的/root目录下
命令:ansible 10.1.1.113 -m synchronize -a 'mode=pull src=/tmp/a/ dest=/root/'
执行效果:
由于模块默认启用了archive参数,该参数默认开启了recursive, links, perms, times, owner,group和-D参数。如果你将该参数设置为no,那么你将停止很多参数,比如会导致如下目的递归失败,导致无法拉取
其它相关的参数解释:
1
2
3
|
dest_port=22
rsync_path
rsync_timeout
|
OK!
以上暂且列举这些日常运维中经常会用到的一些模块,更多的模块信息后期会继续完善,大家也可以去官网查看更多的信息。
官网地址:http://docs.ansible.com/synchronize_module.html
相关推荐
Ansible常用模块
ansible的常用模块和playbook-全(cent7.x)
@author 刘振伟 @QQ 570962906 Ansible拥有大量的模块(module library)来操作远程主机节点或者通过playbook对节点操作。
docker-ansible, 用于 Docker的Ansible模块注 注意:这个模块现在是Ansible内核的一部分,请参见 https://github.com/ansible/ansible ...用于 Docker的 Ansible模块这个模块允许你使用 Ansible 管理 Docker 容器的部署
ansible常用模块知识汇总(一) 模块一:find模块 作用:查找文件、目录 常用参数: paths:必要参数,指定在哪个目录查找。可以指定多个路径,用逗号隔开。也可以使用path patterns:指定要查找的文件名,默认是...
ansible-vultr, 用于管理Vultr服务器的Ansible模块 ansible-vultr用于管理 Vultr 上服务器的Ansible模块。 目前该模块只支持服务器的创建和销毁。安装$ cd path-to-playbook-dir$ mkdir library$ git cl
ansible使用以及常用模块介绍.md
该模块已添加到Ansible核心模块中,在这里寻找启示! 因此,该模块不再更新,并且已经过时了。 Ansible GlusterFS模块,用于管理GlusterFS卷。 样本剧本 --- - hosts: gluster-test remote_user: root tasks: -...
NULL 博文链接:https://listen-raining.iteye.com/blog/2335157
5. Ansible 常用模块 6. Ansible Playbook基本使用 7. Ansible Playbook的结构及handler用法 8. Ansible变量之自定义变量 9. Ansible变量之fact 10. Ansible魔法变量及变量优先级 11. 使用lookup生成变量 12. ...
Linux自动化运维ansible概述与常用模块
ansible环境部署 1.准备6台虚拟机 ansible 192.168.1.40 管理主机 ansible 192.168.1.41 托管主机 ansible 192.168.1.42 托管主机 ansible 192.168.1.43 托管主机 ansible 192.168.1.44 托管主机 ansible 192.168....
一个 Ansible 模块,用于使用套接字处理来自 haproxy 的状态启用/禁用服务器。 显示后端服务器的当前和当前权重是两种状态的默认值,如果在启用后端服务器时提供,它也会为服务器设置权重。 例子 # disable server...
Ansible自动化运维全套笔记,适合新手小白,包含ansible安装教程,ansible常用模块。变量,事实
ansible_iptables_raw, 用于Ansible的iptables模块,可以保持状态 iptables_raw用于Ansible的MODULE,它可以轻松管理 ...文档MODULE 文档插件使用Ansible管理Iptables是一个简单的方法- 博客文章安装要使用 iptable
Ansible思科小型业务交换机(SMB)模块 适用于Cisco SMB交换机的Ansible Galaxy模块-SG300,SG500,SG350,SG550 安装 ansible-galaxy collection install qaxi.ciscosmb 利用 在SG350-28-K9,SG500-52-K9,SG550X-...
用法Ansible模块,用于对字符串,文件和命令输出进行通用差异。争论名称必需的默认描述来源是的diff的源输入。 可以是字符串,文件内容或命令的输出,具体取决于source_type 目标是的diff的目标输入。 可以是字符串...
ansible-lvm 使用 playbook 运行基本 lvm 命令的 ansible 模块