Зацикливание на сетевых интерфейсах и извлечение MAC-адресов через Ansible

Вы могли бы сделать:

$ printf '%s ' {a..z}; echo
a b c d e f g h i j k l m n o p q r s t u v w x y z

$ printf '%s%s ' {a..z}{,}; echo
aa bb cc dd ee ff gg hh... ss tt uu vv ww xx yy zz 

$ printf '%s%s%s ' {a..z}{,,}
aaa bbb ccc ddd eee... ttt uuu vvv www xxx yyy zzz

Объяснение :Расширение фигурной скобки создаст один аргумент для каждого значения, разделенного запятой (и начальной строкой ):

.
$ echo A{d,u,j}
Ad Au Aj

Но если значение пустое, будет просто повторяться начальная строка:

$ echo A{,,}
A A A

Если ведущая строка сама является расширением фигурной скобки, все ее строки будут повторяться:

$ echo {one,two}{,,}
one one one two two two

Затем printf (и замыкающее эхо )используются для форматирования вывода:

$ printf '%s%s%s ' {one,two}{,,}; echo
oneoneone twotwotwo

Однобуквенные значения:

$ printf '%s%s%s ' {a..d}{,,}; echo
aaa bbb ccc ddd
0
03.05.2021, 14:27
1 ответ

Решение, как предложил Владимир выше, было следующим:

msg: "{{ ansible_facts[item]['macaddress']|default(None) }}"

Весь блок:

  - name: Find NICs MAC
    ansible.builtin.debug:
      msg: " interface {{ item }}'s MAC is {{ ansible_facts[item]['macaddress']|default(None) }}"
    with_items:
    - "{{ ansible_interfaces }}"
0
28.07.2021, 11:35

Теги

Похожие вопросы