Ansible是一個系列文章,我會盡可能以通俗易懂、詼諧幽默的總結方式給你們呈現這些枯燥的知識點,讓學習變的有趣一些。
Ansible系列博文直達連接:Ansible入門系列shell
經過前面的文章,你們基本上也都知道了Ansible的基本使用了,可是閱讀的過程當中,你們會發現我有使用如下兩種方式來玩這個Ansible。併發
ansible server1 -m ping
這樣的方式來使用;ansible-playbook shellDemo.yaml
這樣的方式來使用。這兩種方式有什麼區別的呢?第一種方式是直接在命令行輸入整個命令,簡單明瞭;而第二種方式則須要按照yaml語法來編寫playbook劇本,這樣的功能就更強大了;就比如咱們能夠在Linux系統中直接運行Shell命令,也能夠編寫Shell腳本同樣,Shell腳本的功能則更強大。運維
對於第一種方式,咱們也稱之爲Ad-Hoc命令,這篇文章我就重點講講如何使用Ad-Hoc命令;而第二種方式則稱爲劇本模式,將在下一篇文章中重點總結!dom
雖然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
模塊是咱們常常使用的一個模塊,咱們常常會這樣使用:ui
ansible server1 -m ping -o
輸出內容以下:命令行
192.168.1.3 | SUCCESS => {"changed": false,"ping": "pong"}
上一篇文章中是經過playbook的方式來學習copy
模塊的,這裏經過Ansible Ad-Hoc再來熟悉一下。線程
ansible server1 -m copy -a 'src=/home/jelly/nameList.txt dest=/home/test1/nameList.txt backup=yes' -o
輸出以下:3d
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
模塊是咱們使用的最多的模塊了。若是學會了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日 於內蒙古呼和浩特。