【发布时间】:2020-08-16 16:20:47
【问题描述】:
我正在尝试从 ansible playbook 运行中构建库存文件。
我试图通过同时运行service libvirtd status 和virsh list --all 来列出所有kvm 主机和在其上运行的来宾,并将值存储在ansible 主机上的文件中。
我尝试了几种不同的剧本结构,但都没有成功写入文件(使用local_action 仅从一台主机编写了ansible_hostname)。
请有人指导我做错了什么?
这就是我正在运行的:
- name: Determine KVM hosts
hosts: all
become: yes
#gather_facts: false
tasks:
- name: Check if libvirtd service exists
shell: "service libvirtd status"
register: libvirtd_status
failed_when: not(libvirtd_status.rc == 0)
ignore_errors: true
- name: List KVM guests
shell: "virsh list --all"
register: list_vms
when: libvirtd_status.rc == 0
ignore_errors: true
- name: Write hostname to file
lineinfile:
path: /tmp/libvirtd_hosts
line: "{{ ansible_hostname }} kvm guests: "
create: true
#local_action: copy content="{{ item.value }}" dest="/tmp/libvirtd_hosts"
with_items:
- variable: ansible_hostname
value: "{{ ansible_hostname }}"
- variable: list_vms
value: "{{ list_vms }}"
when: libvirtd_status.rc == 0 or list_vms.rc == 0
【问题讨论】:
标签: ansible centos7 centos6 debian-based