Как сохранить содержимое одной переменной в другой с помощью Ansible? - PullRequest
0 голосов
/ 10 марта 2020

У меня есть эта переменная

  - debug:
      var: hostvars{{ls_ip}}.host_name

Вывод:

ok: [40.53.52.135] => {
    "hostvars['40.53.52.136'].host_name": "SRV0026"
}

Мне нужно сохранить строку SRV0026 в новой переменной, чтобы использовать эту переменную в другая задача, но с использованием set_fact показать имя переменной, но не ее содержимое. Я пробовал с "var" и "msg"

  - set_fact:
      ls_name: hostvars{{ls_ip}}.host_name

  - name: Debug ls_name whit var
    debug:
      var: ls_name

  - name: Debug ls_name whit msg
    debug:
      msg: "{{ls_name}}"

Вывод:

TASK [elasticsearch : Debug ls_name con var] ************************************************************
Tuesday 10 March 2020  15:02:24 -0300 (0:00:00.152)       0:00:04.630 ********* 
ok: [40.53.52.135] => {
    "ls_name": "hostvars['40.53.52.136'].host_name"
}

TASK [elasticsearch : Debug ls_name whit msg] ***********************************************************
Tuesday 10 March 2020  15:02:24 -0300 (0:00:00.098)       0:00:04.729 ********* 
ok: [40.53.52.135] => {
    "msg": "hostvars['40.53.52.136'].host_name"
}

Можете ли вы помочь мне?

1 Ответ

0 голосов
/ 10 марта 2020

Q: "Я вижу только строку SRV0026, использующую отладку с var"

A: Чтобы отобразить значение переменной с помощью debug / msg, попробуйте это

  - debug:
      msg: "{{ hostvars[ls_ip].host_name }}"

Чтобы объявить переменную, попробуйте это

  - set_fact:
      ls_name: "{{ hostvars[ls_ip].host_name }}"
...