[英]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.