Ansible Ad—hoc 模式常用模块
生活随笔
收集整理的這篇文章主要介紹了
Ansible Ad—hoc 模式常用模块
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. ad-hoc介紹
ansible中有兩種模式:ad-hoc模式和ansible-playbook模式。
ad-hoc命令是一種可以快速輸入的命令,而且不需要保存起來的命令。
ad-hoc適合解決一些簡單或者平時工作中臨時遇到的困難。
2. ad-hoc的使用場景
- 在多臺機器上,查看某個進程是否啟動
- 在多臺機器上,拷貝指定文件到本地等等
3. ad-hoc模式命令的使用
命令+主機名稱+指定的模塊+模塊名稱+模塊動作+具體的命令
如:ansible ans -m shell -a 'ls /root'
4. ansible幫助查看方式
ansible-doc -l #查看所有的模塊與簡要說明 ansible-doc copy #查看指定模塊的方式 ansible-doc -s copy #查看指定模塊的playbook代碼段5. ad-hoc命令參數(shù)
ansible <host-pattern> [options]-v|--version #輸出更詳細的執(zhí)行過程信息,-vvv可得到執(zhí)行過程所有的信息 -i|PATH|--inventory(清單)=PATH #指定inventory(清單)信息,默認/etc/ansible/hosts -f NUM|--forks=NUM #并發(fā)線程數(shù),默認是5個 --private-key=PRIVATE_KEY_FILE #指定密鑰文件 -m NAME|--module-name=NAME #指定使用的模塊 -M DIRECTORY,--module-path=DIRECTORY #指定模塊存放路徑,默認/usr/share/ansible,也可以通過ANSIBLE_LIBRARY設(shè)定默認路徑。 -a ‘ARGUMENTS’,--args=‘ARGUMENTS’ #模塊參數(shù)。 -k,--ask-pass SSH #認證密碼 -K,--ask-sudo-pass sudo #用戶的密碼(--sudo時使用)。 -o,--one-line #標準輸出至一行。 -s,--sudo #相當于Linux系統(tǒng)下的sudo命令。 -t DIRECTORY,--tree=DIRECTORY #輸出信息至DIRECTORY目錄下,結(jié)果文件以遠程主機命名。 -T SECONDS,--timeout=SECONDS #指定連接遠程主機的最大超時,單位是秒。 -B NUM,--background=NUM #后臺執(zhí)行命令,超NUM秒后中止正在執(zhí)行的任務(wù)。 -P NUM,--poll=NUM #定期返回后臺任務(wù)進度。 -u USERNAME,--user=USERNAME #指定遠程主機以USERNAME運行命令。 -U SUDO_USERNAME,--sudo-user=SUDO_USERNAME #使用sudo,相當于LInux下的sudo命令。 -c CONNECTION,--connection=CONNECTION #指定連接方式,可用選項paramiko(SSH)、ssh、local,local方式常用于crontab和kickstarts。 -l SUBSET,--limit=SUBSET #指定運行主機。 -l ~REGEX,--limit=~REGEX #指定運行主機(正則)。 --list-hosts #列出符合條件的主機列表,不執(zhí)行任何命令。6. ansible常用模塊
命令相關(guān)模塊
command模塊? ? ? ? shell模塊? ? ????????service模塊????
文件相關(guān)模塊
file模塊? ? ? ? copy模塊? ? ? ? fetch模塊
用戶相關(guān)模塊
user模塊? ? ? ? group模塊
yum_repository模塊
7、command模塊
命令模塊適合使用簡單的命令,無法支持"<"、">"、"|"、";"、"&"等符號,功能是在遠程主機上執(zhí)行命令,此模塊為默認模塊,可以忽略-m選項。
chdir #在執(zhí)行命令前,進入到指定的目錄中 creates #判斷指定文件是否存在,如果存在,不執(zhí)行后面的操作 removes #判斷指定文件是否存在,如果存在,執(zhí)行后面的操作 free_from #必須要輸入一個合理的命令ansible 192.168.100.204 -a 'chdir=/tmp pwd' #切換目錄 ansible 192.168.100.204 -a 'creates=/tmp ls /etc//passwd' #creates文件存在則不執(zhí)行 ansible 192.168.100.204 -a 'removes=/tmp ls /etc//passwd' #remives文件存在則執(zhí)行8.shell模塊
類似于command模塊,但是功能比command要更強大。支持"<"、">"、"|"、";"、"&"等符號。
chdir #在執(zhí)行命令前,進入到指定目錄中 creates #判斷指定文件是否存在,如果存在,不執(zhí)行后面的操作 removes #判斷指定文件是否存在,如果存在,執(zhí)行后面的操作 free_form #必須要輸入一個合理的命令1)調(diào)用shell模塊
ansible 192.168.100.204 -m shell -a 'mkdir -p /root/dgf && ls /root/'? ? ? ? #調(diào)用shell模塊2)調(diào)用shell模塊查看root下的所有目錄和文件
[root@localhost /]# ansible 192.168.100.204 -m shell -a 'ls /root'seript 用于執(zhí)行被管理機器上面執(zhí)行shell腳本的模塊,腳本無需在被管理機器上面存在
3)在管理機上創(chuàng)建腳本
[root@localhost ~]# vim ansible_test.sh #!/bin/bash echo 'hostname'4)給腳本賦予777權(quán)限
[root@localhost ~]# chmod 777 ansible_test.sh5)在被管理服務(wù)器上執(zhí)行腳本
[root@localhost ~]# ansible all -m script -a '/root/ansible_test.sh ' 192.168.100.205 | CHANGED => {"changed": true, "rc": 0, "stderr": "Shared connection to 192.168.100.205 closed.\r\n", "stderr_lines": ["Shared connection to 192.168.100.205 closed."], "stdout": "hostname\r\n", "stdout_lines": ["hostname"] } 192.168.100.204 | CHANGED => {"changed": true, "rc": 0, "stderr": "Shared connection to 192.168.100.204 closed.\r\n", "stderr_lines": ["Shared connection to 192.168.100.204 closed."], "stdout": "hostname\r\n", "stdout_lines": ["hostname"] }9、file模塊
用于對文件的處理,創(chuàng)建,刪除,權(quán)限控制等
pah???????????#要管理的文件路徑 recurse???????#遞歸 state:?? directory?????#創(chuàng)建目錄,如果目標不存在則創(chuàng)建目錄及其子目錄 touch?????????#創(chuàng)建文件,如果文件存在,則修改文件 屬性 absent????????#刪除文件或目錄 mode??????????#設(shè)置文件或目錄權(quán)限 owner???????? #設(shè)置文件或目錄屬主信息 group???????? #設(shè)置文件或目錄屬組信息 link??????????#創(chuàng)建軟連接,需要和src配合使用 hard???????? #創(chuàng)建硬件連接。需要和src配合使用1)刪除被管理服務(wù)器的文件或目錄
[root@localhost /]# ansible 192.168.100.204 -m file -a 'name=/dgf state=absent' #name=路徑默認是在root下2)創(chuàng)建被管理服務(wù)器的文件或目錄
[root@localhost /]# ansible 192.168.100.204 -m file -a 'name=ys state=directory' #創(chuàng)建目錄 [root@localhost /]# ansible 192.168.100.204 -m file -a 'name=456.txt state=touch'#創(chuàng)建文件3)修改被管理服務(wù)器的文件或目錄的權(quán)限
[root@localhost ~]# ansible all -m file -a 'path=/root/hehe mode=777' #修改權(quán)限總結(jié)
以上是生活随笔為你收集整理的Ansible Ad—hoc 模式常用模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中文命名实体识别NER
- 下一篇: 网络互联复习(二) 精简版