在剛開始使用 ansible-playbook 做應用程序部署的時候,因為在部署的過程中有使用到 command 或 shell 模塊執行一些自定義的腳本,而且這些腳本都會有輸出,用來表示是否執行正常或失敗。
如果像之前自己寫腳本做應用程序部署的,這很好實現。但現在是用 Ansible 做,那么要怎么樣做可以獲取到 ansible playbook 中 command 模塊的輸出呢?
Ansible 也提供的解決辦法,這時我們就可以通過使用 register 關鍵字來實現,register 關鍵字可以存儲指定命令的輸出結果到一個自定義的變量中,我們通過訪問這個自定義變量就可以獲取到命令的輸出結果。
Register 的使用很方便,只需要在 task 聲明 register 關鍵字,并自定義一個變量名就可以。如下:
```yaml
---
- hosts: all
tasks:
- name: test
command: pwd
register: pwd_result # register指令把pwd執行結果寄存到自定義變量中
- name: echo pwd
debug:
msg: "{{pwd_result}}" # 打印變量
```