Merge pull request #4 from macmpi/dev

cosmetic fixes for 0.5 release
This commit is contained in:
macmpi 2022-12-05 11:04:55 +01:00 committed by GitHub
commit 909875797c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 60 additions and 88 deletions

View File

@ -3,40 +3,40 @@
[Alpine Linux documentation](https://docs.alpinelinux.org/user-handbook/0.1a/Installing/setup_alpine.html) assumes one can interract with system directly with a keyboard & display.\ [Alpine Linux documentation](https://docs.alpinelinux.org/user-handbook/0.1a/Installing/setup_alpine.html) assumes one can interract with system directly with a keyboard & display.\
However, there are many cases where one might want to deploy a headless system, only available through a network connection (ethernet, wifi or as USB ethernet gadget). However, there are many cases where one might want to deploy a headless system, only available through a network connection (ethernet, wifi or as USB ethernet gadget).
This repo provides an overaly file to initially boot the headless system (leveraging Alpine distro's `initramfs` feature): it enables a basic ssh server to log-into from another Computer, in order to finalize system set-up. This repo provides an **overlay file** to initially boot the headless system (leveraging Alpine distro's `initramfs` feature): it enables a basic ssh server to log-into from another Computer, in order to finalize system set-up.
## Install procedure: ## Install procedure:
Please follow [Alpine Linux Wiki](https://wiki.alpinelinux.org/wiki/Installation#Installation_Overview) to download & create installation media for the chosen platform.\ Please follow [Alpine Linux Wiki](https://wiki.alpinelinux.org/wiki/Installation#Installation_Overview) to download & create installation media for the chosen platform.\
Tools provided here can be used on any plaform for any install modes (diskless, data disk, system disk). Tools provided here can be used on any plaform for any install modes (diskless, data disk, system disk).
Just add [**headless.apkovl.tar.gz**](https://github.com/macmpi/alpine-linux-headless-bootstrap/raw/main/headless.apkovl.tar.gz) overlay file at the root of Alpine Linux boot media (or onto any writeable side-media) and boot the system. Just add [**headless.apkovl.tar.gz**](https://github.com/macmpi/alpine-linux-headless-bootstrap/raw/main/headless.apkovl.tar.gz) overlay file at the root of Alpine Linux boot media (or onto any custom side-media) and boot the system.
With default network interface definitions (and optional wifi SSID/pass file), one may then access the system under `ssh` with:\ With default network interface definitions (and SSID/pass file if using wifi), one may then access the system under `ssh` with:\
`ssh root@<IP>` (system IP address may be determined with any IP scanning tools such as `nmap`). `ssh root@<IP>` (system IP address may be determined with any IP scanning tools such as `nmap`).
As with Alpine Linux initial bring-up, `root` account has no password initially (change that after setup!).\ As with Alpine Linux initial bring-up, `root` account has no password initially (change that after setup!).\
From there, system install can be fine-tuned as usual with `setup-alpine` for instance (check [wiki](https://wiki.alpinelinux.org/wiki/Alpine_setup_scripts#setup-alpine) for details). From there, system install can be fine-tuned as usual with `setup-alpine` for instance (check [wiki](https://wiki.alpinelinux.org/wiki/Alpine_setup_scripts#setup-alpine) for details).
Optional files can be added next to `headless.apkovl.tar.gz` to customise setup (sample files are provided): Add-on files may be added next to `headless.apkovl.tar.gz` to customise setup (sample files are provided):
- `wpa_supplicant.conf`: define wifi SSID & password (mandatory for wifi usecase). - `wpa_supplicant.conf` (*mandatory for wifi usecase*): define wifi SSID & password.
- `interfaces`: define network interfaces at will, if defaults DCHP-based are not suitable. - `interfaces` (*optional*): define network interfaces at will, if defaults DCHP-based are not suitable.
- `unattended.sh`: make custom automated deployment script to further tune & extend setup (backgrounded). - `unattended.sh` (*optional*): make custom automated deployment script to further tune & extend setup (backgrounded).
*Note:* these files are linux text files: Windows/macOS users need to use text editors supporting linux text line-ending (such as [notepad++](https://notepad-plus-plus.org/), BBEdit or any other). *Note:* these files are linux text files: Windows/macOS users need to use text editors supporting linux text line-ending (such as [notepad++](https://notepad-plus-plus.org/), BBEdit or any other).
**Goody:** seamless USB bootstrapping for PiZero devices (or similar which can support USB ethernet gadget networking):\
Just add `dtoverlay=dwc2` in `usercfg.txt` (or `config.txt`), and plug-in USB to Computer port.\
With Computer set-up to share networking with USB interface as 10.42.0.1 gateway, one can log into device from Computer with `ssh root@10.42.0.2` !...
Main execution steps are logged in `/var/log/messages`. Main execution steps are logged in `/var/log/messages`.
## How to customize further ? ## How to customize further ?
This repository may be forked/cloned/downloaded.\ This repository may be forked/cloned/downloaded.\
Main script file is [`headless.start`](https://github.com/macmpi/alpine-linux-headless-bootstrap/blob/main/overlay/etc/local.d/headless.start).\ Main script file is [`headless.start`](https://github.com/macmpi/alpine-linux-headless-bootstrap/blob/main/overlay/etc/local.d/headless.start).\
Execute `./make.sh` to rebuild `headless.apkovl.tar.gz`. Execute `./make.sh` to rebuild `headless.apkovl.tar.gz` after changes.
*Side note:* one nicety for bootstrapping PiZero devices, or similar which can support USB ethernet gadget networking.\
Just add `dtoverlay=dwc2` in `usercfg.txt` (or `config.txt`), and plug-in USB to Computer port.\
With Computer set-up to share networking with USB interface, device will appear at 10.42.0.2 onto Computer's subnet to log into !...
## Credits ## Credits

Binary file not shown.

View File

@ -1,4 +1,5 @@
#!/bin/sh #!/bin/sh
chmod 600 overlay/etc/ssh/ssh_host_*_key
chmod +x overlay/etc/local.d/headless.start chmod +x overlay/etc/local.d/headless.start
tar czvf headless.apkovl.tar.gz -C overlay etc --owner=0 --group=0 tar czvf headless.apkovl.tar.gz -C overlay etc --owner=0 --group=0

View File

@ -1,8 +1,12 @@
#!/bin/sh #!/bin/sh
VERSION="0.5"
# Redirect stdout and errors to console as rc.local does not log anything # Redirect stdout and errors to console as rc.local does not log anything
exec 1>/dev/console 2>&1 exec 1>/dev/console 2>&1
logger -st ${0##*/} "Alpine Linux headless bootstrap v$VERSION by macmpi"
mkdir /tmp/.trash mkdir /tmp/.trash
ovlpath=$( find /media -type d -path '*/.*' -prune -o -type f -name *.apkovl.tar.gz -exec dirname {} \; | head -1 ) ovlpath=$( find /media -type d -path '*/.*' -prune -o -type f -name *.apkovl.tar.gz -exec dirname {} \; | head -1 )
@ -12,7 +16,6 @@ if [ -f "${ovlpath}/wpa_supplicant.conf" ]; then
logger -st ${0##*/} "Wifi setup found !" logger -st ${0##*/} "Wifi setup found !"
apk add wpa_supplicant apk add wpa_supplicant
cp "${ovlpath}/wpa_supplicant.conf" /etc/wpa_supplicant/wpa_supplicant.conf cp "${ovlpath}/wpa_supplicant.conf" /etc/wpa_supplicant/wpa_supplicant.conf
rc-service wpa_supplicant start
else else
logger -st ${0##*/} "Wifi setup not found !" logger -st ${0##*/} "Wifi setup not found !"
fi fi
@ -68,6 +71,8 @@ cat /etc/network/interfaces
echo "alpine-headless" > /etc/hostname echo "alpine-headless" > /etc/hostname
hostname -F /etc/hostname hostname -F /etc/hostname
grep -q "wlan" /etc/network/interfaces && [ -f /etc/wpa_supplicant/wpa_supplicant.conf ] && rc-service wpa_supplicant start
rc-service networking start rc-service networking start
@ -84,8 +89,6 @@ cat <<-EOF >> /etc/ssh/sshd_config
AuthenticationMethods none AuthenticationMethods none
PermitEmptyPasswords yes PermitEmptyPasswords yes
PermitRootLogin yes PermitRootLogin yes
HostKey /tmp/.trash/ssh_host_dsa_key
HostKey /tmp/.trash/ssh_host_ecdsa_key
HostKey /tmp/.trash/ssh_host_ed25519_key HostKey /tmp/.trash/ssh_host_ed25519_key
HostKey /tmp/.trash/ssh_host_rsa_key HostKey /tmp/.trash/ssh_host_rsa_key
EOF EOF

View File

@ -1,21 +0,0 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABsQAAAAdzc2gtZH
NzAAAAgQDHKXTtPOsM86zrYXbYx4JpmRlxIipjm1H2ce8YyTWJj3es/rjMXN3bB3LOuXWB
20XzwU8Z/cIOyhzWixsucU60bmiP7y+lR1m9bqYD+GftcmJJD4A5kpz1laivGqRNhpfYrN
TAe7+jGNi7xh80O91L3ScCQArZJdhhNAa9HosV/QAAABUAlZem7iptLcndvpXz3Gj1MXYY
bN0AAACASzMGzrARwRQB1KPxjrwVXVoPi5QGH3bnziaWMiKXxVu2br5lkqu57unXUHX1ec
r3emUbghGQdQmk8ERnxYokbKHihsHoYBY4GYPRuz6WI52PcHFwaw2ceLjCASEJVgzNdn/K
PNS1Qx68XvTwt7+F1ZlRKnG2aIZA+PqpeUCU/IcAAACAdb1dRX6MNPoim9e4JIRVc8QZXs
UNJt0BhzHMMLRBokuqHEsEdOm7sw2uKyh7NlmmbaLH2AcI9B1+XeeK4lxsZpy+D2F1fwV9
X2aQ27oa2p7U/mNmTdKySYuYauLJCZQrfkDcAXi9QWkJzloy/PsRnftCUUj2jM9AAPbEy5
gz5TMAAAHoLcg8tS3IPLUAAAAHc3NoLWRzcwAAAIEAxyl07TzrDPOs62F22MeCaZkZcSIq
Y5tR9nHvGMk1iY93rP64zFzd2wdyzrl1gdtF88FPGf3CDsoc1osbLnFOtG5oj+8vpUdZvW
6mA/hn7XJiSQ+AOZKc9ZWorxqkTYaX2KzUwHu/oxjYu8YfNDvdS90nAkAK2SXYYTQGvR6L
Ff0AAAAVAJWXpu4qbS3J3b6V89xo9TF2GGzdAAAAgEszBs6wEcEUAdSj8Y68FV1aD4uUBh
92584mljIil8Vbtm6+ZZKrue7p11B19XnK93plG4IRkHUJpPBEZ8WKJGyh4obB6GAWOBmD
0bs+liOdj3BxcGsNnHi4wgEhCVYMzXZ/yjzUtUMevF708Le/hdWZUSpxtmiGQPj6qXlAlP
yHAAAAgHW9XUV+jDT6IpvXuCSEVXPEGV7FDSbdAYcxzDC0QaJLqhxLBHTpu7MNrisoezZZ
pm2ix9gHCPQdfl3niuJcbGacvg9hdX8FfV9mkNu6Gtqe1P5jZk3SskmLmGriyQmUK35A3A
F4vUFpCc5aMvz7EZ37QlFI9ozPQAD2xMuYM+UzAAAAFBiKoHh90r3tzH+wk9EBRTiMCE3d
AAAADnJvb3RAbG9jYWxob3N0AQIDBAU=
-----END OPENSSH PRIVATE KEY-----

View File

@ -1 +0,0 @@
ssh-dss AAAAB3NzaC1kc3MAAACBAMcpdO086wzzrOthdtjHgmmZGXEiKmObUfZx7xjJNYmPd6z+uMxc3dsHcs65dYHbRfPBTxn9wg7KHNaLGy5xTrRuaI/vL6VHWb1upgP4Z+1yYkkPgDmSnPWVqK8apE2Gl9is1MB7v6MY2LvGHzQ73UvdJwJACtkl2GE0Br0eixX9AAAAFQCVl6buKm0tyd2+lfPcaPUxdhhs3QAAAIBLMwbOsBHBFAHUo/GOvBVdWg+LlAYfdufOJpYyIpfFW7ZuvmWSq7nu6ddQdfV5yvd6ZRuCEZB1CaTwRGfFiiRsoeKGwehgFjgZg9G7PpYjnY9wcXBrDZx4uMIBIQlWDM12f8o81LVDHrxe9PC3v4XVmVEqcbZohkD4+ql5QJT8hwAAAIB1vV1Ffow0+iKb17gkhFVzxBlexQ0m3QGHMcwwtEGiS6ocSwR06buzDa4rKHs2WaZtosfYBwj0HX5d54riXGxmnL4PYXV/BX1fZpDbuhrantT+Y2ZN0rJJi5hq4skJlCt+QNwBeL1BaQnOWjL8+xGd+0JRSPaMz0AA9sTLmDPlMw== root@localhost

View File

@ -1,9 +0,0 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQQAo6TcIAgnFGCX0HJbqFtwEa/H+NQ1
gQpZf9+gKJcWCNIGkGdSgerERbqx3anjEDKvwzlPrwSaaF0gMSRg/2yfAAAAqLTc/Ou03P
zrAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBACjpNwgCCcUYJfQ
cluoW3ARr8f41DWBCll/36AolxYI0gaQZ1KB6sRFurHdqeMQMq/DOU+vBJpoXSAxJGD/bJ
8AAAAhAJ2Ka8kkJQcRGROSTPW+PBY6hM8K3CUhZsN34HMHVXxTAAAADnJvb3RAbG9jYWxo
b3N0AQ==
-----END OPENSSH PRIVATE KEY-----

View File

@ -1 +0,0 @@
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBACjpNwgCCcUYJfQcluoW3ARr8f41DWBCll/36AolxYI0gaQZ1KB6sRFurHdqeMQMq/DOU+vBJpoXSAxJGD/bJ8= root@localhost

View File

@ -1,7 +1,7 @@
-----BEGIN OPENSSH PRIVATE KEY----- -----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACCF1PEIbFPSWF5xRx3uqY+AcSgwKn3t8S/jLV3unTJWLgAAAJjeHXU03h11 QyNTUxOQAAACBQ5DhvGz8A3YPVH218RCYdvsz6YrArDxbRdM+Qog+ceAAAAJiMSpNejEqT
NAAAAAtzc2gtZWQyNTUxOQAAACCF1PEIbFPSWF5xRx3uqY+AcSgwKn3t8S/jLV3unTJWLg XgAAAAtzc2gtZWQyNTUxOQAAACBQ5DhvGz8A3YPVH218RCYdvsz6YrArDxbRdM+Qog+ceA
AAAEBf0MGN5wVf2zA5llczr1s/rZQZgxEC45vUpqMkBGSkW4XU8QhsU9JYXnFHHe6pj4Bx AAAECmulBcMfFgxjUrIiuPnOjEkwNcHp9+NOtggzitv4d4F1DkOG8bPwDdg9UfbXxEJh2+
KDAqfe3xL+MtXe6dMlYuAAAADnJvb3RAbG9jYWxob3N0AQIDBAUGBw== zPpisCsPFtF0z5CiD5x4AAAAFHJvb3RAYWxwaW5lLWhlYWRsZXNzAQ==
-----END OPENSSH PRIVATE KEY----- -----END OPENSSH PRIVATE KEY-----

View File

@ -1 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIXU8QhsU9JYXnFHHe6pj4BxKDAqfe3xL+MtXe6dMlYu root@localhost ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFDkOG8bPwDdg9UfbXxEJh2+zPpisCsPFtF0z5CiD5x4 root@alpine-headless

View File

@ -1,38 +1,38 @@
-----BEGIN OPENSSH PRIVATE KEY----- -----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY----- -----END OPENSSH PRIVATE KEY-----

View File

@ -1 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDS3eKGoDAB5ZuVtj17zzmwl8MLQSjVshc4ZoF9JGdpEtT6UPV5SG0RFW7j11n6knJPFlZ59druNTy6eBPGTS7E5tofZAuNzD5mpbkcPK6xiGOkhIlYghCnDeKKZzbyZ5aXE91wTVhaCuy5fVV4uY3Q3n9Ew5Wrpb8Ty7lj+zbo9qeMZMLwEKABoATQfrdzD4/NmiMMAWgpeEcghFUt2x3oLn4nsFPxV/m8uwHZ1jzglhIuae89cWAu2xnqgncwUehEXIRJdnwMFJN7xqdZj96KCkAdAVFe9FsLZy1XXII90yOvA2IqFqDabhWPMQ4gypgxdITm+LqgYYyukj8eD47nf3ROXR7MjIzJ/xrRBymu0v8FUkRC2oMjY4c4gCoDFK6bbZp9h6VxydC2ohr+BEVTsZ4BPW7UlycuBQl+N3LQ618Yag7eEJ3l6tGInE2X15ptvNOAsYDtpaH0FQ+EV77VHmPrDksz1xc5UU4tUIQZ9Kp19VqTSNgSN4oICnmJQCE= root@localhost ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDBSPBqlg0Lg43IXL5id3DfyFvwtm3kqSnEYBI0LHhiuTvV0j4R5+QVlYghSgYPkSfTJuSCMZkjc7C9BHV/CdJ9MhbFIOgOJhkRkxnSCiRcu2C2u/M6csD+VH7N9xj7LWtxVvu6UsyV81w4dLRIuKAAJjIcySQHXOCC77dvrrGWCEXKVJPv00jOjO2KOCwK8xuTphn2W4QRz0Fh+GL5jDhReqG2TtInFJ1ih0jmE/JHq5BcdsNvgu/E3guKb1I2SOQbO1KjIOXreKvAKdqn4/eBRJvv6HsCk/hmiodKVqGfpkuBSNNOU9RHHVg8+251iVcNojrayuVlt+Hmp1sDJcEyiEyvdt3z9aETzRbaTV3BTGCenGMwzUW3yelbb2zSKMz7ZeedvdTobIlWsgVfF+fPt0O61BJ0cFT7QBOb95xREvE8JcJm7hoeQK+s5qxF+lCbxegIKiC5D8JDbmSjWkq/f3cvmW80YjZPrxk00xZowlYKkVhu3bEt8HbLLyjsT3s= root@alpine-headless