簡體   English   中英

如何使用 Ansible Playbook 與特定組一起玩

[英]How to Play with particular group using Ansible Playbook

Ansible 版本:2.1.0

我的ansible主機文件是:

[PM]
xyz.example.com ansible_connection=ssh

[ND]
pqr.example.com ansible_connection=ssh

[CM]
xyz.example.com ansible_connection=ssh
pqr.example.com ansible_connection=ssh

劇本是:

- hosts: PM:ND:CM
   remote_user: root
   tasks:
    {some thing}

- hosts: PM
   remote_user: root
   tasks:
    {some thing}

 - hosts: ND
   remote_user: root
   tasks:
    {some thing}

- hosts: CM
   remote_user: root
   tasks:
    {some thing}

我正在使用以下命令運行劇本:

ansible-playbook --limit 'PM' akana-installation.yml

但是劇本仍然在與所有主機一起玩,這意味着

Play 'PM:ND:CM'
Play 'PM'
Play 'ND'
Play 'CM'

所有戲劇都在播放。 請幫我解決這個問題。

我需要的是:在執行劇本時,我會給出組名,只有那個組應該玩,所以請讓我知道還有其他方法。

最初的問題是:-- limit 選項不起作用

通過調用ansible-playbook --limit 'PM' akana-installation.yml你告訴 ansible 將服務器限制在 PM 組中的主機上。
在您的情況下,它將是xyz.example.com
請記住,如果您在多個組中擁有此服務器,正如您所做的那樣,它仍然是這些組的成員。
您的有限庫存將變為:

[PM]
xyz.example.com ansible_connection=ssh

[ND]

[CM]
xyz.example.com ansible_connection=ssh

ansible-playbook 將執行你的劇本中適用於 xyz.example.com 的每一個劇本。
在你的情況下:

Play 'PM:ND:CM'
[xyz.example.com]
Play 'PM'
[xyz.example.com]
Play 'ND'
skipping: no hosts matched
Play 'CM'
[xyz.example.com]

為劇本文件創建目錄:

mkdir playbooks

將您的劇本拆分為單獨的文件,例如。 劇本/pm.yml:

- hosts: PM
  remote_user: root
  tasks:
  {some thing}

創建文件 all.yml

- hosts: PM:ND:CM
  remote_user: root
  tasks:
  {some thing}

- include: playbooks/pm.yml
- include: playbooks/nd.yml
- include: playbooks/cm.yml    

現在您有單獨的邏輯,您可以使用命令播放所有內容:

ansible-playbook all.yml

或運行單獨的命令:

ansible-playbook playbooks/pm.yml

或者

ansible-playbook playbooks/nd.yml

這是對上一個答案的補充。 如果我誤解了您的問題,我深表歉意,但您的示例劇本沒有描述。

清理跳過的主機:
組“ND”將(如上所述)不匹配任何主機。 如果您想從播放中刪除輸出,則必須使用回調插件。 我使用以下要點

另一種限制方式:
要限制您要求的方式,您需要使用TAGS 這將允許您通過播放(這是您似乎想要做的)而不是主機列表來限制。

為此,請在 play 中添加一個標簽:

...
- hosts: PM
  remote_user: root
  tags: pmtag
  tasks:
    {some thing}

然后根據您的需要運行排除或包含新標簽的劇本。

ansible-playbook --limit 'PM' akana-installation.yml --tags pmtag

這將確保只有 PM 運行的主機只播放帶有 pmtag 標記的播放。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM