Ansible 正在尝试获取一个任务,该任务要在playbook的输出中显示资源清册别名而不是主机名
我的playbook中有一项任务,即备份每个远程主机上的目录,如下所示:Ansible 正在尝试获取一个任务,该任务要在playbook的输出中显示资源清册别名而不是主机名,ansible,ansible-inventory,Ansible,Ansible Inventory,我的playbook中有一项任务,即备份每个远程主机上的目录,如下所示: - name: Copy files to backup synchronize: src: /opt/myDir/ dest: /opt/myBackupDir/ archive: yes ignore_errors: no delegate_to: "{{ inventory_hostname }}" register: sync_out 我的清单是这样的:
- name: Copy files to backup
synchronize:
src: /opt/myDir/
dest: /opt/myBackupDir/
archive: yes
ignore_errors: no
delegate_to: "{{ inventory_hostname }}"
register: sync_out
我的清单是这样的:
myWeb1 ansible_host=prodvm1 ansible_user=testuser
myApp1 ansible_host=prodvm2 ansible_user=testuser
myApp2 ansible_host=prodvm3 ansible_user=testuser
问题是显示的输出如下所示:
TASK [Copy files to backup] **********************************************************************************************************************************************************
ok: [myWeb1 -> prodvm1]
ok: [myApp1 -> prodvm2]
ok: [myApp2 -> prodvm3]
由于我正在委派任务,因此输出中显示了两个字段,用箭头标记分隔,但我希望它显示清单中指定的名称/别名,即myApp1/myWeb1,而不是箭头后面的实际主机名(prodvm*)(以避免显示主机名/IPs)
我试图使用debug模块来查看ansible将inventory_主机名计算为什么,但它给出了预期的结果,即myWeb1
在使用“委派到”模块时,我如何才能获得类似的行为?对于Ansible来说,这真是令人讨厌的行为。授权总是“切中要害” 如果它真的让你恼火,你可以尝试禁用委派并使用
ansible\u host
技巧,但在我看来,委派更好(即使输出中有垃圾)
这是ansible_主机的技巧:
- name: Copy files to backup
synchronize:
src: /opt/myDir/
dest: /opt/myBackupDir/
archive: true
var:
ansible_host: '{{ hostvars[name_where_its_delegated].ansible_host }}'
register: sync_out
我再次警告你,授权比这更好。对于Ansible来说,这真是令人讨厌的行为。授权总是“切中要害” 如果它真的让你恼火,你可以尝试禁用委派并使用
ansible\u host
技巧,但在我看来,委派更好(即使输出中有垃圾)
这是ansible_主机的技巧:
- name: Copy files to backup
synchronize:
src: /opt/myDir/
dest: /opt/myBackupDir/
archive: true
var:
ansible_host: '{{ hostvars[name_where_its_delegated].ansible_host }}'
register: sync_out
我再次警告你,授权比这更好