From 367c391a61091817cf34475f91a23ca286eec334 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Sat, 18 Aug 2018 13:09:29 +0200 Subject: Add hetzner server scripts --- scripts/hetzner_server/arch_chroot_script.sh | 18 ++++++++ .../arch_host_puppet_configuration_script.sh | 13 ++++++ scripts/hetzner_server/arch_host_script.sh | 49 ++++++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100755 scripts/hetzner_server/arch_chroot_script.sh create mode 100755 scripts/hetzner_server/arch_host_puppet_configuration_script.sh create mode 100755 scripts/hetzner_server/arch_host_script.sh (limited to 'scripts') diff --git a/scripts/hetzner_server/arch_chroot_script.sh b/scripts/hetzner_server/arch_chroot_script.sh new file mode 100755 index 0000000..afc78e2 --- /dev/null +++ b/scripts/hetzner_server/arch_chroot_script.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +pacman-key --init +pacman-key --populate archlinux + +UUID=$(cat /device_uuid) +PART="/dev/disk/by-uuid/$UUID" +DEVICE=$(realpath "$PART") + +mkfs.ext4 -F -U "$UUID" "$DEVICE" +mount "$DEVICE" /mnt + +pacstrap -G /mnt base git puppet + +echo "$PART / auto defaults 0 1" > /mnt/etc/fstab + +umount /mnt + diff --git a/scripts/hetzner_server/arch_host_puppet_configuration_script.sh b/scripts/hetzner_server/arch_host_puppet_configuration_script.sh new file mode 100755 index 0000000..3ca2b51 --- /dev/null +++ b/scripts/hetzner_server/arch_host_puppet_configuration_script.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +git_branch="$1" +environment="$2" + +DEVICE="/dev/sda1" +MOUNTPOINT="/mnt" + +cp /tmp/arch_puppet_configuration_script.sh "$MOUNTPOINT/root/" + +/tmp/root.x86_64/bin/arch-chroot "$MOUNTPOINT" /root/arch_puppet_configuration_script.sh "$git_branch" "$environment" + +umount "$MOUNTPOINT" diff --git a/scripts/hetzner_server/arch_host_script.sh b/scripts/hetzner_server/arch_host_script.sh new file mode 100755 index 0000000..23fbc32 --- /dev/null +++ b/scripts/hetzner_server/arch_host_script.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +set -e + +git_branch="$1" +environment="$2" + +# Randomizer +haveged & +# /Randomizer + +# Prepare an arch chroot +cd /tmp + +LATEST=$(curl -L https://mirrors.kernel.org/archlinux/iso/latest/sha1sums.txt | grep "bootstrap" | head -n1) +SHA1=$(echo "$LATEST" | cut -d' ' -f1) +NAME=$(echo "$LATEST" | cut -d' ' -f3) + +curl -L -O "https://mirrors.kernel.org/archlinux/iso/latest/$NAME" + +tar -xzf "$NAME" + +echo 'Server = http://archlinux.mirrors.ovh.net/archlinux/$repo/os/$arch' > /tmp/root.x86_64/etc/pacman.d/mirrorlist +# /Prepare an arch chroot + +# Prepare device information (not available in chroot) +DEVICE="/dev/sda1" +MOUNTPOINT="/mnt" + +UUID=$(lsblk -rno UUID "$DEVICE") + +echo "$UUID" > /tmp/root.x86_64/device_uuid +# /Prepare device information + +# Install very basic system via chroot (base git puppet) +cp /tmp/arch_chroot_script.sh /tmp/root.x86_64/ + +/tmp/root.x86_64/bin/arch-chroot /tmp/root.x86_64/ /arch_chroot_script.sh +# /Install very basic system via chroot + +# Mount and install rest of system (via puppet) +mount "$DEVICE" "$MOUNTPOINT" + +cp /tmp/arch_install_script.sh "$MOUNTPOINT/root/" +cp /tmp/puppet_variables.json "$MOUNTPOINT/root/" + +/tmp/root.x86_64/bin/arch-chroot "$MOUNTPOINT" /root/arch_install_script.sh "$git_branch" "$environment" +# /Mount and install rest of system + -- cgit v1.2.3