Ansible "skipping" 库存中的最后一台主机
Ansible "skipping" last host from inventory
我有一个简单的主机清单:
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
我测试了几台主机,在主机清单末尾添加了空行,并在启动 playbook 时使用了选项 --forks=1
,但问题仍然存在。选项 -vvv
returns 一切正常,文件已创建并为最后的主机添加了行,但事实并非如此。
为什么文件大小不同?如果您创建文件并在每个文件中写入相同的文件,则它们应该具有相同的大小。也许你在不同的主机上查看相同的目录?
如果你 运行 你的 playbook 在 4 台主机上,那么在每台主机上都会用一行创建一个文件。如果不想在远程系统上执行任务,则必须使用 .
我有一个简单的主机清单:
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
我测试了几台主机,在主机清单末尾添加了空行,并在启动 playbook 时使用了选项 --forks=1
,但问题仍然存在。选项 -vvv
returns 一切正常,文件已创建并为最后的主机添加了行,但事实并非如此。
为什么文件大小不同?如果您创建文件并在每个文件中写入相同的文件,则它们应该具有相同的大小。也许你在不同的主机上查看相同的目录?
如果你 运行 你的 playbook 在 4 台主机上,那么在每台主机上都会用一行创建一个文件。如果不想在远程系统上执行任务,则必须使用