как отфильтровать / обрезать определенное значение переменной в ansible - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть требование, когда мне нужно извлечь / отфильтровать определенную длину строки в ansible. Например: -

Мой узел-компьютер имеет следующее имя хоста: - jpujenkins, jpunessus.

Так что в действительности переменная у нас будет.

{{ansible_hostname}} -> jpujenkins.

{{ansible_hostname}} -> jpunessus

Но мне нужно удалить первые три буквы, скажем 'jpu', из имени хоста всех узлов.

Желаемый вывод: - Дженкинс, Нессус

Также можно использовать заглавную букву сказать Дженкинс, Нессус?

1 Ответ

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

Вы можете использовать фильтр regex_replace Ansible для удовлетворения ваших потребностей. https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#regular -expression-filters

Например, мое имя хоста ip-192-168-1-65.

---
- hosts: all
  tasks:
    - debug: msg="{{ ansible_hostname | regex_replace('^ip-', '') }}"

Когда я выполняю книгу воспроизведения, он возвращает имя хоста, где '^ip-' деталь заменяется пустой строкой ''.

TASK [debug] *********************************************************************************************************************************************************************
Tuesday 28 April 2020  11:18:24 +0300 (0:00:07.281)       0:00:07.498 *********
ok: [localhost] =>
  msg: 192-168-1-65
...