我有一个csv文件,如下所示。文件中的行数可能会有所不同。
admin_server, id:1, /tmp
admin_group, id:3, /home
user_group, id:5, /root
我需要将主机名附加到文件中的每一行。即我需要添加第1列,该列将具有主机名。
第一台服务器:
server1,admin_server, id:1, /tmp
server1,admin_group, id:3, /home
server1,user_group, id:5, /root
第二台服务器。
server2,admin_server, id:1, /tmp
server2,admin_group, id:3, /home
server2,user_group, id:5, /root
在Linux中,使用了replace模块,它运行良好。但是在Windows中,替换模块无法正常工作。请告知。
我尝试过的如下。它不起作用,它只是在文件末尾附加了主机名。
- name: Test
win_lineinfile:
path: /tmp/testing.log
line: '"{{ansible_hostname}}"\1'
regexp: '^(.*)$'
答案 0 :(得分:0)
尝试以下操作,因为win_lineinfile模块仅替换最后一个匹配项。
- name: Create a file from a Jinja2 template
win_template:
src: file.conf.j2
dest: C:\Temp\file.conf
{{ansible_hostname}},admin_server, id:1, /tmp
{{ansible_hostname}},admin_group, id:3, /home
{{ansible_hostname}},user_group, id:5, /root
如果ansible_hostname不起作用,请在剧本中设置变量并尝试。