我有一个简单的主机清单:
server1.com
server2.com
server3.com
server4.com
我在此清单上运行一些任务,最后,创建文件并在所有主机之间的共享文件夹上插入带有lineinfile的行:
- name: "END - Insert infos in /sharefolder/{{ inventory_hostname|upper }}"
lineinfile:
path: "/sharefolder/{{ inventory_hostname|upper }}"
state: present
create: yes
regexp: "^{{ inventory_hostname }}"
line: "{{ inventory_hostname|upper }};This is my line"
owner: owner
group: group
mode: '0644'
当我运行剧本时,一切都很好:
PLAY RECAP **************************************************************************************************************************
server1.com : ok=14 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
server2.com : ok=14 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
server3.com : ok=14 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
server4.com : ok=14 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
但是当我查看共享文件夹时,我没有最后一个主机的文件:
$ ls -l /sharefolder/
-rw-r--r-- 1 owner group 123 Apr 3 11:48 SERVER1.COM
-rw-r--r-- 1 owner group 105 Apr 3 11:48 SERVER2.COM
-rw-r--r-- 1 owner group 123 Apr 3 11:48 SERVER3.COM
我测试了几台主机,在主机清单末尾添加了空行,并在启动剧本时添加了选项--forks=1
,但问题仍然存在。选项-vvv
返回一切正常,已经为最后一个主机创建了文件并添加了行,但不是这种情况。
为什么文件大小不同?如果创建文件并在每个文件中写入相同的文件,则文件大小应相同。也许您在不同的主机上查看同一目录?