Установщик Ubuntu 20.04 загружает ISO более одного раза
Я работал над примером, опубликованным Эндрю Лоутером в разделе « Автоматическая установка сервера 20.04» с использованием PXE и живого образа сервера . Например, используя командную строку Linux, похожую на:
linux /vmlinuz ip=dhcp url=http://${pxe_default_server}/tftp/ubuntu-20.04-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://${pxe_default_server}/tftp/
.... и все заработало (спасибо, Эндрю!)
Еще один вопрос, который у меня возник после того, как я немного поработал с этим. Как видите, установщик скачает ISO-образ с
http://${pxe_default_server}/tftp/ubuntu-20.04-live-server-amd64.iso
в этом примере. В моих журналах httpd я вижу, что ISO загружается 3 раза по сети при выполнении одной автоматической установки. Есть ли способ сделать так, чтобы этого не было?
192.168.1.225 - - [06/Apr/2021:22:09:47 +0000] "GET /ubuntu-20.04.1-live-server-amd64.iso HTTP/1.1" 200 958398464 "-" "Wget"
192.168.1.225 - - [06/Apr/2021:22:13:24 +0000] "GET /ubuntu-20.04.1-live-server-amd64.iso HTTP/1.1" 200 958398464 "-" "Cloud-Init/20.2-45-g5f7825e2-0ubuntu1~20.04.1"
192.68.1.225 - - [06/Apr/2021:22:16:50 +0000] "GET /ubuntu-20.04.1-live-server-amd64.iso HTTP/1.1" 200 958398464 "-" "Cloud-Init/20.2-45-g5f7825e2-0ubuntu1~20.04.1"
Спасибо!
1 ответ
Я видел, что это получило ответ на Discourse, но я подумал, что поделюсь тем, что нашел.
Добавление
cloud-config-url=/dev/null
к аргументам ядра не позволяет загружать ISO, а ISO загружается только один раз. Полная линия grub теперь
linux /vmlinuz ip=dhcp url=http://${pxe_default_server}/tftp/ubuntu-20.04-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://${pxe_default_server}/tftp/ cloud-config-url=/dev/null
почему это происходит
При использовании PXE
url=
Параметр должен быть добавлен к аргументам ядра, чтобы указать расположение файла ISO. Полагаю
casper
обрабатывает это, и аргумент должен быть в форме
url=*.iso
cloud-init
также будет анализировать
url
аргумент ядра и попытаться его использовать (по-видимому, дважды). Из https://github.com/canonical/cloud-init/blob/fc5d541529d9f4a076998b7b4a3c90bb4be0000d/doc/sources/kernel-cmdline.txt
когда запускается «cloud-init start», он проверяет, появляется ли один из «cloud-config-url» или «url» в виде ключ/значение в командной строке ядра... Затем Cloud-init прочитает содержимое указанного URL.
Как отмечается в посте Discourse,
cloud-config-url
проверяется в первую очередь , поэтому вы можете использовать кладж, чтобы избежать дополнительных загрузок.