2014-07-07 17:17:39 +00:00
#
# This task is the thing that creates a vm for later use
#
2018-10-01 22:07:15 +00:00
- include_vars : dir=/srv/web/infra/ansible/vars/all/ ignore_files=README
2013-05-03 16:58:47 +00:00
2014-07-07 17:17:39 +00:00
- name : get vm list
2020-06-07 10:50:04 -07:00
vars :
ansible_python_interpreter : "{{ hostvars[vmhost]['ansible_python']['executable'] }}"
2013-11-25 18:37:51 +00:00
delegate_to : "{{ vmhost }}"
2013-05-03 16:56:38 +00:00
virt : command=list_vms
register : result
2016-11-01 16:29:49 +00:00
check_mode : no
2013-05-03 16:56:38 +00:00
2019-12-04 22:33:51 +00:00
- name : ensure no old facts exist
delegate_to : localhost
file : path=/root/.ansible_facts_cache/{{ inventory_hostname }} state=absent
when : inventory_hostname not in result.list_vms
2018-12-20 18:29:02 +00:00
2014-07-07 17:17:39 +00:00
- name : ensure the lv for the guest is made
2020-05-24 10:46:14 -07:00
lvol : lv={{ inventory_hostname }} vg={{ volgroup }} size={{ lvm_size }} state=present
2013-11-25 18:37:51 +00:00
delegate_to : "{{ vmhost }}"
2013-06-11 16:29:13 +00:00
when : inventory_hostname not in result.list_vms
2013-05-03 16:56:38 +00:00
2014-07-07 17:17:39 +00:00
- name : run the virt-install
2013-11-25 18:33:35 +00:00
shell : "{{ virt_install_command }}"
2013-11-25 18:37:51 +00:00
delegate_to : "{{ vmhost }}"
2013-06-11 16:29:13 +00:00
when : inventory_hostname not in result.list_vms
2013-05-03 16:56:38 +00:00
2017-10-09 02:18:50 +00:00
- name : wait for the install to finish -> {{ inventory_hostname }}
2014-07-03 16:37:35 +00:00
virt : command=status name={{ inventory_hostname }}
register : vmstatus
until : vmstatus.status == 'shutdown'
2013-11-25 18:37:51 +00:00
delegate_to : "{{ vmhost }}"
2014-07-19 23:41:52 +00:00
retries : 1500
2018-05-08 02:06:19 +00:00
delay : 20
2013-06-11 16:46:07 +00:00
when : inventory_hostname not in result.list_vms
2013-05-03 16:56:38 +00:00
2017-04-13 17:58:50 +00:00
- name : ARMv7 copy the kernel out
2017-04-13 19:17:57 +00:00
shell : "virt-builder --get-kernel {{ volgroup }}/{{ inventory_hostname }} --output /var/lib/libvirt/images/ | awk -F/ '{print $NF}' > /var/lib/libvirt/images/{{ inventory_hostname }}-details.txt"
2017-04-13 18:36:47 +00:00
delegate_to : "{{ vmhost}}"
2020-06-03 12:12:56 -07:00
when : inventory_hostname.startswith(('buildvm-a32', 'buildvm-armv7','armv7-test')) and ( inventory_hostname not in result.list_vms or armv7kernelupdate is defined )
2017-04-14 10:18:28 +00:00
tags :
- armv7-kernel
2017-04-13 17:58:50 +00:00
2017-04-17 20:22:44 +00:00
- name : ARMv7 extract the kernel details
command : "head -n1 /var/lib/libvirt/images/{{ inventory_hostname }}-details.txt"
delegate_to : "{{ vmhost}}"
register : host_armv7kernel
2020-06-03 12:12:56 -07:00
when : inventory_hostname.startswith(('buildvm-a32', 'buildvm-armv7','armv7-test')) and ( inventory_hostname not in result.list_vms or armv7kernelupdate is defined )
2017-04-17 20:22:44 +00:00
tags :
- armv7-kernel
- name : ARMv7 extract the initrd details
command : "tail -n1 /var/lib/libvirt/images/{{ inventory_hostname }}-details.txt"
delegate_to : "{{ vmhost}}"
register : host_armv7initrd
2020-06-03 12:12:56 -07:00
when : inventory_hostname.startswith(('buildvm-a32', 'buildvm-armv7','armv7-test')) and ( inventory_hostname not in result.list_vms or armv7kernelupdate is defined )
2017-04-17 20:22:44 +00:00
tags :
- armv7-kernel
2017-04-13 17:58:50 +00:00
- name : ARMv7 copy the cmdline out
2017-04-13 19:17:57 +00:00
shell : "virt-cat -a {{ volgroup }}/{{ inventory_hostname }} /boot/extlinux/extlinux.conf | grep -m1 append | sed -e 's/append //'"
2017-04-13 18:36:47 +00:00
delegate_to : "{{ vmhost}}"
2017-04-13 17:58:50 +00:00
register : host_cmdline
2020-06-03 12:12:56 -07:00
when : inventory_hostname.startswith(('buildvm-a32', 'buildvm-armv7','armv7-test')) and ( inventory_hostname not in result.list_vms or armv7kernelupdate is defined )
2017-04-14 10:18:28 +00:00
tags :
- armv7-kernel
2017-04-13 17:58:50 +00:00
- name : ARMv7 update the virt parameters
2019-12-13 19:12:18 +00:00
vars :
ansible_python_interpreter : /usr/bin/python3
2017-04-17 20:22:44 +00:00
virt_boot : domain={{ inventory_hostname }} kernel=/var/lib/libvirt/images/{{ host_armv7kernel.stdout }} initrd=/var/lib/libvirt/images/{{ host_armv7initrd.stdout }} cmdline={{ host_cmdline.stdout }}
2017-04-13 20:02:19 +00:00
delegate_to : "{{ vmhost }}"
2020-06-03 12:12:56 -07:00
when : inventory_hostname.startswith(('buildvm-a32', 'buildvm-armv7','armv7-test')) and ( inventory_hostname not in result.list_vms or armv7kernelupdate is defined )
2017-04-14 10:18:28 +00:00
tags :
- armv7-kernel
2017-04-13 17:58:50 +00:00
2018-07-01 18:37:38 +00:00
- name : when armv7kernelupdate is set we are done
fail : msg="armv7kernelupdate was set, so kernel has been updated and target booted up"
when : armv7kernelupdate is defined
2017-05-14 04:36:36 +00:00
- name : start the vm up and set it to autostart
virt : state=running name={{ inventory_hostname }} autostart=True
2017-04-17 22:09:50 +00:00
delegate_to : "{{ vmhost }}"
when : inventory_hostname not in result.list_vms
2017-04-17 21:57:40 +00:00
- name : ARMv7 pause while VM updates
pause : seconds=5
2020-06-03 12:12:56 -07:00
when : inventory_hostname.startswith(('buildvm-a32', 'buildvm-armv7','armv7-test')) and ( inventory_hostname not in result.list_vms or armv7kernelupdate is defined )
2017-04-17 21:57:40 +00:00
tags :
- armv7-kernel
2017-09-04 17:24:51 +00:00
- name : make sure there is no old ssh host key for the host still around
local_action : known_hosts path={{item}} host={{ inventory_hostname }} state=absent
ignore_errors : True
with_items :
- /root/.ssh/known_hosts
when : inventory_hostname not in result.list_vms
2016-10-25 19:13:19 +00:00
- name : (osbs-control01.stg) make sure there is no old ssh host key for the host still around
known_hosts : path={{item}} host={{ inventory_hostname }} state=absent
ignore_errors : True
with_items :
- /root/.ssh/known_hosts
- /etc/ssh/ssh_known_hosts
2019-05-20 17:36:07 +00:00
when : inventory_hostname not in result.list_vms and inventory_hostname in groups['osbs_masters_stg']+groups['osbs_nodes_stg']
2020-06-03 12:54:42 -07:00
delegate_to : osbs-control01.stg.{{ datacenter }}.fedoraproject.org
2016-10-25 19:13:19 +00:00
- name : (osbs-control01) make sure there is no old ssh host key for the host still around
known_hosts : path={{item}} host={{ inventory_hostname }} state=absent
ignore_errors : True
with_items :
- /root/.ssh/known_hosts
- /etc/ssh/ssh_known_hosts
2019-05-20 17:36:07 +00:00
when : inventory_hostname not in result.list_vms and inventory_hostname in groups['osbs_masters']+groups['osbs_nodes']
2020-06-03 12:54:42 -07:00
delegate_to : osbs-control01.{{ datacenter }}.fedoraproject.org
2016-10-25 19:13:19 +00:00
2013-05-03 16:56:38 +00:00
- name : wait for ssh on the vm to start back
2013-11-25 18:33:35 +00:00
local_action : wait_for delay=10 host={{ inventory_hostname }} port=22 state=started timeout=1200
2013-06-11 16:46:07 +00:00
when : inventory_hostname not in result.list_vms
2015-05-28 17:35:25 +00:00
- name : gather ssh host key from new instance
2015-05-28 17:49:23 +00:00
local_action : command ssh-keyscan -t rsa {{ inventory_hostname }}
2015-05-28 17:35:25 +00:00
ignore_errors : True
register : hostkey
when : inventory_hostname not in result.list_vms
2017-09-04 17:24:51 +00:00
- name : add new ssh host key (until we can sign it)
local_action : known_hosts path={{item}} key="{{ hostkey.stdout }}" host={{ inventory_hostname }} state=present
ignore_errors : True
with_items :
- /root/.ssh/known_hosts
when : inventory_hostname not in result.list_vms
2016-10-25 19:13:19 +00:00
- name : (osbs-control01.stg) add new ssh host key
known_hosts : path={{item}} key="{{ hostkey.stdout }}" host={{ inventory_hostname }} state=present
ignore_errors : True
with_items :
- /root/.ssh/known_hosts
- /etc/ssh/ssh_known_hosts
2019-05-20 17:36:07 +00:00
when : inventory_hostname not in result.list_vms and inventory_hostname in groups['osbs_masters_stg']+groups['osbs_nodes_stg']
2020-06-03 12:54:42 -07:00
delegate_to : osbs-control01.stg.{{ datacenter }}.fedoraproject.org
2016-10-25 19:13:19 +00:00
- name : (osbs-control01) add new ssh host key
known_hosts : path={{item}} key="{{ hostkey.stdout }}" host={{ inventory_hostname }} state=present
ignore_errors : True
with_items :
- /root/.ssh/known_hosts
- /etc/ssh/ssh_known_hosts
2019-05-20 17:36:07 +00:00
when : inventory_hostname not in result.list_vms and inventory_hostname in groups['osbs_masters']+groups['osbs_nodes']
2020-06-03 12:54:42 -07:00
delegate_to : osbs-control01.{{ datacenter }}.fedoraproject.org
2020-01-07 18:10:17 +00:00
- name : gather facts
setup :
check_mode : no
ignore_errors : True
register : facts
when : inventory_hostname not in result.list_vms