Как обновить новое имя хоста в файле, используя ansible? - PullRequest
0 голосов
/ 14 января 2020

Я использую приведенный ниже код для замены старого имени хоста новым, он работает, за исключением имен хостов, начинающихся с цифр. (OLD_HOSTNAME и NEW_HOSTNAME: vars)

  tasks:
  - name: "Updating file"
    replace:
      name: /tmp/interfaces
      backup: yes
      regexp: '(\s+){{ OLD_HOSTNAME }}(\s+)'
      replace: '\1{{ NEW_HOSTNAME }}\2'

Если я заменю \ 1 с \ g <1> , также будут размещены имена хостов, начинающиеся с цифр. Но согласно ansible do c, \1 is used ambiguously и \g<1> used explicitly.

Вопрос: повлияет ли это изменение на любой другой формат имени хоста?

1 Ответ

1 голос
/ 17 января 2020

Нет, использование явной формы не повлияет на другие форматы имен хостов.

Причина, по которой у вас возникает проблема, когда NEW_HOSTNAME начинается с числа, заключается в том, что строка replace станет чем-то вроде \123-server\2 если NEW_HOSTNAME было 23-server и нет обратной ссылки \123. Использование явной формы сохраняет ваши первоначальные намерения. В моем примере replace станет \g<1>23-server\g<2>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...