1.Ansible命令

1.1 Ad-hoc说明

Ansible中有一个很重要的功能就是可以执行ad-hoc命令,它表示即时、临时的意思,即表示一次性的命令。与之相对的是ansible playbook功能,playbook适用于批量部署环境,一般不用经常改动。而ad-hoc命令,利用ansible的模块功能,适用于业务变更、临时检查和维护等操作场景,比如批量推送一个配置文件,重启某个服务,安装一些包等等。

1.2 命令结构
ansible命令行执行格式一般为:
ansible  <host-pattern>  [-f forks] [-m module_name]  [-a args]

<host-pattern>:指明管控主机,以模式形式表示或者直接给定IP,必须事先定义在文件中;all设置所有,若主机有多个,也可单独制定某一个主机

比如<主机组>[0]:代表主机组内的第一个主机

如:

[user@localhost ~]$ ansible clong[0] -m ping
192.168.0.148 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
[user@localhost ~]$ ansible clong[1] -m ping
192.168.0.149 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
[user@localhost ~]$ ansible clong -m ping   
192.168.0.149 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
192.168.0.148 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

[-f forks]:指明每批管控多少主机,默认为5个主机一批次

[-m module_name]:使用何种模块管理操作,所有的操作都需要通过模块来指定

[-a args]:指明模块专用参数;args一般为key=value格式  注意:command模块的参数非为kv格式,而是直接给出要执行的命令即可;

注意:<host-pattern>默认读取/etc/ansible/hosts,也可以指明自定义文件路径

-iPATH, –inventory=PATH:指明使用的host inventory文件路径;

例如:

## 指定主机IP
 #ansible 192.168.100.2 –m copy –a
"src=/tmp/test.txt dest=/tmp/test1.txt"
 #此命令是将ansible控制机上的 /tmp/test.txt
拷贝到 主机192.168.100.2的/tmp/目录下,且名称是test1.txt。

#说明:
#-m 后面跟使用的模块 copy;
#-a 后面跟所使用的参数,src 表示源路径,dest表示目标主机路径

## 指定主机组
#ansible webserver –m copy –a
"src=/tmp/test.txt dest=/tmp/test2.txt"
#此命令是将ansible控制机上的
/tmp/test.txt 拷贝到 主机组webserver的/tmp/目录下,且名称是test2.txt

1.3 执行测试

# 测试主机172.16.12.241是否网络连通,可以使用如下命令测试:

[root@ansible
~]# ansible 172.16.12.241 -m ping
 
172.16.12.241 | SUCCESS =>
{
     "changed": false,
     "ping": "pong"
 
}

2.Ansible AD-HOC 临时命令的使用

2.1 查看主机运行时间

[root@ansible ~]# ansible all -m shell -a "uptime"
 
172.16.12.241 | SUCCESS | rc=0 >>
  21:54:13 up  1:52,  2 users,  load average: 0.00, 0.01, 0.05
 

 说明: -m shell表示使用shell模块;

-a 表示使用的命令或者参数,shell模块所使用的是命令,查看运行时间,所以使用"uptime"。

2.2 查看主机 / 分区使用情况

[root@ansible ~]# ansible all -m shell -a "df -h /"
172.16.12.241 | SUCCESS | rc=0 >>
 
Filesystem                           
Size  Used Avail Use% Mounted on
 
/dev/mapper/centos_wjh--centos7-root  
48G  3.2G   45G   7% /

2.3 查看主机组 /etc/chrony.conf配置文件的权限及详细信息

[root@ansible ~]# ansible all -m shell -a "ls -l /etc/chrony.conf"
 
172.16.12.241 | SUCCESS | rc=0 >>
 
-rw-r--r--. 1 root root 1161
Feb 13 03:28
/etc/chrony.conf

2.4 推送test.conf 配置文件到 172.16.12.241 的 /etc/目录下,并修改文件名为 ttt.conf ,权限为600

[root@ansible ~]# ansible 172.16.12.241 -m copy -a "src=test.conf dest=/etc/ttt.conf
mode=0600 "
 
172.16.12.241 | SUCCESS =>
{
    
"changed": true,
     "checksum": "dff19e48593efc79207494d625ddc4a22769ec2d",
     "dest": "/etc/ttt.conf",
     "gid": 0,
     "group": "root",
     "md5sum": "d0bab2e27173ed4bc5195da29d21920f",
     "mode": "0600",
     "owner": "root",
     "size": 1062,
     "src": "/root/.ansible/tmp/ansible-tmp-1487041285.77-71823315308297/source",
     "state": "file",
     "uid": 0
 
}

