ansible中有如下命令:
ansible
ansible-config
ansible-doc
ansible-galaxy
ansible-inventory
ansible-playbook
ansible-pull
ansible-vault
這些命令有非常多的相同的子選項。
1.ansible
(1)Options:普通選項
-a MODULE_ARGS:指定模塊的參數
--ask-vault-pass:密碼保護
-B SECONDS:異步運行的失敗時間
-C:不做任何改變; 相反,嘗試預測可能發生的一些變化
-D:更改(小)文件和模板時,顯示這些文件的差異; 與-C一起使用效果很好
-e EXTRA_VARS:將其他變量設置為key = value或YAML / JSON,如果filename前綴為@
-f FORKS:開啟的進程數量,默認5個
-i INVENTORY:指定HOST文件地址
-l SUBSET:進一步將所選主機限制為其他模式
--list-host:輸出匹配主機列表; 不會執行任何其他操作
-m MODULE_NAME:指定使用哪一個模塊
-o:將輸出壓縮
--playbook-dir=BASEDIR:由於此工具不使用playbooks,因此將其用作替代playbook目錄。這為許多功能設置了相對路徑,包括roles / group_vars / etc.
-P POLL_INTERVAL:設置輪詢間隔,默認為15
(2)Privilege Escalation Options:提權選項
-b:提權
--become-method=BECOME_METHOD:要使用的權限升級方法(默認= sudo),請使用`ansible-doc -t成為-l`列出有效的選擇。
--become-user=BECOME_USER:提權成為那個用戶,默認是root
-K:要求提供權限提升密碼
(3)Connection Options:連接選項
-k:詢問連接密碼
--private-key=PRIVATE_KEY_FILE, --key-file=PRIVATE_KEY_FILE:指定密鑰文件
-u REMOTE_USER:使用指定用戶連接,默認None
-c CONNECTION:指定連接類型,默認為smart
-T TIMEOUT:指定連接超時時間,默認10秒
--ssh-common-args=SSH_COMMON_ARGS:指定傳遞給sftp / scp / ssh的公共參數(例如ProxyCommand)
--sftp-extra-args=SFTP_EXTRA_ARGS:指定僅傳遞給sftp的額外參數(例如-f,-l)
--scp-extra-args=SCP_EXTRA_ARGS:指定僅傳遞給scp的額外參數(例如-l)
--ssh-extra-args=SSH_EXTRA_ARGS:指定僅傳遞給ssh的額外參數(例如-l)
2.ansible-playbook
運行playbook,執行指定任務。
Usage: ansible-playbook [options] playbook.yml [playbook2 ...]
(1)Options:普通選項
-ask-vault-pass
-C, --check
-D, --diff
-e EXTRA_VARS, --extra-vars=EXTRA_VARS
--flush-cache:清除inventory主機的fact緩存
--force-handlers:即使任務失敗,也要運行處理程序
-f FORKS
-i INVENTORY
-l SUBSET
--list-hosts
--list-tags:列出所有的可用標簽
--list-tasks:列出將要執行的所有任務
-M MODULE_PATH, --module-path=MODULE_PATH
--skip-tags=SKIP_TAGS:僅運行其標簽與這些值不匹配的播放和任務
--start-at-task=START_AT_TASK:在匹配此名稱的任務中運行playbook
--step:在運行之前確認每個任務
--syntax-check:對playbook進行於法檢測
-t TAGS, --tags=TAGS:僅運行使用這些值標記的操作和任務
--vault-id=VAULT_IDS:需要使用的vault特性
--vault-password-file=VAULT_PASSWORD_FILES:vault密碼文件
-v, --verbose:詳細模式(-vvv表示更多,-vvvv表示啟用連接調試)
--version:打印ansible的版本
(2)Privilege Escalation Options:提權選項
-b, --become
--become-method=BECOME_METHOD
--become-user=BECOME_USER
-K, --ask-become-pass
(3)Connection Options:連接選項
-k, --ask-pass
--private-key=PRIVATE_KEY_FILE
-u REMOTE_USER, --user=REMOTE_USER
-c CONNECTION, --connection=CONNECTION
-T TIMEOUT, --timeout=TIMEOUT
--ssh-common-args=SSH_COMMON_ARGS
--sftp-extra-args=SFTP_EXTRA_ARGS
--scp-extra-args=SCP_EXTRA_ARGS
--ssh-extra-args=SSH_EXTRA_ARGS
3.ansible-config
編輯、查看和管理ansible的配置信息。
Usage: ansible-config [dump|list|view] [--help] [options] [ansible.cfg]
options:
-c CONFIG_FILE, --config=CONFIG_FILE:指定配置文件的路徑
-h,--help:顯示幫助信息
-v, --verbose:詳細模式(-vvv表示更多,-vvvv表示啟用連接調試)
--version:打印ansible的版本信息
可能一套主機有多個配置文件,默認是/etc/ansible/ansible.cfg.
ansible-config:查看默認配置
[root@centos01 ansible]# ansible-config dump ACTION_WARNINGS(default) = True AGNOSTIC_BECOME_PROMPT(default) = True ALLOW_WORLD_READABLE_TMPFILES(default) = False ANSIBLE_CONNECTION_PATH(default) = None ANSIBLE_COW_PATH(default) = None ANSIBLE_COW_SELECTION(default) = default ANSIBLE_COW_WHITELIST(default) = ['bud-frogs', 'bunny', 'cheese', 'daemon', 'default', 'dragon', 'elephant-in-snake', 'elephant', 'eyes', 'hellokitty', 'kitty', 'luke- ANSIBLE_FORCE_COLOR(default) = False ANSIBLE_NOCOLOR(default) = False ANSIBLE_NOCOWS(default) = False ANSIBLE_PIPELINING(default) = False ANSIBLE_SSH_ARGS(default) = -C -o ControlMaster=auto -o ControlPersist=60s
ansible-config list:對於配置文件中每個配置項的解釋,包括環境、默認值、類型等等
[root@centos01 ansible]# ansible-config list ACTION_WARNINGS: default: true description: [By default Ansible will issue a warning when received from a task action (module or action plugin), These warnings can be silenced by adjusting this setting to False.] env: - {name: ANSIBLE_ACTION_WARNINGS} ini: - {key: action_warnings, section: defaults} name: Toggle action warnings type: boolean version_added: '2.5'
ansible-config view:打印配置文件的內容
[root@centos01 ansible]# ansible-config view # config file for ansible -- https://ansible.com/ # =============================================== # nearly all parameters can be overridden in ansible-playbook # or with command line flags. ansible will read ANSIBLE_CONFIG, # ansible.cfg in the current working directory, .ansible.cfg in # the home directory or /etc/ansible/ansible.cfg, whichever it # finds first [defaults] # some basic default values... .....(這就是ansible.cfg的內容)
如果想要查找某一項的內容,可以使用grep、awk來過濾。
4.ansible-doc
文檔工具
Usage: ansible-doc [-l|-F|-s] [options] [-t <plugin type> ] [plugin]
Options:
-h, --help:查看幫助信息
-j, --json:**僅限內部測試**轉儲json元數據所有插件。
-l, --list:顯示所有模塊名及其描述信息。
-F, --list_files:顯示所有模塊名及其模塊路徑
-M MODULE_PATH, --module-path=MODULE_PATH:設定模塊的路徑,default=~/.ansible/plugins/modules:/usr/share/ansible/plugins/modules
-s, --snippet:顯示指定插件的playbook代碼段
-t TYPE, --type=TYPE:選擇哪種插件類型(默認為“模塊”)。
-v, --verbose:
--version
5.ansible-pull
從VCS存儲庫中提取Playbooks並為本地主機執行.
Usage: ansible-pull -U <repository> [options] [<playbook.yml>]
(1)Options:普通選項
--accept-host-key:如果尚未添加,則為repo url添加hostkey
--ask-vault-pass
-C CHECKOUT, --checkout=CHECKOUT:branch / tag / commit to checkout。 默認為行為存儲庫模塊。
--clean:工作存儲庫中的已修改文件將被丟棄
--diff
-d DEST, --directory=DEST:查看存儲庫的目錄結構
-e EXTRA_VARS, --extra-vars=EXTRA_VARS
-f, --force:即使存儲庫不能,也要運行playbook更新
--full:深復制而不是淺復制。
-i INVENTORY, --inventory=INVENTORY, --inventory-file=INVENTORY
-l SUBSET, --limit=SUBSET
--list-hosts
-m MODULE_NAME, --module-name=MODULE_NAME:存儲庫模塊名稱,默認是git
-M MODULE_PATH, --module-path=MODULE_PATH:添加模塊庫路徑
-o, --only-if-changed:如果存儲庫已經存在,則僅運行playbook更新
--purge :在playbook執行結束之后清除
--skip-tags=SKIP_TAGS
-s SLEEP, --sleep=SLEEP::在開始之前以隨機間隔(在0和n秒之間)休眠。 這是分散git請求的有用方法
-t TAGS, --tags=TAGS
--track-subs:子模塊將跟蹤最新的更改。 這相當於為git子模塊更新指定了--remote標志
-U URL, --url=URL:playbook倉庫的url
--vault-id=VAULT_IDS
--vault-password-file=VAULT_PASSWORD_FILES
-v, --verbose
--verify-commit:驗證簽出提交的GPG簽名,如果失敗則中止運行playbook。 這需要相應的VCS模塊來支持這種操作
--version
(2)Connection Options:連接選項
-k, --ask-pass
--private-key=PRIVATE_KEY_FILE
-u REMOTE_USER, --user=REMOTE_USER
-c CONNECTION, --connection=CONNECTION
-T TIMEOUT, --timeout=TIMEOUT
--ssh-common-args=SSH_COMMON_ARGS
--sftp-extra-args=SFTP_EXTRA_ARGS
--scp-extra-args=SCP_EXTRA_ARGS
--ssh-extra-args=SSH_EXTRA_ARGS
(3)Privilege Escalation Options:提權選項
-K, --ask-become-pass
6.ansible-inventory
Usage: ansible-inventory [options] [host|group]
(1)Options:
--ask-vault-pass
--export:在執行--list時,以一種針對導出進行優化的方式表示,而不是作為Ansible如何處理它的准確表示
-i INVENTORY, --inventory=INVENTORY, --inventory-file=INVENTORY
--output=OUTPUT_FILE:在執行--list時,將庫存發送到文件而不是屏幕
--playbook-dir=BASEDIR
--toml:使用TOML格式而不是默認的JSON,忽略--graph
--vars:將vars添加到graphs
--vault-id=VAULT_IDS
--vault-password-file=VAULT_PASSWORD_FILES
-v, --verbose
--version
-y, --yaml:使用yaml替換默認的json格式
(2)Actions:
--list:輸出所有主機信息,作為庫存腳本
--host=HOST:輸出特定主機信息,作為庫存腳本
--graph:創建庫存圖,如果提供必須的模式是一個有效的組名
示例1:
[root@centos01 ansible]# ansible-inventory --list { "_meta": { "hostvars": { "148.70.120.50": { "ansible_ssh_pass": "467661568cx." }, "148.70.122.28": { "ansible_ssh_pass": "467661568cx." } } }, "all": { "children": [ "node", "ungrouped" ] }, "node": { "hosts": [ "148.70.120.50", "148.70.122.28" ] } }
示例2:
@all: |--@node: | |--148.70.120.50 | |--148.70.122.28 |--@ungrouped:
7.ansible-vault
加密解密ansible中的數據文件。
Usage: ansible-vault [create|decrypt|edit|encrypt|encrypt_string|rekey|view] [options] [vaultfile.yml]
(1)action
create:創建並加密文件
decrypt:加密一個文件
encrypt:解密一個文件
rekey:修改密鑰
view:打印加密文件的內容
(2)options
--ask-vault-pass
--new-vault-id=NEW_VAULT_ID
--new-vault-password-file=NEW_VAULT_PASSWORD_FILE:用於重新密鑰的新保管庫密碼文件
--vault-id=VAULT_IDS
--vault-password-file=VAULT_PASSWORD_FILES
-v, --verbose
--version
8.ansible-galaxy
執行各種角色相關操作。
Usage: ansible-galaxy [delete|import|info|init|install|list|login|remove|search|setup] [--help] [options] ...
(1)options
-c, --ignore-certs:忽略SSL證書驗證錯誤。
-s API_SERVER, --server=API_SERVER:API服務器目標地址
-v, --verbose
--version
(2)action
delete
import
info
init
install
list
login
remove
search
setup