From 737462a7734c4b422bed48edda90f9fcac70e67b Mon Sep 17 00:00:00 2001 From: jalr Date: Sun, 18 Mar 2018 04:40:11 +0100 Subject: [PATCH] Add labsync-install-localboot service --- .../files/labsync-install-localboot.service | 10 +++++++ .../files/labsync-install-localboot.sh | 17 +++++++++++ .../files/labsync-seeder.service | 0 .../files/labsync-seeder.sh | 0 .../ansible/roles/labsync/tasks/localboot.yml | 30 +++++++++++++++++++ packer/ansible/roles/labsync/tasks/main.yml | 7 +++++ packer/ansible/roles/labsync/tasks/seeder.yml | 29 ++++++++++++++++++ .../roles/labsync_seeder/tasks/main.yml | 29 ------------------ packer/debian-stretch.json | 4 +++ 9 files changed, 97 insertions(+), 29 deletions(-) create mode 100644 packer/ansible/roles/labsync/files/labsync-install-localboot.service create mode 100755 packer/ansible/roles/labsync/files/labsync-install-localboot.sh rename packer/ansible/roles/{labsync_seeder => labsync}/files/labsync-seeder.service (100%) rename packer/ansible/roles/{labsync_seeder => labsync}/files/labsync-seeder.sh (100%) create mode 100644 packer/ansible/roles/labsync/tasks/localboot.yml create mode 100644 packer/ansible/roles/labsync/tasks/main.yml create mode 100644 packer/ansible/roles/labsync/tasks/seeder.yml delete mode 100644 packer/ansible/roles/labsync_seeder/tasks/main.yml diff --git a/packer/ansible/roles/labsync/files/labsync-install-localboot.service b/packer/ansible/roles/labsync/files/labsync-install-localboot.service new file mode 100644 index 0000000..62c2b3d --- /dev/null +++ b/packer/ansible/roles/labsync/files/labsync-install-localboot.service @@ -0,0 +1,10 @@ +[Unit] +Description=creates boot partition and installs grub to disk +After=network.target + +[Service] +ExecStart=/usr/local/sbin/labsync-install-localboot.sh +Type=oneshot + +[Install] +WantedBy=multi-user.target diff --git a/packer/ansible/roles/labsync/files/labsync-install-localboot.sh b/packer/ansible/roles/labsync/files/labsync-install-localboot.sh new file mode 100755 index 0000000..6e89372 --- /dev/null +++ b/packer/ansible/roles/labsync/files/labsync-install-localboot.sh @@ -0,0 +1,17 @@ +#!/bin/sh +boot_partition='/dev/sda1' +localboot="$(sed -n 's/^.*labsync_localboot=\([^ ]*\).*$/\1/p' /proc/cmdline)" + +if [ -z "$localboot" ]; then + umount "$boot_partition" || true + echo "$boot_partition /boot ext2 defaults 0 0" > /etc/fstab + mke2fs -t ext2 -F "$boot_partition" + mount /boot + rsync -av /usr/local/boot/ /boot/ + grub-install /dev/sda + sed -i 's/^\(GRUB_DEVICE=\).*$/\1""/' /usr/sbin/grub-mkconfig + #sed -i 's/^\(GRUB_CMDLINE_LINUX_DEFAULT=\).*$/\1'"'quiet boot=labsync labsync_localboot=\"$LABSYNC\"'/" /etc/default/grub + sed -i 's/^\(GRUB_CMDLINE_LINUX=\).*$/\1'"'boot=labsync labsync_localboot=\"$LABSYNC\"'/" /etc/default/grub + sed -i 's/^\(GRUB_TIMEOUT\)=.*$/\1=0/' /etc/default/grub + update-grub +fi diff --git a/packer/ansible/roles/labsync_seeder/files/labsync-seeder.service b/packer/ansible/roles/labsync/files/labsync-seeder.service similarity index 100% rename from packer/ansible/roles/labsync_seeder/files/labsync-seeder.service rename to packer/ansible/roles/labsync/files/labsync-seeder.service diff --git a/packer/ansible/roles/labsync_seeder/files/labsync-seeder.sh b/packer/ansible/roles/labsync/files/labsync-seeder.sh similarity index 100% rename from packer/ansible/roles/labsync_seeder/files/labsync-seeder.sh rename to packer/ansible/roles/labsync/files/labsync-seeder.sh diff --git a/packer/ansible/roles/labsync/tasks/localboot.yml b/packer/ansible/roles/labsync/tasks/localboot.yml new file mode 100644 index 0000000..871399a --- /dev/null +++ b/packer/ansible/roles/labsync/tasks/localboot.yml @@ -0,0 +1,30 @@ +--- +- name: install dependencies + apt: + name: {{ item }} + state: present + with_items: + - grub2 + - rsync + +- name: copy labsync-install-localboot script + copy: + src: labsync-install-localboot.sh + dest: /usr/local/sbin/labsync-install-localboot.sh + owner: root + group: root + mode: "0744" + +- name: copy systemd unit for labsync-install-localboot service + copy: + src: labsync-install-localboot.service + dest: /etc/systemd/system/labsync-install-localboot.service + owner: root + group: root + mode: "0644" + +- name: enable labsync-install-localboot service + file: + src: /etc/systemd/system/labsync-install-localboot.service + dest: /etc/systemd/system/multi-user.target.wants/labsync-install-localboot.service + state: link diff --git a/packer/ansible/roles/labsync/tasks/main.yml b/packer/ansible/roles/labsync/tasks/main.yml new file mode 100644 index 0000000..5520f9a --- /dev/null +++ b/packer/ansible/roles/labsync/tasks/main.yml @@ -0,0 +1,7 @@ +--- +- import_tasks: seeder.yml + tags: + - labsync:seeder +- import_tasks: localboot.yml + tags: + - labsync:localboot diff --git a/packer/ansible/roles/labsync/tasks/seeder.yml b/packer/ansible/roles/labsync/tasks/seeder.yml new file mode 100644 index 0000000..52c542f --- /dev/null +++ b/packer/ansible/roles/labsync/tasks/seeder.yml @@ -0,0 +1,29 @@ +--- +- name: copy labsync-seeder script + copy: + src: labsync-seeder.sh + dest: /usr/local/sbin/labsync-seeder.sh + owner: root + group: root + mode: "0744" + +- name: copy systemd unit for labsync-seeder service + copy: + src: labsync-seeder.service + dest: /etc/systemd/system/labsync-seeder.service + owner: root + group: root + mode: "0644" + +- name: enable labsync-seeder service + file: + src: /etc/systemd/system/labsync-seeder.service + dest: /etc/systemd/system/multi-user.target.wants/labsync-seeder.service + state: link + +#- name: enable labsync-seeder service +# systemd: +# name: labsync-seeder.service +# daemon_reload: yes +# enabled: yes +# masked: no diff --git a/packer/ansible/roles/labsync_seeder/tasks/main.yml b/packer/ansible/roles/labsync_seeder/tasks/main.yml deleted file mode 100644 index be8d91e..0000000 --- a/packer/ansible/roles/labsync_seeder/tasks/main.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- - - name: copy labsync-seeder script - copy: - src: labsync-seeder.sh - dest: /usr/local/sbin/labsync-seeder.sh - owner: root - group: root - mode: "0744" - - - name: copy systemd unit for labsync-seeder service - copy: - src: labsync-seeder.service - dest: /etc/systemd/system/labsync-seeder.service - owner: root - group: root - mode: "0644" - - - name: enable labsync-seeder service - file: - src: /etc/systemd/system/labsync-seeder.service - dest: /etc/systemd/system/multi-user.target.wants/labsync-seeder.service - state: link - -# - name: enable labsync-seeder service -# systemd: -# name: labsync-seeder.service -# daemon_reload: yes -# enabled: yes -# masked: no diff --git a/packer/debian-stretch.json b/packer/debian-stretch.json index 55a3aea..06df95d 100644 --- a/packer/debian-stretch.json +++ b/packer/debian-stretch.json @@ -72,6 +72,10 @@ "type": "ansible", "playbook_file": "ansible/playbook.yml", "user": "root" + }, + { + "type": "shell", + "inline": [ "rm /boot && mkdir /boot" ] } ] }