如何使用ansible更新文件中的新主机名?
How to update new hostname in a file using ansible?
我正在使用下面的代码用新的主机名替换旧的主机名,除了以数字开头的主机名外,它工作正常。(OLD_HOSTNAME 和 NEW_HOSTNAME 是 vars
)
tasks:
- name: "Updating file"
replace:
name: /tmp/interfaces
backup: yes
regexp: '(\s+){{ OLD_HOSTNAME }}(\s+)'
replace: '{{ NEW_HOSTNAME }}'
如果我将 \1 替换为 \g<1>,以数字开头的主机名也会被放置。但根据 ansible doc、 is used ambiguously
和 \g<1> used explicitly
.
问题:此更改会影响任何其他格式的主机名吗?
不会,使用显式形式不会影响其他主机名格式。
当 NEW_HOSTNAME
以数字开头时出现问题的原因是如果 NEW_HOSTNAME
是 [=14],replace
字符串会变成类似 3-server
=] 并且没有反向引用 3
。使用显式形式可以保留您的原始意图。在我的示例中,replace
将变为 \g<1>23-server\g<2>
。
我正在使用下面的代码用新的主机名替换旧的主机名,除了以数字开头的主机名外,它工作正常。(OLD_HOSTNAME 和 NEW_HOSTNAME 是 vars
)
tasks:
- name: "Updating file"
replace:
name: /tmp/interfaces
backup: yes
regexp: '(\s+){{ OLD_HOSTNAME }}(\s+)'
replace: '{{ NEW_HOSTNAME }}'
如果我将 \1 替换为 \g<1>,以数字开头的主机名也会被放置。但根据 ansible doc、 is used ambiguously
和 \g<1> used explicitly
.
问题:此更改会影响任何其他格式的主机名吗?
不会,使用显式形式不会影响其他主机名格式。
当 NEW_HOSTNAME
以数字开头时出现问题的原因是如果 NEW_HOSTNAME
是 [=14],replace
字符串会变成类似 3-server
=] 并且没有反向引用 3
。使用显式形式可以保留您的原始意图。在我的示例中,replace
将变为 \g<1>23-server\g<2>
。