rev="post-1044" No Comments
Изходни данни за ситуацията
- Трябва да се инсталира линукс сървър.
- Нямаме фиизчески достъп до сървъра.
- Сървъра няма out-of-band управление (iLO, LOM, IPMI и т.н.).
- Сървъра разполага с ethernet връзка към Интернет.
- На място (при сървъра) има човек, който може да окаже някакво съдействие. Ще го наречем бай Иван.
План за действие
- Ще направим имидж (ISO), който ще изпратим на бай Иван, за да го качи на флашка и да зареди сървъра от него.
- От флашката ще се заредят достатъчно „неща“, които да ни осигурят отдалечен и сигурен достъп до машината, за да продължим инсталацията.
Изпълнение
Ще използваме minimal образ на Ubuntu 20.04 LTS, защото е изключително малък и ще бъде лесно да бъде изпратен на бай Иван.
Образа е наличен тук.
Отваряме ISO-то и редактираме txt.cfg. Той би трябвало да съдържа следните редове:
label install
menu label ^Install
menu default
kernel linux
append vga=788 initrd=initrd.gz --- quiet
Редактираме последният ред (всичко е на един ред):
append vga=788 initrd=initrd.gz console-setup/layoutcode=us locale=en_US.UTF-8 keyboard-configuration/layoutcode=us languagechooser/language-name=English countrychooser/shortlist=BG localechooser/supported-locales=en_US.UTF-8 hostname=ubuntuserver domain=local interface=auto url=https://kamenitza.org/files/preseed.cfg debian-installer/allow_unauthenticated_ssl=true ipv6.disable=1 ---
Нещата, които този ред върши са сравнително ясни и самообясняващи се. По-интересни са
- interface=auto – Автоматична настройка на мрежовия интерфейс (DHCP).
- url=https://kamenitza.org/files/preseed.cfg – Съдържа предврителен избор на опции от инсталацията.
Ако в мрежата няма DHCP сървър и IP-то трябва да се настрои ръчно, interface=autо се замества със следните примерни параметри:
netcfg/get_ipaddress=192.168.150.111 netcfg/get_netmask=255.255.255.0 netcfg/get_gateway=192.168.150.1 netcfg/get_nameservers=8.8.8.8 netcfg/disable_dhcp=true
За редакция на ISO файл в Уиндоус няма особено работещи безплатни програмчета. Аз ползвах WinISO, което в триал/демо режим върши работа за малки образи.
По наша преценка се прави бутваща USB флашка (с Rufus) или CD или DVD.
Горещо препоръчвам ползването на възможно най-пълен preseed.cfg, за да се елиминира ръчния труд при повторно изпълнение на задачата:
d-i preseed/early_command string anna-install network-console
d-i debian-installer/locale string en_US.UTF-8
d-i localechooser/supported-locales multiselect en_US.UTF-8
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/layoutcode string en
d-i anna/choose_modules string network-console
d-i network-console/authorized_keys_url string https://kamenitza.org/files/ssh-key.txt
d-i mirror/country string Bulgaria
d-i mirror/http/hostname string bg.archive.ubuntu.com
d-i mirror/http/mirror select bg.archive.ubuntu.com
d-i mirror/http/proxy string
d-i passwd/user-fullname string Todor Kandev
d-i passwd/username string tkandev
d-i passwd/user-password-crypted password $5$ceFBePtE$n0S0.mW1tQQUYH4RPfshNIWd/vilV3E2NhBkUWk/yd0
d-i clock-setup/utc boolean false
d-i time/zone string Europe/Sofia
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string bg.pool.ntp.org
d-i pkgsel/update-policy select none
d-i apt-setup/services-select none
d-i apt-setup/universe boolean true
d-i tasksel/first multiselect standard system utilities, OpenSSH server
d-i preseed/late_command string \
in-target mkdir -p /home/tkandev/.ssh; \
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN1hQH5HHB8U2PUbUn7nwYUHm0jdz3URoFdYZY1+QSVk kandev-v2" > /target/home/tkandev/.ssh/authorized_keys; \
in-target chown tkandev:tkandev /home/tkandev/.ssh -R; \
in-target sed -i s/#PasswordAuthentication\ yes/PasswordAuthentication\ no/g /etc/ssh/sshd_config; \
apt-install mc net-tools
d-i finish-install/reboot_in_progress note
Опциите са достатъчно говорящи и самообясняващи се. Основна опция тук е network-console/authorized_keys_url. Представлява URL адрес до SSH ключа, който ще се ползва за автентикация при инсталацията. Друго интересно е създаването на потребител, задаването на парола, добавянето на SSH ключ, включването на този потребител в sudoers и забраняването за ползване на пароли при влизане през SSH. Паролата на потребителя се генерира ето така:
mkpasswd -m sha-256
Сега бай Иван трябва да буутне сървъра с нашия имидж и да избере опцията за инсталация по подразбиране. След няколко минути всичко спира на следния екран:
Може да си знаем адреса, а може и бай Иван да ни го изпрати по някакъв начин. Инструкциите са ясни. Свързваме се с дадения IP адрес по SSH с потребител installer, като се автентикираме с личния си ключ. Довършваме инсталацията с всичко, което липсва от preseed фйла.
Наздраве! 🙂
Последни коментари