Рейтинг:1

Пользовательский факт не получает значение

флаг ph
azk


Это игровая часть роли, которая общается с vmware.
Я пытаюсь установить пользовательский факт (target_vm) которые получают имя виртуальной машины.
Но когда я печатаю это значение с помощью отлаживать модуль кажется пустым.
Я не знаю, что я делаю неправильно в set_fact модуль.

Это Playbook

- delegate_to: локальный хост
  стать: нет
  делегат_факты: да
  вары:
    vc_hostname: 'vcenter.bio.local'
    vc_username: 'bio.local\ansible'
    vc_password: "{{v_pass}}"
    vm_uuid: '4217200F-46D2-C9FD-E7FD-768D21B327E8' | ниже
  блокировать:
    - имя: Собирать только зарегистрированные виртуальные машины
      vmware_vm_info:
        имя хоста: '{{ vc_hostname }}'
        имя пользователя: '{{ vc_username }}'
        пароль: '{{ vc_password }}'
        validate_certs: Ложь
        вм_тип: вм
      делегат_к: локальный
      зарегистрироваться: виртуальная_информация
      no_log: правда

    - имя: установить факты target_vm, когда они равны vm-name
      set_fact:
        target_vm: "{{ my_item.guest_name }}"
      with_items: "{{ virtual_info.virtual_machines }}"
      когда: my_item.uuid == vm_uuid
      loop_control:
        loop_var: мой_элемент


    - name: Распечатать имя гостя
      отлаживать:
        сообщение:
          - "{{ foo_item.guest_name }}"
          - "{{ target_vm | по умолчанию ('') }}"
      with_items: "{{ virtual_info.virtual_machines }}"
      когда: foo_item.uuid == vm_uuid
      loop_control:
        loop_var: foo_item


это результат

ЗАДАЧА [vmwaretaks : Собрать только зарегистрированные виртуальные машины] ********************************************** ******************************************************* *****
хорошо: [тествм]

ЗАДАЧА [vmwaretaks: установить факты target_vm, если они равны vm-name] **************************************** ******************************************************* *********
ok: [testvm] => (item={'guest_name': 'TESTVM', 'guest_fullname': 'Red Hat Enterprise Linux 6 (64-разрядная версия)', 'power_state': 'poweredOn', 'ip_address': '192.168 .54.32', 'mac_address': ['00:32:52:97:e9:c8'], 'uuid': '4217200f-46d2-c9fd-e7fd-768d21b327e8', 'vm_network': {'00:32: 52:97:e9:c8': {'ipv4': ['192.168.54.32'], 'ipv6': ['fe80::250:56ff:fe97:d4c3']}}, 'esxi_hostname': 'b3j15esx05. bio.local», «кластер»: «JAS-Lab-DEP», «атрибуты»: {}, «теги»: []})

ЗАДАЧА [vmwaretaks : Распечатать имя гостя] ************************************************ ******************************************************* ****************************
ok: [testvm] => (item={'guest_name': 'TESTVM', 'guest_fullname': 'Red Hat Enterprise Linux 6 (64-разрядная версия)', 'power_state': 'poweredOn', 'ip_address': '192.168 .54.32', 'mac_address': ['00:32:52:97:e9:c8'], 'uuid': '4217200f-46d2-c9fd-e7fd-768d21b327e8', 'vm_network': {'00:32: 52:97:e9:c8': {'ipv4': ['192.168.54.32'], 'ipv6': ['fe80::250:56ff:fe97:d4c3']}}, 'esxi_hostname': 'b3j15esx05. bio.local», «кластер»: «JAS-Lab-DEP», «атрибуты»: {}, «теги»: []}) => {
    "сообщение": [
        "ТЕСТВМ",
        ""
    ]
}

ОБЗОР ИГРЫ ******************************************************* ******************************************************* *************************************************
testvm: ok=13 изменено=0 недостижимо=0 не удалось=0 пропущено=2 спасено=0 проигнорировано=0


Как вы можете видеть, второе сообщение, которое печатает вывод target_vm var, пусто.
Надеюсь, вы можете помочь. Заранее спасибо!

azk avatar
флаг ph
azk
Я изменил способ разбора guest_name в set_fact и добился прогресса, но модуль отладки по-прежнему не печатает target_vm.
azk avatar
флаг ph
azk
`- имя: установить факты target_vm, если они равны vm-name set_fact: target_vm: "{{ my_item['guest_name'] }}" with_items: "{{ virtual_info.virtual_machines }}" когда: my_item.uuid == vm_uuid loop_control: loop_var: my_item`
azk avatar
флаг ph
azk
`TASK [vmwaretaks: установить факты target_vm, если они равны vm-name] *************************************** **************************************** ok: [testvm] => (item={'guest_name': 'TESTVM', 'guest_fullname': 'Red Hat Enterprise Linux 6 (64-разрядная версия)', 'power_state': 'poweredOn', 'ip_address': '192.168 .54.32', 'mac_address': ['00:32:52:97:e9:c8'], 'uuid': '4217200f-46d2-c9fd-e7fd-768d21b327e8', 'vm_network': {'00:32: 52:97:e9:c8': {'ipv4': ['192.168.54.32']}}, 'esxi_hostname': 'b3j15esx05.bio.local', 'кластер': 'JAS-Lab-DEP', 'атрибуты ': {}, 'tags': []}) => {"ansible_facts": {"target_vm": "TESTVM"}...`
Рейтинг:0
флаг ph
azk

Хорошо. Кажется, факт установлен с его значением, но я не могу его правильно распечатать, поэтому я снова задам вопрос в другом посте.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.