Add labsync-install-localboot service
This commit is contained in:
parent
9831e4878e
commit
737462a773
9 changed files with 97 additions and 29 deletions
|
|
@ -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
|
||||
17
packer/ansible/roles/labsync/files/labsync-install-localboot.sh
Executable file
17
packer/ansible/roles/labsync/files/labsync-install-localboot.sh
Executable file
|
|
@ -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
|
||||
30
packer/ansible/roles/labsync/tasks/localboot.yml
Normal file
30
packer/ansible/roles/labsync/tasks/localboot.yml
Normal file
|
|
@ -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
|
||||
7
packer/ansible/roles/labsync/tasks/main.yml
Normal file
7
packer/ansible/roles/labsync/tasks/main.yml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
- import_tasks: seeder.yml
|
||||
tags:
|
||||
- labsync:seeder
|
||||
- import_tasks: localboot.yml
|
||||
tags:
|
||||
- labsync:localboot
|
||||
29
packer/ansible/roles/labsync/tasks/seeder.yml
Normal file
29
packer/ansible/roles/labsync/tasks/seeder.yml
Normal file
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -72,6 +72,10 @@
|
|||
"type": "ansible",
|
||||
"playbook_file": "ansible/playbook.yml",
|
||||
"user": "root"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"inline": [ "rm /boot && mkdir /boot" ]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue