#!/bin/sh

# Make sure hostname is set

SERVERNAME="$(cat /tmp/servername)"
echo "$SERVERNAME" > /target/etc/hostname
sed -i -E "s/^(127\\.0\\.1\\.1\\s+).*/\\1$SERVERNAME/" /target/etc/hosts
in-target hostnamectl set-hostname "$SERVERNAME"

# Interface auto config dhcp

#IFACES="$(ls /sys/class/net | grep -v '^lo$')"
{
  printf "auto lo\niface lo inet loopback\n\n"
#  for IFACE in $IFACES; do
#    printf "auto %s\nallow-hotplug %s\niface %s inet dhcp\niface %s inet6 dhcp\n\n" "$IFACE" "$IFACE" "$IFACE" "$IFACE"
#  done
} > /target/etc/network/interfaces

# Remove placeholder lv

lvremove -f /dev/*/lvPlaceholder

# Configure grub both for EFI and legacy boot

in-target sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"/' /etc/default/grub
DISK="$(debconf-get grub-installer/bootdev | sed 's/[0-9]*$//')"
in-target apt-get -y install grub-efi-amd64 grub-pc-bin
in-target grub-install --target=i386-pc --recheck "$DISK"
in-target grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --recheck --removable --no-nvram
in-target update-grub

# Install and configure salt-minion

echo "-----BEGIN PGP PUBLIC KEY BLOCK-----

mQGNBGPazmABDAC6qc2st6/Uh/5AL325OB5+Z1XMFM2HhQNjB/VcYbLvcCx9AXsU
eaEmNPm6OY3p5+j8omjpXPYSU7DUQ0lIutuAtwkDMROH7uH/r9IY7iu88S6w3q89
bgbnqhu4mrSik2RNH2NqEiJkylz5rwj4F387y+UGH3aXIGryr+Lux9WxfqoRRX7J
WCf6KOaduLSp9lF4qdpAb4/Z5yExXtQRA9HULSJZqNVhfhWInTkVPw+vUo/P9AYv
mJVv6HRNlTb4HCnl6AZGcAYv66J7iWukavmYKxuIbdn4gBJwE0shU9SaP70dh/LT
WqIUuGRZBVH/LCuVGzglGYDh2iiOvR7YRMKf26/9xlR0SpeU/B1g6tRu3p+7OgjA
vJFws+bGSPed07asam3mRZ0Y9QLCXMouWhQZQpx7Or1pUl5Wljhe2W84MfW+Ph6T
yUm/j0yRlZJ750rGfDKA5gKIlTUXr+nTvsK3nnRiHGH2zwrC1BkPG8K6MLRluU/J
ChgZo72AOpVNq9MAEQEAAbQ5U2FsdCBQcm9qZWN0IFBhY2thZ2luZyA8c2FsdHBy
b2plY3QtcGFja2FnaW5nQHZtd2FyZS5jb20+iQHSBBMBCAA8FiEEEIV//dP5Hq5X
eiHWZMu8gXPXaz8FAmPazmACGwMFCwkIBwIDIgIBBhUKCQgLAgQWAgMBAh4HAheA
AAoJEGTLvIFz12s/yf0L/jyP/LfduA4DwpjKX9Vpk26tgis9Q0I54UerpD5ibpTA
krzZxK1yFOPddcOjo+Xqg+I8aA+0nJkf+vsfnRgcpLs2qHZkikwZbPduZwkNUHX7
6YPSXTwyFlzhaRycwPtvBPLFjfmjjjTi/aH4V/frfxfjH/wFvH/xiaiFsYbP3aAP
sJNTLh3im480ugQ7P54ukdte2QHKsjJ3z4tkjnu1ogc1+ZLCSZVDxfR4gLfE6GsN
YFNd+LF7+NtAeJRuJceXIisj8mTQYg+esTF9QtWovdg7vHVPz8mmcsrG9shGr+G9
iwwtCig+hAGtXFAuODRMur9QfPlP6FhJw0FX/36iJ2p6APZB0EGqn7LJ91EyOnWv
iRimLLvlGFiVB9Xxw1TxnQMNj9jmB1CA4oNqlromO/AA0ryh13TpcIo5gbn6Jcdc
fD4Rbj5k+2HhJTkQ78GpZ0q95P08XD2dlaM2QxxKQGqADJOdV2VgjB2NDXURkInq
6pdkcaRgAKme8b+xjCcVjLkBjQRj2s5gAQwAxmgflHInM8oKQnsXezG5etLmaUsS
EkV5jjQFCShNn9zJEF/PWJk5Df/mbODj02wyc749dSJbRlTY3LgGz1AeywOsM1oQ
XkhfRZZqMwqvfx8IkEPjMvGIv/UI9pqqg/TY7OiYLEDahYXHJDKmlnmCBlnU96cL
yh7a/xY3ZC20/JwbFVAFzD4biWOrAm1YPpdKbqCPclpvRP9N6nb6hxvKKmDo7MqS
uANZMaoqhvnGazt9n435GQkYRvtqmqmOvt8I4oCzV0Y39HfbCHhhy64HSIowKYE7
YWIujJcfoIDQqq2378T631BxLEUPaoSOV4B8gk/Jbf3KVu4LNqJive7chR8F1C2k
eeAKpaf2CSAe7OrbAfWysHRZ060bSJzRk3COEACk/UURY+RlIwh+LQxEKb1YQueS
YGjxIjV1X7ScyOvam5CmqOd4do9psOS7MHcQNeUbhnjm0TyGT9DF8ELoE0NSYa+J
PvDGHo51M33s31RUO4TtJnU5xSRb2sOKzIuBABEBAAGJAbYEGAEIACAWIQQQhX/9
0/kerld6IdZky7yBc9drPwUCY9rOYAIbDAAKCRBky7yBc9drP8ctC/9wGi01cBAW
BPEKEnfrKdvlsaLeRxotriupDqGSWxqVxBVd+n0Xs0zPB/kuZFTkHOHpbAWkhPr+
hP+RJemxCKMCo7kT2FXVR1OYej8Vh+aYWZ5lw6dJGtgo3Ebib2VSKdasmIOI2CY/
03G46jv05qK3fP6phz+RaX+9hHgh1XW9kKbdkX5lM9RQSZOof3/67IN8w+euy61O
UhNcrsDKrp0kZxw3S+b/02oP1qADXHz2BUerkCZa4RVK1pM0UfRUooOHiEdUxKKM
DE501hwQsMH7WuvlIR8Oc2UGkEtzgukhmhpQPSsVPg54y9US+LkpztM+yq+zRu33
gAfssli0MvSmkbcTDD22PGbgPMseyYxfw7vuwmjdqvi9Z4jdln2gyZ6sSZdgUMYW
PGEjZDoMzsZx9Zx6SO9XCS7XgYHVc8/B2LGSxj+rpZ6lBbywH88lNnrm/SpQB74U
4QVLffuw76FanTH6advqdWIqtlWPoAQcEkKf5CdmfT2ei2wX1QLatTs=
=ZKPF
-----END PGP PUBLIC KEY BLOCK-----" > /target/tmp/salt-public

mkdir -m 755 -p /target/etc/apt/keyrings

in-target sh -c 'gpg --dearmor < /tmp/salt-public > /etc/apt/keyrings/salt-archive-keyring.pgp'

echo "X-Repolib-Name: Salt Project
Description: Salt has many possible uses, including configuration management.
  Built on Python, Salt is an event-driven automation tool and framework to deploy,
  configure, and manage complex IT systems. Use Salt to automate common
  infrastructure administration tasks and ensure that all the components of your
  infrastructure are operating in a consistent desired state.
  - Website: https://saltproject.io
  - Public key: https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public
Enabled: yes
Types: deb
URIs: https://packages.broadcom.com/artifactory/saltproject-deb
Signed-By: /etc/apt/keyrings/salt-archive-keyring.pgp
Suites: stable
Components: main" > /target/etc/apt/sources.list.d/salt.sources

echo "Package: salt-*
Pin: version 3006.*
Pin-Priority: 1001"> /target/etc/apt/preferences.d/salt-pin-1001

in-target apt update
in-target apt install salt-minion -y

cat /tmp/servername > /target/etc/salt/minion_id

cat > /target/etc/salt/minion << EOF
master:
  - noopsma1.unreachable.hu:19506
  - noopsma2.unreachable.hu:19506

master_finger: 'fd:ca:00:ed:13:9a:9e:ab:61:04:36:03:ba:63:41:3b:c6:55:0c:76:e1:8b:8a:50:16:b7:0d:26:06:3d:a1:3e'
ssl: True

master_type: str

minion_id_lowercase: True

rejected_retry: True
master_tries: -1
auth_tries: 65535

random_reauth_delay: 60
random_startup_delay: 10
ping_interval: 1

backup_mode: minion

use_superseded:
  - module.run
EOF
