Ansible学习 ad-hoc命令
Ansible提供两种方式去执行命令,一种是ad-hoc命令,一种是写入Ansible playbook。类似于前者在命令行敲shell,后者是写shell-script脚本,前者解决一些简单的任务,后者执行较复杂的任务。
ad-hoc命令格式:ansible <pattern_goes_here> -m <module_name> -a <arguments>
pattern_goes_here:被管理的目标主机
module_name:使用的模块名,ansible中有多个模块,默认为command模块
arguments:模块参数
在管理主机上执行ansible-doc -l,可以查看当前可以使用的所有模块;执行ansible-doc <module_name>,可以得到该模块的帮助文档
1、command模块为默认的模块,可以执行一些命令来执行简单的任务
现在执行如下命令,列出test组中所有主机的/etc/passwd文件,-f设置并行执行的客户端个数,实例中每次并行执行2个主机,在ansible.cfg中对-f有默认配置个数
[root@client01 ansible]# ansible test -a "ls -l /etc/passwd" -f 2
192.168.144.129 | SUCCESS | rc=0 >>
-rw-r--r--. 1 root root 2238 Jan 7 2017 /etc/passwd
192.168.144.130 | SUCCESS | rc=0 >>
-rw-r--r--. 1 root root 2238 Jan 7 2017 /etc/passwd
command 模块不支持 shell 变量,也不支持管道等 shell 相关的东西.如果你想使用 shell相关的这些东西, 要使用’shell’ 模块
在使用shell模块时,要注意使用引号规则,下面这个例子中,希望得到被管理主机的变量名,使用双引号得到的却是当前管理主机系统的变量,若要反馈被管理主机的系统变量,要用单引号
[root@client01 log]# ansible test1 -m shell -a "echo $HOSTNAME"
192.168.144.129 | SUCCESS | rc=0 >>
client01
[root@client01 log]# ansible test1 -m shell -a 'echo $HOSTNAME'
192.168.144.129 | SUCCESS | rc=0 >>
client03
2、文件传输
Ansible 能够以并行的方式同时 SCP 大量的文件到多台机器,使用copy模块
[root@client01 ansible]# ansible 192.168.144.130 -m copy -a "src=/etc/passwd dest=/tmp/"
192.168.144.130 | SUCCESS => {
"changed": true,
"checksum": "60f009c54c884e9e761ea571974eeea3b1182465",
"dest": "/tmp/passwd",
"failed": false,
"gid": 0,
"group": "root",
"md5sum": "82ef84d58047cb303e91d22a1ba4ed69",
"mode": "0644",
"owner": "root",
"secontext": "unconfined_u:object_r:admin_home_t:s0",
"size": 2238,
"src": "/root/.ansible/tmp/ansible-tmp-1515069024.7-268861670275734/source",
"state": "file",
"uid": 0
}
[root@client01 ansible]#
[root@client01 ansible]# ansible 192.168.144.130 -m command -a "ls -l /tmp/passwd"
192.168.144.130 | SUCCESS | rc=0 >>
-rw-r--r--. 1 root root 2238 Jan 4 20:30 /tmp/passwd
[root@client01 ansible]#
3、service模块,管理远程主机上的服务
[root@client01 ansible]# ansible test1 -m service -a "name=sshd state=started"
4、script模块,将参数中的脚本传到远程主机上,并在远程主机的shell环境下执行,该模块的执行不依赖远程主机的python环境
[root@client01 ansible]# ansible all -i hosts -m script -a "/home/zhuwan/ansible/test.sh arg1"
Ansible学习 ad-hoc命令的更多相关文章
- Linux中级之ansible概念及hoc命令行调用模式
一.Ansible简介 ansible是新出现的开源的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统 ...
- ansible常用ad hoc操作
ansible group001 -i hosts.ip -m shell -a -v
- Ansible学习记录二:命令
0.ansible 命令参数详解: [root@localhost ~]# ansible Usage: ansible <host-pattern> [options] Options: ...
- ansible 学习与实践
title: ansible 学习与实践 date: 2016-05-06 16:17:28 tags: --- ansible 学习与实践 一 介绍 ansible是新出现的运维工具是基于Pytho ...
- ansible学习笔记一
ansible学习笔记一 参考博客: ansible学习 - 51CTO博客 一.安装 1 .下载epel源 wget -O /etc/yum.repos.d/epel.repo http://mir ...
- Ansible学习实战手记-你想要知道的可能都在这里了
最近接触了ansible工具,查找了一些资料,也做了一些总结.希望能给刚接触的新手带来一些帮助. 此总结有实际例子,大部分也是从实践中用到才逐一总结的. 当然可能肯定一定会存在一些错误和纰漏,还望大家 ...
- ansible之基本原理及命令
什么是ansible ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(\(puppet.chef.func.fabric\))的优点,实现了批量系统配置.批量程序部署 ...
- SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问
delphi ado 跨数据库访问 语句如下 ' and db = '帐套1' 报错内容是:SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATE ...
- Ad hoc sql
SQL Server如何启用Ad Hoc Distributed Queries? 2011-08-11 14:53 wangdingbang CSDN博客 字号:T | T 本文主要介绍了SQL ...
- SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问
消息 15281,级别 16,状态 1,第 2 行SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/Open ...
随机推荐
- Facebook TSDB论文Gorilla分析
Facebook TSDB论文Gorilla分析 背景 TSDB时序数据库用于存储时间相关的数据,常用于监控系统的数据存储,分布式的TSDB提供了海量的数据存储能力,如InfluxDB.OpenTSD ...
- JS获取前一个页面
document.referrer 可以得到上一个点击超连接进来的页面URL注意:只能访问服务器上页面使用,打开本地文件无效(为空字符串)
- sass基础2
- Swift UI开发初探 (转)
原文地址:http://www.tairan.com/archives/6600 关于Swift语法,可以参考<Apple Swift编程语言入门教程> 效果如下: 开发环境 Xcode6 ...
- iOS中MD5加密字符串实现
1.MD5加密 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 1321 ...
- Eclipse常用设置和快捷键
1.提示键配置一般默认情况下,Eclipse ,MyEclipse 的代码提示功能是比Microsoft Visual Studio的差很多的,主要是Eclipse ,MyEclipse本身有很多选项 ...
- Cocos2d-x下HTTP网络通讯
引入头文件: #include "cocos-ext.h" 添加下载按钮: CCMenuItemImage *pCloseItem = CCMenuItemImage::creat ...
- struts2 中使用DMI(动态调用方法)方式配置action
1.使用 "!"方式,即 action名称 ! 方法名称 struts.xml 配置 <package name="user" namespace=&qu ...
- redis在Windows下以后台服务一键搭建哨兵(主从复制)模式(多机)
redis在Windows下以后台服务一键搭建哨兵(主从复制)模式(多机) 一.概述 此教程介绍如何在windows系统中多个服务器之间,布置redis哨兵模式(主从复制),同时要以后台服务的模式运行 ...
- RC4 in TLS is Broken: Now What?
https://community.qualys.com/blogs/securitylabs/2013/03/19/rc4-in-tls-is-broken-now-what RC4 has lon ...