From bd932968cd12b4da61b8a9011bf93aec1320db09 Mon Sep 17 00:00:00 2001 From: "Pietsch, Martin" <martin.pietsch@tu-dresden.de> Date: Wed, 2 Oct 2019 14:44:37 +0200 Subject: [PATCH] added installer tasks --- tasks/_mergeimages.yml | 26 ++++++++++++++++++++++++++ tasks/buildinstaller.yml | 36 ++++++++++++++++++++++++++++++++++++ tasks/finaliseinstaller.yml | 31 +++++++++++++++++++++++++++++++ tasks/installer.yml | 3 +++ 4 files changed, 96 insertions(+) create mode 100644 tasks/_mergeimages.yml create mode 100644 tasks/buildinstaller.yml create mode 100644 tasks/finaliseinstaller.yml create mode 100644 tasks/installer.yml diff --git a/tasks/_mergeimages.yml b/tasks/_mergeimages.yml new file mode 100644 index 0000000..3a3b81a --- /dev/null +++ b/tasks/_mergeimages.yml @@ -0,0 +1,26 @@ + +- name: detect architecture + set_fact: + _linux_installer_arch: "x86_64" + _linux_installer_corefile: "corepure64.gz" + when: _linux_dist_arch == "x86_64" or _linux_dist_arch == "amd64" + +- set_fact: + _linux_installer_arch: "x86" + _linux_installer_corefile: "core.gz" + when: _linux_dist_arch == "x86" or (_linux_dist_arch | regex_search('i[0-9]86')) + +- name: download tiny core linux imagefs file + get_url: + url: "{{ '%s/%s/%s/release/distribution_files/%s' | format(linux_installer_home_mirror, linux_installer_version, _linux_installer_arch, _linux_installer_corefile) }}" + dest: "{{ '/tmp/%s' | format(_linux_installer_corefile) }}" + +- name: merge tiny core image with installer image + shell: "{{ 'cat /tmp/%s %s >/tmp/linux_%s_%s.gz' | format(_linux_installer_corefile, _linux_installer_image_file.path, linux_installer_distribution, _linux_dist_arch) }}" + +- name: register install image + include_role: + name: package.pxelinux + tasks_from: registerimage + vars: + pxelinux_image_buildpath: "{{ '%s/mfsbsd-%s-RELEASE-%s.img' | format(mfsbsdroot, distdata[1], distdata[0]) }}" pxelinux_image_distribution: "freebsd" pxelinux_image_release: "{{ distdata[1] }}" pxelinux_image_architecture: "{{ distdata[0] }}" diff --git a/tasks/buildinstaller.yml b/tasks/buildinstaller.yml new file mode 100644 index 0000000..432f37f --- /dev/null +++ b/tasks/buildinstaller.yml @@ -0,0 +1,36 @@ + +- name: create installer build root directory + tempfile: + state: directory + register: _linux_install_dir + +- name: publish installer build root + set_fact: + linux_build_installer_root: "{{ _linux_install_dir.path }}" + +- name: create installers opt directory + file: + path: "{{ '%s/opt' | format(linux_build_installer_root) }}" + state: directory + +- name: create installers opt directory + file: + path: "{{ '%s/root' | format(linux_build_installer_root) }}" + state: directory + +- name: install basic installer scripts + copy: + src: profile + dest: "{{ '%s/root/.profile' | format(linux_build_installer_root) }}" + +- name: install basic installer scripts + copy: + src: "{{ _linux_install_file.name }}" + dest: "{{ '%s/opt/%s' | format(linux_build_installer_root, _linux_install_file.name) }}" + mode: "{{ _linux_install_file.mode }}" + loop: + - {"name": "bootlocal.sh", "mode": "0775" } + loop_control: + loop_var: _linux_install_file + + diff --git a/tasks/finaliseinstaller.yml b/tasks/finaliseinstaller.yml new file mode 100644 index 0000000..d8382d7 --- /dev/null +++ b/tasks/finaliseinstaller.yml @@ -0,0 +1,31 @@ + +- name: create temporary linux installer image name + tempfile: + suffix: ".gz" + register: _linux_installer_image_file + +- name: compress linux installer + shell: "{{ 'find | cpio -o -H newc -R +0:+0 | gzip -2 > %s' | format(_linux_installer_image_file.path) }}" + args: + chdir: "{{ linux_build_installer_root }}" + +- include_role: + name: system.linux + tasks_from: _mergeimages + loop: "{{ system_supported_architectures[linux_installer_distribution] }}" + loop_control: + loop_var: _linux_dist_arch + +- name: cleanup installers build root directory + file: + path: "{{ linux_build_installer_root }}" + state: absent + +- name: cleanup compressed linux installer image + file: + path: "{{ _linux_installer_image_file.path }}" + state: absent + +- include_role: + name: system + tasks_from: installer diff --git a/tasks/installer.yml b/tasks/installer.yml new file mode 100644 index 0000000..61fbad0 --- /dev/null +++ b/tasks/installer.yml @@ -0,0 +1,3 @@ + +- include_tasks: buildinstaller.yml +- include_tasks: finaliseinstaller.yml -- GitLab