You've already forked debian-unattended
Compare commits
3 Commits
e163e59d09
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 8b19927606 | |||
| a88b84669b | |||
| 935aa95ec7 |
@@ -1,9 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y xorriso genisoimage
|
|
||||||
|
|
||||||
cd /root/unattended
|
|
||||||
ISONAME=$(ls | grep "netinst.iso" | sort | tail -n1 | sed 's/netinst/unattended/')
|
|
||||||
genisoimage -r -J -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ${ISONAME} isofiles
|
|
||||||
chown 1000:1000 ${ISONAME}
|
|
||||||
8
postinstall/init.service
Normal file
8
postinstall/init.service
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Postinstall Init
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/bin/env bash /debian-postinstall-init.sh
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
45
postinstall/init.sh
Normal file
45
postinstall/init.sh
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Sometimes the network is slow, wait a bit
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
# Get the current DHCP network address (and gateway)
|
||||||
|
NIC=$(ip link | grep "^2:" | awk '{print $2}' | tr -d ":")
|
||||||
|
IP_ADDRESS=$(ip address show ${NIC} | grep -E "inet " | awk '{print $2}')
|
||||||
|
NETMASK=$(echo ${IP_ADDRESS} | sed 's/.*\///')
|
||||||
|
IP_ADDRESS=$(echo ${IP_ADDRESS} | sed 's/\/.*//')
|
||||||
|
GATEWAY=$(ip route | grep "default" | awk '{print $3}')
|
||||||
|
|
||||||
|
# Network interfaces (static address)
|
||||||
|
cat << EOF > /etc/network/interfaces
|
||||||
|
auto lo
|
||||||
|
iface lo inet loopback
|
||||||
|
|
||||||
|
auto ${NIC}
|
||||||
|
iface ${NIC} inet static
|
||||||
|
address ${IP_ADDRESS}/${NETMASK}
|
||||||
|
gateway ${GATEWAY}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Tabs instead of spaces, neat the file
|
||||||
|
sed -i 's/ /\t/gm' /etc/network/interfaces
|
||||||
|
|
||||||
|
# Hosts file
|
||||||
|
cat << EOF > /etc/hosts
|
||||||
|
127.0.0.1 localhost localhost.localdomain
|
||||||
|
::1 localhost localhost.localdomain
|
||||||
|
ff02::1 ip6-allnodes
|
||||||
|
ff02::2 ip6-allrouters
|
||||||
|
|
||||||
|
${IP_ADDRESS} $(hostname --fqdn) $(hostname)
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Tabs instead of spaces, neat the file
|
||||||
|
sed -i 's/ /\t/gm' /etc/hosts
|
||||||
|
|
||||||
|
# Personalizations
|
||||||
|
wget -O - https://45r.it/serversetup | bash
|
||||||
|
|
||||||
|
# Cleanup and reboot
|
||||||
|
rm -rf /etc/systemd/system/multi-user.target.wants/postinstall-init.service /var/lib/systemd/system/postinstall-init.service /debian-postinstall-init.sh /.wget-hsts
|
||||||
|
reboot
|
||||||
@@ -1,12 +1,15 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Get password from user prompt and set it in preseed
|
# Get password from user prompt and set it in preseed
|
||||||
|
if [ -z "$ROOT_PASSWORD" ]; then
|
||||||
read -sp "Enter the root password: " ROOT_PASSWORD
|
read -sp "Enter the root password: " ROOT_PASSWORD
|
||||||
|
fi
|
||||||
cp -f template.cfg preseed.cfg
|
cp -f template.cfg preseed.cfg
|
||||||
sed -i "s/ROOT_PASSWORD/${ROOT_PASSWORD}/" preseed.cfg
|
sed -i "s/ROOT_PASSWORD/${ROOT_PASSWORD}/" preseed.cfg
|
||||||
|
|
||||||
# Get the file name
|
# Get the file name
|
||||||
ISONAME=$(ls | grep "netinst.iso" | sort | tail -n1)
|
ISONAME=$(ls | grep "netinst.iso" | sort | tail -n1)
|
||||||
|
UNAME=$(echo ${ISONAME} | sed 's/netinst/unattended/')
|
||||||
# Remove an already existing unattended iso of this same version, if existing
|
# Remove an already existing unattended iso of this same version, if existing
|
||||||
rm -f $(echo ${ISONAME} | sed 's/netinst/unattended/')
|
rm -f $(echo ${ISONAME} | sed 's/netinst/unattended/')
|
||||||
# Extract iso files
|
# Extract iso files
|
||||||
@@ -34,6 +37,6 @@ cd ..
|
|||||||
|
|
||||||
# Repackage all the iso files
|
# Repackage all the iso files
|
||||||
chmod a+w isofiles/isolinux/isolinux.bin
|
chmod a+w isofiles/isolinux/isolinux.bin
|
||||||
docker run --interactive --tty --rm --volume $(pwd):/root/unattended debian:buster /root/unattended/docker.sh
|
genisoimage -r -J -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ${UNAME} isofiles
|
||||||
# Remove the extracted (temporary) files and the preseed with the plaintext password
|
# Remove the extracted (temporary) files and the preseed with the plaintext password
|
||||||
sudo rm -rf isofiles preseed.cfg
|
sudo rm -rf isofiles preseed.cfg
|
||||||
|
|||||||
Reference in New Issue
Block a user