我正在做一个ansible-playbook,该书应该替换2个标记/条之间的文本,但是我做不到。
---
- hosts: 127.0.0.1
tasks:
- name: insert/update configuration using a local file and validate it
blockinfile:
block: "{{ lookup('file', '/home/$USER/tmp/ssh_keys.template') }}"
dest: "/home/$USER/tmp/ssh_keys"
marker: "xidiot"
marker_begin: "##### "
marker_end "##### "
我需要ssh_keys.template的文件内容来替换标记之间的ssh_keys文件中的文本块(在ssh_key文件中存在):
##### xidiot START
和
##### xidiot END
运行此剧本后,ssh_keys.template的内容将放在文件ssh_keys的底部。
这是在结束标记“ ##### xidiot END”之后插入的块:
xidiot
### xidiot ADM
key 1
key 2
key 3
### xidiot ADM END
### xidiot OPS
key 4
key 5
key 6
### xidiot OPS END
### xidiot AUTOMATION BEGIN
key 7
key 8
key 9
### xidiot AUTOMATION END
### OTHERS
key 10
key 11
key 12
### OTHERS END
xidiot
请注意,模板文件中未显示开头和结尾的xidiot。模板文件以##### xidiot START开头 如果我从.yml文件中删除了标记marker_begin和marker_end并放置
# BEGIN ANSIBLE MANAGED BLOCK
# END ANSIBLE MANAGED BLOCK
而不是
放在ssh_keys文件中##### xidiot
一切正常。
这是模板本身:
##### xidiot START
### xidiot ADM
key 1
key 2
key 3
### xidiot ADM END
### xidiot OPS
key 4
key 5
key 6
### xidiot OPS END
### xidiot AUTOMATION BEGIN
key 7
key 8
key 9
### xidiot AUTOMATION END
### OTHERS
key 10
key 11
key 12
### OTHERS END
##### xidiot END