#ansible
Вопрос:
Я использую следующий сборник пьес
---
- name: ""
hosts: nexus
tasks:
- name: ""
debug:
var="{{ vlans | map(attribute='vlan_id') | join(',') }}"
и результат таков:
ok: [nx01] => {
"10,20,100,30": "(10, 20, 100, 30)"
}
Каков тип моего вывода ?
Я пытался
---
- name: ""
hosts: nexus
tasks:
- name: ""
debug:
var="{{ vlans | map(attribute='vlan_id') | join(',') | type_debug }} "
но появляется ошибка
ok: [nx02] => {
"str ": "VARIABLE IS NOT DEFINED!"
}
Комментарии:
1.
var
возможностьdebug
состоит в том, чтобы отлаживать содержимое var, непосредственно указывая его имя. Здесь вы хотите, вы хотите использовать этуmsg
опцию. Ознакомьтесь с документацией
Ответ №1:
попробуйте это:
- name: Create a string with vlans
debug:
msg:
"{{ vlans | map(attribute = 'vlan_id') | join(',') }}"
- name: Create a string with vlans | type_debug
debug:
msg:
"{{ vlans | map(attribute = 'vlan_id') | join(',') | type_debug }}"
выход:
TASK [Create a string with vlans] **************************************
ok: [localhost] => {
"msg": "10,20,100,30"
}
TASK [Create a string with vlans | type_debug] *************************
ok: [localhost] => {
"msg": "str"
}
Тот же пример со списком:
- name: Create a list with vlans
debug:
msg:
"{{ vlans | map(attribute = 'vlan_id') | list | default([]) }}"
- name: Create a string with vlans | type_debug
debug:
msg:
"{{ vlans | map(attribute = 'vlan_id') | list | default([]) | type_debug }}"
И результат:
TASK [Create a list with vlans] ***************************************
ok: [localhost] => {
"msg": [
10,
20,
100,
30
]
}
TASK [Create a string with vlans | type_debug] ************************
ok: [localhost] => {
"msg": "list"
}
И если вам нужно установить переменную:
- name: Set variable
set_fact:
mystrvar: "{{ vlans | map(attribute = 'vlan_id') | join(',') }}"
mylistvar: "{{ vlans | map(attribute = 'vlan_id') | list | default([]) }}"
- name: Debug mystrvar
debug:
var: mystrvar
- name: Debug mystrvar
debug:
var: mystrvar | type_debug
- name: Debug mylistvar
debug:
var: mylistvar
- name: Debug mylistvar
debug:
var: mylistvar | type_debug
Вывод:
TASK [Set variable] *******************************************************
ok: [localhost]
TASK [Debug mystrvar] *****************************************************
ok: [localhost] => {
"mystrvar": "10,20,100,30"
}
TASK [Debug mystrvar] *****************************************************
ok: [localhost] => {
"mystrvar | type_debug": "str"
}
TASK [Debug mylistvar] ****************************************************
ok: [localhost] => {
"mylistvar": [
10,
20,
100,
30
]
}
TASK [Debug mylistvar] ****************************************************
ok: [localhost] => {
"mylistvar | type_debug": "list"
}