torwachter: rm d3 key as he does no longer want access as told by ruru. Also better...
[noc.git] / ansible / vm-install.yml
index e82aa33..c244aa9 100644 (file)
@@ -1,19 +1,56 @@
 ---
-- name: Basic Installation
-  hosts: "{{ vmname }}"
+- name: preperations and sanity checks
+  hosts: "{{ hostname }}"
   gather_facts: no
+  tasks:
+  - name: setup variables
+    set_fact:
+      network_cooked: "{{ network }}"
+      install_cooked: "{{ install }}"
+  - name: create temporary host group for vm host
+    add_host:
+      name: "{{ vm_host }}"
+      inventory_dir: "{{inventory_dir}}"
+      group: _vmhost_
+  # TODO: add some sanity checks
+
+- import_playbook: remove_known_hosts.yml
+
+- name: basic installation
+  hosts: _vmhost_
+  roles:
+  - role: vm/install
+
+- name: wait for new vm to start up
+  hosts: "{{ hostname }}"
+  gather_facts: no
+  tasks:
+    ## TODO: find a better way to fetch host key of new VMs
+  - name: disable ssh StrictHostKeyChecking for the next step
+    set_fact:
+      ansible_ssh_extra_args: -o StrictHostKeyChecking=no
+  - name: wait for vm to start up
+    wait_for_connection:
+      delay: 5
+      timeout: 120
+  - name: reenable StrictHostKeyChecking
+    set_fact:
+      ansible_ssh_extra_args: ""
+
+- name: Apply VM configuration roles
+  hosts: "{{ hostname }}"
   pre_tasks:
-  - name: Gather facts of vm host
+  - name: make sure to update cached facts
     setup:
-    delegate_to: "{{ vm_install.host }}"
-    delegate_facts: yes
   roles:
-  - role: vm-install
+  - role: vm/grub
+  - role: vm/network
+  - role: vm/guest
 
-- import_playbook: "host_playbooks/{{ vmname }}.yml"
+- import_playbook: "host_playbooks/{{ hostname }}.yml"
 
-- name: Reboot and wait for VM come back
-  hosts: "{{ vmname }}"
+- name: reboot and wait for VM come back
+  hosts: "{{ hostname }}"
   gather_facts: no
   roles:
   - role: reboot-and-wait