Извлечение части {{inventory_hostname}} в Ansible для использования в сборнике пьес - PullRequest
0 голосов
/ 28 апреля 2020

В настоящее время я пишу небольшую Ansible пьесу, работа которой заключается в добавлении дополнительного домена в список поиска в /etc/resolv.conf.

Второй домен, добавляемый в список поиска. должен содержать часть имени хоста целевых хостов. Я получаю имя хоста каждого из целевых хостов во время выполнения playbook, используя переменную magi c {{инвентарь_хоста}}.

Затем мне нужно извлечь символы 4 - 6 из {{инвентарь_имя}} (скажем, «xyz»), так что вторым доменом, добавляемым в список поиска, будет xyz.foo.bar. В bash это было бы получено с чем-то вроде:

SERVER=$('hostname':3:3)
env=${SERVER:3:3}

... и переменная 'env' будет равна 'xyz'.

Книга воспроизведения работает так долго поскольку 'xyz' определяется вручную.

Я знаю, что Ansible имеет фильтры регулярных выражений, которые могут помочь с чем-то вроде этого, однако я не мог понять регулярное выражение, которое делает то, что мне нужно.

Для полноты картины я попробовал нечто подобное в ansible:

{{ inventory_hostname|3:3 }}

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 28 апреля 2020

Это почти то же самое, вы можете использовать "{{ inventory_hostname[3:6] }}" для выбора символов от 3 до 6.

Например, это задание

  - debug:
      msg: "{{ inventory_hostname[3:6] }}"

Будет выводить

ok: [localhost] => {
    "msg": "alh"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...