• 大话Ansible Ad-Hoc命令


    Ansible是一个系列文章,我会尽量以通俗易懂、诙谐幽默的总结方式给大家呈现这些枯燥的知识点,让学习变的有趣一些。
    Ansible系列博文直达链接:Ansible入门系列

    前言

    通过前面的文章,大家基本上也都知道了Ansible的基本使用了,但是阅读的过程中,大家会发现我有使用以下两种方式来玩这个Ansible。

    • 通过ansible server1 -m ping这样的方式来使用;
    • 通过ansible-playbook shellDemo.yaml这样的方式来使用。

    这两种方式有什么区别的呢?第一种方式是直接在命令行输入整个命令,简单明了;而第二种方式则需要按照yaml语法来编写playbook剧本,这样的功能就更强大了;就好比我们可以在Linux系统中直接运行Shell命令,也可以编写Shell脚本一样,Shell脚本的功能则更强大。

    对于第一种方式,我们也称之为Ad-Hoc命令,这篇文章我就重点讲讲如何使用Ad-Hoc命令;而第二种方式则称为剧本模式,将在下一篇文章中重点总结!

    执行命令

    虽然Ad-Hoc命令的功能没有playbook剧本那样强大,但是也足以满足我们工作中的很多场景。在Ansible中命令都是并发执行的,我们可以针对目标主机执行任何命令。默认的并发数目由ansible.cfg中的forks值来控制。当然了,我们也可以在运行Ansible命令的时候通过-f指定并发数。通过ansible -h命令就可以列出所有的命令参数,下面列举了常用的一些参数。

    • -v--verbose:输出详细执行信息,-vvv可以得到执行过程中的所有信息;
    • -i INVENTORY--inventory=INVENTORY--inventory-file=INVENTORY:指定inventory文件,默认使用/etc/ansible/hosts
    • -f FORKS--forks=FORKS:执行时并发的线程个数,默认为5;
    • -m MODULE_NAME:指定module,默认为command模块;
    • -a MODULE_ARGS:指定module的参数;
    • -o:精简输出内容;
    • --list-hosts:列出主机列表,并不会执行其他操作。

    知道了这些选项,接下来我们就通过一些实际的命令操作来熟悉和理解Ansible Ad-Hoc。

    ping模块

    ping模块是我们经常使用的一个模块,我们经常会这样使用:

    ansible server1 -m ping -o
    

    输出内容如下:

    192.168.1.3 | SUCCESS => {"changed": false,"ping": "pong"}
    

    copy模块

    上一篇文章中是通过playbook的方式来学习copy模块的,这里通过Ansible Ad-Hoc再来熟悉一下。

    ansible server1 -m copy -a 'src=/home/jelly/nameList.txt dest=/home/test1/nameList.txt backup=yes' -o
    

    输出如下:

    192.168.1.3 | CHANGED => {"changed": true,"checksum": "2cb17bce3b65b4168ec1472690e6c49028b5b73b","dest": "/home/test1/nameList.txt","gid": 1001,"group": "test1","md5sum": "39e0c6634669ec88003d6d92f50e879e","mode": "0664","owner": "test1","size": 7,"src": "/home/test1/.ansible/tmp/ansible-tmp-1569858467.3466117-143590544702277/source","state": "file","uid": 1001}
    

    shell模块

    shell模块是我们使用的最多的模块了。如果学会了Ansible,我想这个命令可能是你今后运维中会经常使用的命令了。为什么这么说呢?就是因为好用!!!

    比如:

    ansible server1 -m shell -a 'uname -ra' -o
    

    输出如下:

    192.168.1.3 | CHANGED | rc=0 | (stdout) Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
    

    总而言之,言而总之,当你想在多台机器上执行某个命令时,不妨试一试这里说的这个方法哦!

    总结

    好用的工具,就需要和大家分享。Ansible Ad-Hoc就是这么样的一个工具,当然了,Ansible整个都是一个好用的工具,用心学一下,你会发现收益很多。学会了Ansible以后,我看到那些运维人员,还在一台一台主机的登陆,执行同样的命令的时候,我总是会心一笑。Too young, Too simple!哦,那些年,我也是这么走过来的。

    果冻想,认真玩技术的地方。

    2019年9月30日 于内蒙古呼和浩特。

  • 相关阅读:
    AC自动机
    HDU
    2020牛客寒假算法基础集训营3 B 牛牛的DRB迷宫II
    POJ 3784 Running Median【维护动态中位数】
    CodeForces
    HDU 2444 The Accomodation of Students【二分图最大匹配问题】
    POJ 1201 Intervals【差分约束】
    POJ 2976 Dropping tests【0/1分数规划模板】
    2019牛客暑期多校训练营(第七场)A.String【最小表示法】
    POJ 1287 Networking【kruskal模板题】
  • 原文地址:https://www.cnblogs.com/vipygd/p/12919699.html
Copyright © 2020-2023  润新知