From 00a5684ba31ed5c68d168290fb45a35bf5d58177 Mon Sep 17 00:00:00 2001 From: Yuya Kusakabe Date: Thu, 25 Oct 2018 15:51:11 +0900 Subject: Add cloud-init to QEMU/VMware/Hyper-V images --- hyperv.yml | 1 + qemu.yml | 1 + roles/install-cloud-init/files/debian.list | 7 +++++++ roles/install-cloud-init/files/hyper-v.cfg | 1 + roles/install-cloud-init/files/qemu.cfg | 1 + roles/install-cloud-init/files/vmware.cfg | 1 + roles/install-cloud-init/tasks/main.yml | 33 ++++++++++++++++++++++++++++++ roles/install-cloud-init/tests/inventory | 2 ++ roles/install-cloud-init/tests/test.yml | 4 ++++ vmware.yml | 1 + 10 files changed, 52 insertions(+) create mode 100644 roles/install-cloud-init/files/debian.list create mode 100644 roles/install-cloud-init/files/hyper-v.cfg create mode 100644 roles/install-cloud-init/files/qemu.cfg create mode 100644 roles/install-cloud-init/files/vmware.cfg create mode 100644 roles/install-cloud-init/tasks/main.yml create mode 100644 roles/install-cloud-init/tests/inventory create mode 100644 roles/install-cloud-init/tests/test.yml diff --git a/hyperv.yml b/hyperv.yml index 46b5c0a..365d839 100644 --- a/hyperv.yml +++ b/hyperv.yml @@ -22,6 +22,7 @@ - install-config - install-grub - install-persistence-conf + - install-cloud-init - unmount-all - hyperv-vhd - release diff --git a/qemu.yml b/qemu.yml index 899a47a..e51e5e6 100644 --- a/qemu.yml +++ b/qemu.yml @@ -21,6 +21,7 @@ - install-config - install-grub - install-persistence-conf + - install-cloud-init - unmount-all - qemu-qcow2 - release diff --git a/roles/install-cloud-init/files/debian.list b/roles/install-cloud-init/files/debian.list new file mode 100644 index 0000000..f657759 --- /dev/null +++ b/roles/install-cloud-init/files/debian.list @@ -0,0 +1,7 @@ +deb http://deb.debian.org/debian jessie main contrib non-free +deb-src http://deb.debian.org/debian jessie main contrib non-free +deb http://security.debian.org/debian-security/ jessie/updates main contrib non-free +deb-src http://security.debian.org/debian-security/ jessie/updates main contrib non-free +deb http://deb.debian.org/debian jessie-updates main contrib non-free +deb-src http://deb.debian.org/debian jessie-updates main contrib non-free +deb http://deb.debian.org/debian jessie-backports main diff --git a/roles/install-cloud-init/files/hyper-v.cfg b/roles/install-cloud-init/files/hyper-v.cfg new file mode 100644 index 0000000..f66d7c0 --- /dev/null +++ b/roles/install-cloud-init/files/hyper-v.cfg @@ -0,0 +1 @@ +datasource_list: [ NoCloud, ConfigDrive, None ] diff --git a/roles/install-cloud-init/files/qemu.cfg b/roles/install-cloud-init/files/qemu.cfg new file mode 100644 index 0000000..f66d7c0 --- /dev/null +++ b/roles/install-cloud-init/files/qemu.cfg @@ -0,0 +1 @@ +datasource_list: [ NoCloud, ConfigDrive, None ] diff --git a/roles/install-cloud-init/files/vmware.cfg b/roles/install-cloud-init/files/vmware.cfg new file mode 100644 index 0000000..76a5efd --- /dev/null +++ b/roles/install-cloud-init/files/vmware.cfg @@ -0,0 +1 @@ +datasource_list: [ NoCloud, ConfigDrive, OVF, None ] diff --git a/roles/install-cloud-init/tasks/main.yml b/roles/install-cloud-init/tasks/main.yml new file mode 100644 index 0000000..c9d5d07 --- /dev/null +++ b/roles/install-cloud-init/tasks/main.yml @@ -0,0 +1,33 @@ +- name: Put debian.list + become: true + copy: + src: files/debian.list + dest: "{{ vyos_install_root }}/etc/apt/sources.list.d/debian.list" +- name: apt-get update + become: true + command: chroot {{ vyos_install_root }} apt-get update +- name: Install cloud-init + become: true + command: chroot {{ vyos_install_root }} apt-get install -y cloud-init cloud-utils +- name: apt-get clean + become: true + command: chroot {{ vyos_install_root }} apt-get clean +- name: Delete debian.list + become: true + file: + path: "{{ vyos_install_root }}/etc/apt/sources.list.d/debian.list" + state: absent +- name: Create cfg.d dir + become: true + file: + path: "{{ vyos_install_root }}/etc/cloud/cloud.cfg.d/" + state: directory + mode: 0755 +- name: Put datasource_list.cfg + become: true + copy: + src: "files/{{ vyos_platform | lower }}.cfg" + dest: "{{ vyos_install_root }}/etc/cloud/cloud.cfg.d/90_dpkg.cfg" +- name: run dpkg-reconfigure cloud-init + become: true + command: chroot {{ vyos_install_root }} dpkg-reconfigure -f noninteractive cloud-init diff --git a/roles/install-cloud-init/tests/inventory b/roles/install-cloud-init/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/roles/install-cloud-init/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/roles/install-cloud-init/tests/test.yml b/roles/install-cloud-init/tests/test.yml new file mode 100644 index 0000000..7bf7a19 --- /dev/null +++ b/roles/install-cloud-init/tests/test.yml @@ -0,0 +1,4 @@ +--- +- hosts: localhost + roles: + - install-cloud-init diff --git a/vmware.yml b/vmware.yml index a4a43ed..d953ca7 100644 --- a/vmware.yml +++ b/vmware.yml @@ -22,6 +22,7 @@ - install-config - install-grub - install-persistence-conf + - install-cloud-init - unmount-all - install-open-vmdk - vmware-ova -- cgit v1.2.3