转自: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是一款功能强大且流行的自动化工具,用于配置管理、应用程序部署、任务自动化等。Ansible的核心组件是模块,模块是Ansible的基本执行单元。Ansible提供了多种模块,用于不同的自动化任务。 ...
5. Ansible 常用模块 6. Ansible Playbook基本使用 7. Ansible Playbook的结构及handler用法 8. Ansible变量之自定义变量 9. Ansible变量之fact 10. Ansible魔法变量及变量优先级 11. 使用lookup生成变量 12. ...
Linux自动化运维Ansible概述与常用模块 Ansible是一款开源的自动化运维工具,通过使用Ansible,可以实现自动化的配置管理、应用部署、任务自动化等功能。Ansible的核心组件包括模块、插件、Inventory等。其中,模块...
本文档为 Ansible 应用实训报告,总结了 Ansible 的基础知识点,涵盖了 Ansible 的架构、_inventory、ansible.cfg、模块、playbook、YAML 等常用操作。同时,文档还包含了 Ansible 的安装部署、环境配置、 playbook ...
1. Ansible 常用模块(至少 6 个)?常用模块包括copy 模块、file 模块、template 模块、yum 模块、service 模块、template 模块等。 2. Ansible 模块的使用?例如,使用 copy 模块来复制文件,使用 file 模块来定义...
Ansible常用模块包括command模块、copy模块、template模块、yum模块、service模块等。command模块可以在远程主机执行命令,不支持管道、重定向等shell的特性。copy模块可以将文件从ansible管理端复制到被管控主机上...
#### Ansible常用模块 - **获取主机列表**: `ansible all --list-host(s)` - **主机状态检查**: `ansible 主机匹配 -m ping` - **获取模块列表**: `ansible-doc -l` - **获取模块用法**: `ansible-doc -s module` #...
本文将围绕 Ansible 的基本概念、核心组件以及部分常用模块进行详细介绍。 #### 关键概念解析 1. **模块(Module Library)**:Ansible 提供了大量的模块来操作远程主机节点或通过 Playbook 对节点进行管理。这些...
2. Ansible常用模块:Ansible拥有众多模块,如`file`用于文件管理,`copy`用于复制文件,`apt`和`yum`用于包管理,`service`用于服务控制等。这些模块使得Ansible能够覆盖运维中的各种需求。 3. YAML语法简介:YAML...
#### 三、Ansible 常用模块介绍 - **1. ping模块** - **功能**: 测试主机是否可达。 - **用法**: ```bash ansible all -m ping ``` - **示例**: 使用 root 用户进行 ping 测试。 ```bash ansible all -m ...
首先,Ansible的核心命令是`ansible`,用于执行一次性(ad-hoc)命令,通常与主机或主机组结合使用,并且默认使用`command`模块。`ansible-doc`则用于查看Ansible模块的详细信息,例如`ansible-doc -l`列出所有模块...
《BoyChong专用常用模块2.0》是一个针对IT专业人士设计的实用工具集合,它包含了多个在日常开发和运维工作中经常使用的模块。这个压缩包文件是BoyChong为提高工作效率和便捷性而精心整理的资源合集,版本号为2.0,...
4. 使用ansible-doc命令查看模块使用方法。 Ansible的常用命令包括: - ansible-doc -l:列出所有支持的模块。 - ansible-doc <ModuleName>:查看特定模块的使用方法。 基础命令执行的示例: - ansible ...
9. **Ansible Tower的介绍和使用** - 解释Tower的安装、创建Job、执行任务的方法,以及如何利用其高级特性进行企业级的自动化管理。 10. **参考资料** - 提供了YAML语法基础和额外的Ansible模块学习资源,帮助读者...
##### 2.2 常用模块 - **模板模块 (template)**:将本地模板文件传送到远程主机并执行。 - **设置事实 (set_fact)**:动态设置变量。 - **暂停模块 (pause)**:使 Playbook 暂停一段时间。 - **等待模块 (wait_for)*...
Python是编写Ansible模块和插件的常用语言,因此在这个场景下,Python被用于构建与MongoDB交互的自动化脚本。 在压缩包文件"UnderGreen-ansible-role-mongodb-fb8c3f1"中,我们可以期待找到以下内容: 1. **默认...
通过实际的编译安装httpd的playbook示例,可以更直观地学习ansible的使用方法和playbook的编写技巧。 通过以上内容,可以掌握ansible工具及其语法的基本知识和使用技巧,进而在日常工作中应用ansible实现自动化部署...
常见的安装方法包括下载源码编译安装、从Git资源安装以及使用rpm包安装。rpm安装需要配置epel源。 示例配置epel源的命令如下: ``` cat <<eof>>/etc/yum.repos.d/my.repo [epel] name=epel baseurl=*** ***...
### Ansible Facts 管理详解 #### 一、什么是 Ansible Facts?...通过理解和掌握 Ansible Facts 的管理和使用方法,可以帮助用户更高效地管理和配置被管理主机,提高自动化部署和运维工作的灵活性与可靠性。
Ansible 的一些常用组件包括模块、插件、角色等。模块是 Ansible 的一个基本组件,负责执行具体的自动化运维工作。插件是 Ansible 的一个扩展组件,负责提供额外的功能。角色是 Ansible 的一个高级组件,负责定义...