如何使用Ansible更新文件中的新主机名?

问题描述 投票:0回答:1

我正在使用下面的代码将旧的主机名替换为新的主机名,除了以数字开头的主机名之外,其他主机名都起作用。(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>,也将放置以数字开头的主机名。但是按照[doc\1 is used ambiguously\g<1> used explicitly)。

问题:此更改会影响主机名的任何其他格式吗?

regex linux ansible hostname
1个回答
1
投票

否,使用显式形式不会影响其他主机名格式。

[NEW_HOSTNAME以数字开头时出现问题的原因是,如果replace\123-server\2,并且没有向后引用NEW_HOSTNAME,则23-server字符串将类似于\123。使用显式形式可以保留您的原始意图。在我的示例中,replace将变为\g<1>23-server\g<2>

© www.soinside.com 2019 - 2024. All rights reserved.