簡體   English   中英

在多個角色上使用的不可思議的vSphere事實

[英]ansible vsphere facts for using on multiple roles

我有一個問題。

所以基本上我有一本可以扮演2個角色的劇本。 第一個角色將通過pysphere插件連接到VMware vCenter並創建一個虛擬機,然后通過“收集事實”來“學習”其MAC地址。 (2個任務,一個創建VM,另一個收集事實)。

這樣我就可以“調試”並實際看到新創建的VM的MAC。

我的劇本的第二部分是運行另一個角色,該角色將連接到另一台服務器,並通過ansible的“ shell”模塊輸入一些補鞋匠命令,以創建一個補鞋匠配置文件。

我要實現的是能夠創建一個vm並創建一個補鞋匠安裝配置文件。

當然,這里缺少的部分是VM的MAC地址..(因為補鞋匠的要求)。

而且我無法從第一個角色使該MAC的“事實/變量”成為第二個角色。

有任何想法嗎 ? :)

嘗試使用帶有json的fact_caching。沒有幫助,或者我做錯了什么...

非常感謝!!

您可以使用set_fact設置事實,並在以后甚至在主機之間使用它們。
此示例生成隨機字符串(假設您的示例中為VM的MAC),並稍后在另一台服務器上使用它:

- hosts: host1
  tasks:
    - shell: date | md5sum | head -c 8
      register: random_string_cmd
    - set_fact:
        random_string: "{{ random_string_cmd.stdout }}"

- hosts: host2
  tasks:
    - shell: echo "The random string generated on previous server is {{ hostvars['host1']['random_string'] }}"

您也可以在角色內部使用set_fact

暫無
暫無

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

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