1. 程式人生 > >Ansible管理命令

Ansible管理命令

Ansible 管理命令

(1)ansible

這個命令是日常工作中使用率非常高的命令之一,主要用於臨時一次性操作;

(2)ansible-doc

Ansible 模組文件說明,針對每個模組都有詳細的用法說明和應用案例介紹;

(3)ansible-galaxy

可以簡單的理解為 Github 或 PIP 的功能,是 Ansible 官方一個分享 role 的功能平臺。可以通過 ansible-galaxy 命令很簡單的實現 role 的分享和安裝;

(4)ansible-playbook

是日常應用中使用頻率最高的命令,其工作機制是,通過讀取預先編寫好的playbook檔案實現批量管理;

(5)ansible-pull

Ansible 的另一種工作模式,pull 模式,Ansible 預設使用 push 模式;

(6)ansible-vault

主要用於配置檔案加密;

(7)ansible-console

讓使用者可以在 ansible-console 虛擬出來的終端上像 Shell 一樣使用 Ansible 內建的各種命令。

命令詳解

ansible 命令

命令格式

ansible <host-pattern> [options]

--version 顯示版本
-a 模組引數(如果有)
-m module 指定模組,預設為command
-v 詳細過程 –vv -vvv更詳細
--list-hosts 顯示主機列表,可簡寫--list
-k, --ask-pass 提示連線密碼,預設Key驗證
-K,--ask-become-pass 提示使用sudo密碼
-C, --check 檢查,並不執行
-T, --timeout=TIMEOUT 執行命令的超時時間,預設10s
-u, --user=REMOTE_USER 執行遠端執行的使用者
-U, SUDO_USER, --sudo-user 指定sudu使用者
-b, --become 代替舊版的sudo 切換

檢視版本號

# ansible --version
ansible 2.6.7

檢視客戶機狀態

# ansible server1 -m ping
192.168.61.130 | SUCCESS => {
"changed": false, 
"ping": "pong"
}

檢視主機列表

# ansible server1 --list
hosts (1):
192.168.61.130

複製檔案到客戶機

# ansible server1 -m copy -a 'src=/wh_k/test1.txt dest=/wh_k backup=yes'
192.168.61.130 | SUCCESS => {
"changed": true, 
"checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709", 
"dest": "/wh_k/test1.txt", 
"gid": 0, 
"group": "root", 
"md5sum": "d41d8cd98f00b204e9800998ecf8427e", 
"mode": "0644", 
"owner": "root", 
"size": 0, 
"src": "/root/.ansible/tmp/ansible-tmp-1544361826.12-278173604489771/source", 
"state": "file", 
"uid": 0

ansible-doc 命令

命令格式

ansible-doc [options] [module...]

ansible-doc 命令後跟[options]引數或[模組名],顯示模組用法說明

列出模組

# ansible-doc -l
a10_server                                           Manage A10 Networks AX/SoftAX/Thunder/vThunder devices' server object.       
a10_server_axapi3                                    Manage A10 Networks AX/SoftAX/Thunder/vThunder devices 
....
....

模組說明

# ansible-doc ping
> PING    (/usr/lib/python2.6/site-packages/ansible/modules/system/ping.py)

A trivial test module, this module always returns `pong' on successful contact. It does not make
...

ansible-playbook 命令

命令格式

ansible-playbook playbook.yml

ansible-playbook 命令後跟 YML 格式的 playbook 檔案,執行事先編排好的任務集

命令示例

# ansible-playbook nginx.yml