In ansible 2.8 the - character isn't supposed to be valid in group names. While we could override this, might has well just bite the bullet and change it. So, just switch all group names to use _ instead of - Signed-off-by: Kevin Fenzi <kevin@scrye.com>
148 lines
6.1 KiB
YAML
148 lines
6.1 KiB
YAML
#
|
|
# This task is the thing that creates a vm for later use
|
|
#
|
|
- include_vars: dir=/srv/web/infra/ansible/vars/all/ ignore_files=README
|
|
|
|
- name: get vm list
|
|
delegate_to: "{{ vmhost }}"
|
|
virt: command=list_vms
|
|
register: result
|
|
check_mode: no
|
|
|
|
#- 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
|
|
|
|
- name: ensure the lv for the guest is made
|
|
lvol: lv={{ inventory_hostname }} vg={{ volgroup }} size={{ lvm_size }} state=present
|
|
delegate_to: "{{ vmhost }}"
|
|
when: inventory_hostname not in result.list_vms
|
|
|
|
- name: run the virt-install
|
|
shell: "{{ virt_install_command }}"
|
|
delegate_to: "{{ vmhost }}"
|
|
when: inventory_hostname not in result.list_vms
|
|
|
|
- name: wait for the install to finish -> {{ inventory_hostname }}
|
|
virt: command=status name={{ inventory_hostname }}
|
|
register: vmstatus
|
|
until: vmstatus.status == 'shutdown'
|
|
delegate_to: "{{ vmhost }}"
|
|
retries: 1500
|
|
delay: 20
|
|
when: inventory_hostname not in result.list_vms
|
|
|
|
- name: ARMv7 copy the kernel out
|
|
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"
|
|
delegate_to: "{{ vmhost}}"
|
|
when: inventory_hostname.startswith('buildvm-armv7') and ( inventory_hostname not in result.list_vms or armv7kernelupdate is defined )
|
|
tags:
|
|
- armv7-kernel
|
|
|
|
- name: ARMv7 extract the kernel details
|
|
command: "head -n1 /var/lib/libvirt/images/{{ inventory_hostname }}-details.txt"
|
|
delegate_to: "{{ vmhost}}"
|
|
register: host_armv7kernel
|
|
when: inventory_hostname.startswith('buildvm-armv7') and ( inventory_hostname not in result.list_vms or armv7kernelupdate is defined )
|
|
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
|
|
when: inventory_hostname.startswith('buildvm-armv7') and ( inventory_hostname not in result.list_vms or armv7kernelupdate is defined )
|
|
tags:
|
|
- armv7-kernel
|
|
|
|
- name: ARMv7 copy the cmdline out
|
|
shell: "virt-cat -a {{ volgroup }}/{{ inventory_hostname }} /boot/extlinux/extlinux.conf | grep -m1 append | sed -e 's/append //'"
|
|
delegate_to: "{{ vmhost}}"
|
|
register: host_cmdline
|
|
when: inventory_hostname.startswith('buildvm-armv7') and ( inventory_hostname not in result.list_vms or armv7kernelupdate is defined )
|
|
tags:
|
|
- armv7-kernel
|
|
|
|
- name: ARMv7 update the virt parameters
|
|
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 }}
|
|
delegate_to: "{{ vmhost }}"
|
|
when: inventory_hostname.startswith('buildvm-armv7') and ( inventory_hostname not in result.list_vms or armv7kernelupdate is defined )
|
|
tags:
|
|
- armv7-kernel
|
|
|
|
- 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
|
|
|
|
- name: start the vm up and set it to autostart
|
|
virt: state=running name={{ inventory_hostname }} autostart=True
|
|
delegate_to: "{{ vmhost }}"
|
|
when: inventory_hostname not in result.list_vms
|
|
|
|
- name: ARMv7 pause while VM updates
|
|
pause: seconds=5
|
|
when: inventory_hostname.startswith('buildvm-armv7') and ( inventory_hostname not in result.list_vms or armv7kernelupdate is defined )
|
|
tags:
|
|
- armv7-kernel
|
|
|
|
- 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
|
|
|
|
- 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
|
|
when: inventory_hostname not in result.list_vms and inventory_hostname in groups['osbs_masters_stg']+groups['osbs_nodes_stg']
|
|
delegate_to: osbs-control01.stg.phx2.fedoraproject.org
|
|
|
|
- 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
|
|
when: inventory_hostname not in result.list_vms and inventory_hostname in groups['osbs_masters']+groups['osbs_nodes']
|
|
delegate_to: osbs-control01.phx2.fedoraproject.org
|
|
|
|
- name: wait for ssh on the vm to start back
|
|
local_action: wait_for delay=10 host={{ inventory_hostname }} port=22 state=started timeout=1200
|
|
when: inventory_hostname not in result.list_vms
|
|
|
|
- name: gather ssh host key from new instance
|
|
local_action: command ssh-keyscan -t rsa {{ inventory_hostname }}
|
|
ignore_errors: True
|
|
register: hostkey
|
|
when: inventory_hostname not in result.list_vms
|
|
|
|
- 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
|
|
|
|
- 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
|
|
when: inventory_hostname not in result.list_vms and inventory_hostname in groups['osbs_masters_stg']+groups['osbs_nodes_stg']
|
|
delegate_to: osbs-control01.stg.phx2.fedoraproject.org
|
|
|
|
- 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
|
|
when: inventory_hostname not in result.list_vms and inventory_hostname in groups['osbs_masters']+groups['osbs_nodes']
|
|
delegate_to: osbs-control01.phx2.fedoraproject.org
|
|
|