summaryrefslogtreecommitdiffstats
path: root/playbooks/libvirt/openshift-cluster/list.yml
diff options
context:
space:
mode:
authorLénaïc Huard <lhuard@amadeus.com>2015-04-08 16:33:55 +0200
committerLénaïc Huard <lhuard@amadeus.com>2015-04-10 16:02:51 +0200
commit9fbec064d28a72963b1566258b4bcabcd63b2c23 (patch)
treebe154b3f1a19f7fa9a65bb936d244842c1a07bd5 /playbooks/libvirt/openshift-cluster/list.yml
parentfbea3dd0b32457d208c76c1fc5619ac1e4e6c604 (diff)
downloadopenshift-9fbec064d28a72963b1566258b4bcabcd63b2c23.tar.gz
openshift-9fbec064d28a72963b1566258b4bcabcd63b2c23.tar.bz2
openshift-9fbec064d28a72963b1566258b4bcabcd63b2c23.tar.xz
openshift-9fbec064d28a72963b1566258b4bcabcd63b2c23.zip
Add libvirt as a provider
Diffstat (limited to 'playbooks/libvirt/openshift-cluster/list.yml')
-rw-r--r--playbooks/libvirt/openshift-cluster/list.yml43
1 files changed, 43 insertions, 0 deletions
diff --git a/playbooks/libvirt/openshift-cluster/list.yml b/playbooks/libvirt/openshift-cluster/list.yml
new file mode 100644
index 000000000..6bf07e3c6
--- /dev/null
+++ b/playbooks/libvirt/openshift-cluster/list.yml
@@ -0,0 +1,43 @@
+- name: Generate oo_list_hosts group
+ hosts: localhost
+ connection: local
+ gather_facts: no
+
+ vars:
+ libvirt_uri: 'qemu:///system'
+
+ tasks:
+ - name: List VMs
+ virt:
+ command: list_vms
+ register: list_vms
+
+ - name: Collect MAC addresses of the VMs
+ shell: 'virsh -c {{ libvirt_uri }} dumpxml {{ item }} | xmllint --xpath "string(//domain/devices/interface/mac/@address)" -'
+ register: scratch_mac
+ with_items: '{{ list_vms.list_vms }}'
+ when: item|truncate(cluster_id|length+1, True) == '{{ cluster_id }}-...'
+
+ - name: Collect IP addresses of the VMs
+ shell: "awk '/{{ item.stdout }}/ {print $1}' /proc/net/arp"
+ register: scratch_ip
+ with_items: '{{ scratch_mac.results }}'
+ when: item.skipped is not defined
+
+ - name: Add hosts
+ add_host:
+ hostname: '{{ item[0] }}'
+ ansible_ssh_host: '{{ item[1].stdout }}'
+ ansible_ssh_user: root
+ groups: oo_list_hosts
+ with_together:
+ - '{{ list_vms.list_vms }}'
+ - '{{ scratch_ip.results }}'
+ when: item[1].skipped is not defined
+
+- name: List Hosts
+ hosts: oo_list_hosts
+
+ tasks:
+ - debug:
+ msg: 'public:{{ansible_default_ipv4.address}} private:{{ansible_default_ipv4.address}}'