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 ...
随机推荐
- 转载【Ubuntu】Ubuntu14.04虚拟机调整窗口大小自适应VMware14窗口
Ubuntu屏幕居中一小块,很不好看 查看-–> 自动调整大小—>自动适应客户机/自动适应窗口 切一下就可以把Ubuntu图的界面大小调的和VMware窗口自适应了 效果: 转载 自h ...
- css 动画 和 响应式布局和兼容性
14.动画 -moz-:火狐, -ms-:IE,-webkit-:谷歌,-o-:欧朋 transform旋转 rotate旋转 scale放大 translate偏移量 skew倾斜度 transfo ...
- ASP.NET前端调用后台方法
<script> function MyConfirm() { if (confirm('存在重复记录,覆盖点继续,不覆盖追加保存点取消')) { ...
- 如何修改eclipse的web项目默认浏览器
- Python列表类型及常用操作
Python列表类型 1.用途: 存放多个值,可以根据索引存取值 2.定义方式: 在[ ]内用逗号分割开多个任意类型的值 l=['yven','law','lyf'] #l=list(['yven', ...
- ActiveMQ实例1--简单的发送和接收消息
一.环境准备 1,官网http://activemq.apache.org/下载最新版本的ActiveMQ,并解压 2,打开对应的目录,在Mac环境下,一般可以运行命令: cd /Users/***/ ...
- 让你的sharepoint2013具有EMS快递查询的功能
<iframe name="kuaidi100" src="http://www.kuaidi100.com/frame/app/index2.html" ...
- typedef struct 与 struct
学c++之前最好先学c.特别要说的是,一些虽然冠名为c++的项目的文件中却大部分都是c的代码. 比如我们这个例子: 在c语言中,定义一个结构体和其实适合c++中有区别的.比如我们有如下的代码: str ...
- 【起航计划 007】2015 起航计划 Android APIDemo的魔鬼步伐 06 App->Activity->Forwarding Activity启动另外一个Activity finish()方法
Android应用可以包含多个Activity,某个Activity可以启动另外的Activity. 这些Activity采用栈结构来管理,新打开的Activity叠放在当前的Activity之上,当 ...
- Linux CentOS下安装Tomcat9
本文讲解在Linux CentOS下安装Tomcat9,以及Web项目的部署发布. 环境:阿里云ECS 云服务器Linux CentOS 使用XShell客户端连接服务器,进行操作实践. 1.下载To ...