1:調試 playbook 時,最該先看哪一段輸出??
答:先查看ansible-navigator run的 PLAY RECAP 段落,它能一次性給出每臺受管主機的 ok、changed、unreachable、failed、skipped、rescued、ignored 等計數,快速定位問題主機。
2:如何動態查看某個變量的實時值??
答:使用ansible.builtin.debug模塊。?
示例:
yaml
- name: 顯示空閑內存
? ansible.builtin.debug:
??? msg: "Free memory is {{ ansible_facts['memfree_mb'] }} MB"
- name: 顯示變量 output 的值
? ansible.builtin.debug:
??? var: output
??? verbosity: 2
3:上線前怎樣快速做“語法體檢”??
答:ansible-navigator run playbook.yml --syntax-check` —— 純 YAML/Playbook 語法檢查;? ansible-lint playbook.yml—— 基于紅帽最佳實踐的樣式/邏輯檢查(FQCN、空格、空行等)。
4:ansible-lint 報 “fqcn-builtins” 錯誤是什么意思??
答:任務中使用了短模塊名,需改為完全限定集合名(FQCN)。
5:運行失敗后,如何“復盤”當時的完整執行現場??
答:利用 playbook artifact:?
每次ansible-navigator run會自動生成<playbook>-artifact-<時間戳>.json。?
用ansible-navigator replay <artifact>交互式逐條查看任務結果、變量、失敗原因。?
若不想留痕跡,可在項目目錄創建 ansible-navigator.yml并寫入:
ansible-navigator:
? playbook-artifact:
????? enable: false
6:如何對受管主機做連通性“三連擊”排查??
答:認證:ssh -i <key> <remote_user>@<host>手動驗證。?
清單:ansible_host變量是否寫錯 IP/域名。?
權限升級:確認遠程用戶 sudo 免密或提供 -K輸入密碼。
7:只想“演習”不真正改系統,用什么參數??
答:ansible-navigator run playbook.yml --check [--diff]。?
--check:Dry-run,展示 would-be 變更;?
--diff:配合顯示配置文件/模板差異。