`

ansible常用模块用法

 
阅读更多

转自: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/'

    执行效果:

wKioL1TB_EWytdwHAALpQ_NZj_Y676.jpg

 

 

 

file模块:

    目的:更改指定节点上/tmp/t.sh的权限为755,属主和属组为root

    命令:ansible all -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root"

    执行效果:

spacer.gifwKiom1TB-23S6GIaAAFkf3LCV0I648.jpg

 

cron模块:

    目的:在指定节点上定义一个计划任务,每隔3分钟到主控端更新一次时间

    命令:ansible all -m cron -a 'name="custom job" minute=*/3 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate 172.16.254.139"'

    执行效果:

wKioL1TB_EXAZ9npAAKlZcJk-2A313.jpg

 

group模块:

    目的:在所有节点上创建一个组名为nolinux,gid为2014的组

    命令:ansible all -m group -a 'gid=2014 name=nolinux'

    执行效果:

spacer.gifwKiom1TB-22w2EHsAAEyGxpaZ1Q696.jpg

 

user模块:

    目的:在指定节点上创建一个用户名为nolinux,组为nolinux的用户

    命令:ansible 10.1.1.113 -m user -a 'name=nolinux groups=nolinux state=present'

    执行命令:

wKioL1TB_EajzhgWAAKh8udIwfU616.jpg

补充:删除用户示例

spacer.gifwKiom1TB-27BpMDGAAJUaZVZKlQ882.jpg

 

yum模块:

    目的:在指定节点上安装 lrzsz 服务

    命令:ansible all -m yum -a "state=present name=httpd"

    执行效果:

wKioL1TB_EaTCw3xAAo06fOJT9o358.jpg

 

service模块:

    目的:启动指定节点上的 puppet 服务,并让其开机自启动

    命令:ansible 10.1.1.113 -m service -a 'name=puppet state=restarted enabled=yes'

    执行效果:

wKiom1TB-27BK1j6AAE7uhMosLQ824.jpgspacer.gif

 

script模块:

    目的:在指定节点上执行/root/a.sh脚本(该脚本是在ansible控制节点上的)

    命令:ansible 10.1.1.113 -m script -a '/root/a.sh'

    执行效果:

wKioL1TB_EehJLUgAAFvF7DUzTA542.jpgspacer.gif

 

ping模块:

    目的:检查指定节点机器是否还能连通

    命令:ansible 10.1.1.113 -m ping

    执行效果:

wKioL1TB_EfDOcX3AAD56pSs8vw739.jpg

 

command模块:

    目的:在指定节点上运行hostname命令

    命令:ansible 10.1.1.113 -m command -a 'hostname'

    执行效果:

wKiom1TB-2_TVLsoAAH9514heiw532.jpgspacer.gif

 

raw模块:

    目的:在10.1.1.113节点上运行hostname命令

    命令:ansible 10.1.1.113 -m raw-a 'hostname|tee'

    执行效果:

wKioL1TB_EfiXSlvAAD6X2f-nZ4937.jpg

 

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'

    执行效果:

wKiom1TB_ZvyFnXpAAQItOAiI4M141.jpg

 

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结尾的文件

wKioL1TB_EjxkmYpAAYA5Ai3IPg889.jpg

由于模块,默认都是推送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/'

    执行效果:

wKiom1TB-3CwhN2dAASKTtTpOxI903.jpg

       由于模块默认启用了archive参数,该参数默认开启了recursive, links, perms, times, owner,group和-D参数。如果你将该参数设置为no,那么你将停止很多参数,比如会导致如下目的递归失败,导致无法拉取

wKiom1TB-3CwM88JAAKGdhDvVqI952.jpg

其它相关的参数解释:

1
2
3
dest_port=22    # 指定目的主机的ssh端口,ansible配置文件中的 ansible_ssh_port 变量优先级高于该 dest_port 变量
rsync_path      # 指定 rsync 命令来在远程服务器上运行。这个参考rsync命令的--rsync-path参数,--rsync-path=PATH     # 指定远程服务器上的rsync命令所在路径信息
rsync_timeout   # 指定 rsync 操作的 IP 超时时间,和rsync命令的 --timeout 参数效果一样

 

OK!

       以上暂且列举这些日常运维中经常会用到的一些模块,更多的模块信息后期会继续完善,大家也可以去官网查看更多的信息。

       官网地址:http://docs.ansible.com/synchronize_module.html

分享到:
评论

相关推荐

    Ansible常用模块

    Ansible常用模块 Ansible是一款功能强大且流行的自动化工具,用于配置管理、应用程序部署、任务自动化等。Ansible的核心组件是模块,模块是Ansible的基本执行单元。Ansible提供了多种模块,用于不同的自动化任务。 ...

    自动化运维工具Ansible文档与笔记.zip

    5. Ansible 常用模块 6. Ansible Playbook基本使用 7. Ansible Playbook的结构及handler用法 8. Ansible变量之自定义变量 9. Ansible变量之fact 10. Ansible魔法变量及变量优先级 11. 使用lookup生成变量 12. ...

    Linux自动化运维ansible概述与常用模块

    Linux自动化运维Ansible概述与常用模块 Ansible是一款开源的自动化运维工具,通过使用Ansible,可以实现自动化的配置管理、应用部署、任务自动化等功能。Ansible的核心组件包括模块、插件、Inventory等。其中,模块...

    14周 Ansible 应用实训—简答题.doc

    本文档为 Ansible 应用实训报告,总结了 Ansible 的基础知识点,涵盖了 Ansible 的架构、_inventory、ansible.cfg、模块、playbook、YAML 等常用操作。同时,文档还包含了 Ansible 的安装部署、环境配置、 playbook ...

    15周 Ansible 应用实训—训练题.docx

    1. Ansible 常用模块(至少 6 个)?常用模块包括copy 模块、file 模块、template 模块、yum 模块、service 模块、template 模块等。 2. Ansible 模块的使用?例如,使用 copy 模块来复制文件,使用 file 模块来定义...

    ansible配置详解1

    Ansible常用模块包括command模块、copy模块、template模块、yum模块、service模块等。command模块可以在远程主机执行命令,不支持管道、重定向等shell的特性。copy模块可以将文件从ansible管理端复制到被管控主机上...

    Ansible基础配置和企业级项目实用案例

    #### Ansible常用模块 - **获取主机列表**: `ansible all --list-host(s)` - **主机状态检查**: `ansible 主机匹配 -m ping` - **获取模块列表**: `ansible-doc -l` - **获取模块用法**: `ansible-doc -s module` #...

    Ansible 中文手册

    本文将围绕 Ansible 的基本概念、核心组件以及部分常用模块进行详细介绍。 #### 关键概念解析 1. **模块(Module Library)**:Ansible 提供了大量的模块来操作远程主机节点或通过 Playbook 对节点进行管理。这些...

    三十四、运维自动化之ANSIBLE.pdf

    2. Ansible常用模块:Ansible拥有众多模块,如`file`用于文件管理,`copy`用于复制文件,`apt`和`yum`用于包管理,`service`用于服务控制等。这些模块使得Ansible能够覆盖运维中的各种需求。 3. YAML语法简介:YAML...

    Ansible学习文档

    #### 三、Ansible 常用模块介绍 - **1. ping模块** - **功能**: 测试主机是否可达。 - **用法**: ```bash ansible all -m ping ``` - **示例**: 使用 root 用户进行 ping 测试。 ```bash ansible all -m ...

    Ansible 自动化运维工具笔记.pdf

    首先,Ansible的核心命令是`ansible`,用于执行一次性(ad-hoc)命令,通常与主机或主机组结合使用,并且默认使用`command`模块。`ansible-doc`则用于查看Ansible模块的详细信息,例如`ansible-doc -l`列出所有模块...

    BoyChong专用常用模块2.0.rar

    《BoyChong专用常用模块2.0》是一个针对IT专业人士设计的实用工具集合,它包含了多个在日常开发和运维工作中经常使用的模块。这个压缩包文件是BoyChong为提高工作效率和便捷性而精心整理的资源合集,版本号为2.0,...

    Ansible 的介绍

    4. 使用ansible-doc命令查看模块使用方法。 Ansible的常用命令包括: - ansible-doc -l:列出所有支持的模块。 - ansible-doc <ModuleName>:查看特定模块的使用方法。 基础命令执行的示例: - ansible ...

    Ansible入门-145页

    9. **Ansible Tower的介绍和使用** - 解释Tower的安装、创建Job、执行任务的方法,以及如何利用其高级特性进行企业级的自动化管理。 10. **参考资料** - 提供了YAML语法基础和额外的Ansible模块学习资源,帮助读者...

    Ansible Configuration Management - Second Edition.pdf

    ##### 2.2 常用模块 - **模板模块 (template)**:将本地模板文件传送到远程主机并执行。 - **设置事实 (set_fact)**:动态设置变量。 - **暂停模块 (pause)**:使 Playbook 暂停一段时间。 - **等待模块 (wait_for)*...

    Python-ansiblerolemongodb用来配置MongoDB的Ansible角色

    Python是编写Ansible模块和插件的常用语言,因此在这个场景下,Python被用于构建与MongoDB交互的自动化脚本。 在压缩包文件"UnderGreen-ansible-role-mongodb-fb8c3f1"中,我们可以期待找到以下内容: 1. **默认...

    ansible工具及语法介绍

    通过实际的编译安装httpd的playbook示例,可以更直观地学习ansible的使用方法和playbook的编写技巧。 通过以上内容,可以掌握ansible工具及其语法的基本知识和使用技巧,进而在日常工作中应用ansible实现自动化部署...

    Ansible_book

    常见的安装方法包括下载源码编译安装、从Git资源安装以及使用rpm包安装。rpm安装需要配置epel源。 示例配置epel源的命令如下: ``` cat <<eof>>/etc/yum.repos.d/my.repo [epel] name=epel baseurl=*** ***...

    8,ansible 管理facts

    ### Ansible Facts 管理详解 #### 一、什么是 Ansible Facts?...通过理解和掌握 Ansible Facts 的管理和使用方法,可以帮助用户更高效地管理和配置被管理主机,提高自动化部署和运维工作的灵活性与可靠性。

    Ansible日常维护技术指南.docx

    Ansible 的一些常用组件包括模块、插件、角色等。模块是 Ansible 的一个基本组件,负责执行具体的自动化运维工作。插件是 Ansible 的一个扩展组件,负责提供额外的功能。角色是 Ansible 的一个高级组件,负责定义...

Global site tag (gtag.js) - Google Analytics