2.5 验证ttt.conf文件

[root@ansible ~]# ansible 172.16.12.241 -m command -a "ls -l /etc/ttt.conf"
 
172.16.12.241 | SUCCESS | rc=0 >>
 
-rw------- 1 root root 1062 Feb 13 22:01 /etc/ttt.conf

## 说明:
#command与shell模块使用方法几乎相同,与command不同的是,shell模块可以支持命令管道,同时还有另一个模块也具备此功能:raw

由此看见文件确实是推送成功,并且权限和文件名均已修改成功。

2.6 列出执行主机列表

[root@ansible ~]#ansible clong --list-hosts

3.1、Ansible命令简要说明及初步使用的更多相关文章

  1. ansible命令执行模块使用

    ansible命令执行模块使用 1.命令执行模块-command 在远程节点上运行命令. 命令模块使用命令名称,接上空格-的分割符作为参数使用,但是不支持管道符和变量等,如果要使用这些,那么可以使用s ...

  2. ansible命令应用基础

    ansible命令应用基础:    Usage: ansible <host-pattern> [-f forks] [-m module_name][-a args]        -f ...

  3. 二、ansible配置简要介绍

    [defaults] # some basic default values… hostfile = /etc/ansible/hosts \\指定默认hosts配置的位置 # library_pat ...

  4. ansible命令应用示例

                                  ansible命令应用示例                             ping slave组 ansible slave -m ...

  5. ansible命令使用

    ansible命令使用 查看每个服务器的主机名 1 $ ansible multi -a "hostname" 使用一个线程执行命令,相当于顺序在每个服务器上运行(默认5个线程执行 ...

  6. 自动化运维工具——ansible命令使用(二)

    一.Ansible系列命令使用 ansible命令执行过程 1 . 加载自己的配置文件 默认/etc/ansible/ansible.cfg 2 . 加载自己对应的模块文件,如command 3 . ...

  7. 3.3、Ansible命令参数详解

    0.ansible 命令参数详解: [root@localhost ~]# ansible Usage: ansible <host-pattern> [options] Options: ...

  8. 1、Ansible初识简要介绍及安装

    1.Ansible简介 1.1 Ansible介绍 Ansible 是一个简单的自动化运维管理工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fab ...

  9. Linux命令集锦:ansible命令

    ansible 命令主要用于批量管理,来实现自动化管理.常用批量操作包括:主机分组管理.实时批量执行命令或脚本.实时批量分发文件或目录.定时同步文件等. 一.安装 ansible yum instal ...

随机推荐

  1. SecureCRTPortal保存的密码位置

    SecureCRTPortal保存的密码位置 Options> Global Options > Configuration Folder 一般为:C:\Users\Administrat ...

  2. iOS 8 中 UIAlertView 和 UIActionSheet 河里去了?

    iOS 8 中 UIAlertView 和 UIActionSheet 河里去了? 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商 ...

  3. java根据内容生成二维码图片

    package util; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; ...

  4. Java网页小程序——Java Applet

    Java Applet是编译过的Java程序,可以在所有支持Java的浏览器中运行. 1.Applet的使用 import java.applet.Applet; import java.awt.Gr ...

  5. Java类集综合练习——信息管理(增、删、改、查)

    一.实现功能——模拟学生选课功能 1.选择课程 2.修改所选课程 二.实现功能——模拟学生信息管理功能 1.添加学生信息 2.修改学生信息 二.主要代码(在同一个包里) 1.课程类 public cl ...

  6. 在Mac OSX系统的Docker机上启用Docker远程API功能

    在Mac OSX系统的Docker机上启用Docker远程API功能 作者:chszs,未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs D ...

  7. h5-10 canvas 简易祖玛

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. PHP中数据类型转换的三种方式

    PHP中数据类型转换的三种方式 PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: 1.(int).(integer):转换成整形2.(float).(double).(real):转换成 ...

  9. AIX&nbsp;常用命令汇总(一)

    命令 内核 如何知道自己在运行 32 位内核还是 64 位内核? 要显示内核启用的是 32 位还是 64 位,可输入以下命令: bootinfo -K 如何知道自己在运行单处理器还是多处理器内核? / ...

  10. JS中的数据类型及判断数据类型的方法

    简单类型(基本类型): number,string,boolean,null,undefined 复杂类型(引用类型):object typeof 只能判断基本数据类型 instanceof 能够判断 ...