Anaconda — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
Строка 16: Строка 16:
  
 
В '''интерактивном''' режиме оператор, выполняющий установку ОС, отвечает на вопросы установщика, вносит и изменяет настройки, а в '''автоматизированном''' режиме программа установки самостоятельно запускается, выполняет все настройки и установку ОС, не требуя никакого взаимодействия с оператором, что может быть полезно для автоматизированного развертывания рабочих станций и серверов.
 
В '''интерактивном''' режиме оператор, выполняющий установку ОС, отвечает на вопросы установщика, вносит и изменяет настройки, а в '''автоматизированном''' режиме программа установки самостоятельно запускается, выполняет все настройки и установку ОС, не требуя никакого взаимодействия с оператором, что может быть полезно для автоматизированного развертывания рабочих станций и серверов.
 +
 +
Минималистичный образ rosa2019.1 для тестирования инсталлятора: [https://abf.io/platforms/rosa2019.1/products/273 rosa2019.1_LXQt_mini_alpha_mn]
  
 
== Принцип работы ==
 
== Принцип работы ==

Версия 06:39, 22 сентября 2020

Введение и терминология

Anaconda — это программа для установки операционной системы (далее ­— ОС) с загрузочного образа на диск компьютера (далее — программа установки, инсталлятор).

Статья описывает использование Anaconda в дистрибутивах на платформах rosa2019.1 (ROSA Fresh >= R12, ROSA Enterprise Desktop >= X5) и rosa2019.05.

Оператор — человек, взаимодействующий с компьютером с целью установки ОС.
LiveCD — полезная нагрузка установочного образа ОС — ОС, запущенная без установки с установочного носителя.

Anaconda позволяет устаналивать ОС в пяти режимах:

  • интерактивный графический интерфейс программы установки непосредственно на компьютере
  • интерактивный графический интерфейс программы установки по VNC
  • автоматизированный графический интерфейс программы установки непосредственно на компьютере
  • интерактивный консольный интерфейс программы установки
  • автоматизированный консольный интерфейс программы установки

В интерактивном режиме оператор, выполняющий установку ОС, отвечает на вопросы установщика, вносит и изменяет настройки, а в автоматизированном режиме программа установки самостоятельно запускается, выполняет все настройки и установку ОС, не требуя никакого взаимодействия с оператором, что может быть полезно для автоматизированного развертывания рабочих станций и серверов.

Минималистичный образ rosa2019.1 для тестирования инсталлятора: rosa2019.1_LXQt_mini_alpha_mn

Принцип работы

Порядок работы программы установки в любом из режимов можно разделить на следующие этапы:

  • чтение cmdline ядра dracut-модулем anaconda внутри initrd (https://anaconda-installer.readthedocs.io/en/latest/boot-options.html) на ранних этапах запуска ОС в LiveCD
  • запуск программы установки (автоматизированно исходя из параметров в cmdline или оператором вручную с помощью ярлыка на рабочем столе в запущенной графической оболочке)
  • применение настроек (либо из файла настроек автоматизированной установки, либо путем интерактивного взаимодействия с оператором)
  • подготовка дисковых устройств (автоматическая или ручная разметка диска)
  • копирование LiveCD на подготовленные дисковые разделы через rsync(1) (этот этап называется "Установка программного обеспечения", а копирование производится из исходного LiveCD без учета внесенных в Live-сеансе правок)
  • установка загрузчика ОС (Grub2)
  • пересборка initramfs (в initramfs LiveCD есть не требуемые в установленной ОС модули, например, модуль Anaconda)
  • выполнение пост-установочных скриптов (на данный момент выполняется этот скрипт: https://abf.io/import/anaconda/blob/master/90-rosa1-postinstall.sh, основная задача которого — очистить скопированную с LiveCD систему от более ненужных пакетов, в т.ч. самой программы установки)

Графическая программа установки Anaconda

Графическая программа установки запускается командой liveinst. Как правило, запуск производится внутри запущенной в LiveCD графической оболочки. /usr/bin/liveinst является символической ссылкой на consolehelper, что позволяет запускать /usr/sbin/liveinst от не-root в LiveCD без пароля. liveinst — это bash-скрипт, запускающий /usr/sbin/anaconda (на Python).

Модель построения интерактивного графического интерфейса такова:

  • каждая группа настроек вынесена в отдельную группу ("spoke")
  • на главном экране есть прямоугольные области для вызова каждой группы
  • кнопка "Готово" внутри группы возвращает на главный экран
  • если настройки неоптимальные, но допустимые (например, слабый пароль), то по первому нажатию кнопки "Готово" будет показано предупреждение, а второе нажатие применит текущие настройки несмотря на их неоптимальность
  • если в установленных внутри группы настройках обнаружены критические ошибки, не позволяющие установить ОС, группа помечается красным цветом шрифта и восклицательным знаком; нужно нажать на нее и исправить настройки
  • группа может быть как обязательной к настройке, так и не обязательной
  • можно разрабатывать плагины, добавляющие свои группы настроек
  • когда необходимый минимум настроек выполнен, можно запустить установку ОС, в процессе которой не будет задано никаких дополнительных вопросов
  • по окончанию появится кнопка для закрытия программы установки
  • при запуске внутри графической оболочки выключение или перезагрузка компьютера выполяется оператором самостоятельно средствами запущенной графической оболочки

При запуске в неинтерактивном режиме пропускается этап настройки, сразу запускается установка ОС.

Консольная программа установки Anaconda

Консольная программа реализует тот же принцип работы, что и описанная выше графическая программа, однако интерактивное взаимодействие выполняется не с помощью мыши и клавиатуры, а только с помощью клавиатуры. Оператору предлагается выбрать один из нескольких вариантов (например, в какую группу настроек войти) путем ввода цифры или буквы с клавиатуры.

Для запуска консольной программы установки необходимо добавить в cmdline ядра:

 systemd.unit=anaconda.target inst.text

Запустится мультиплексор терминалов tmux, на первой вкладке которого будет запущена консольная программа установки Anaconda.

! В настоящее время консольная программа установки хочет отдельный репозиторий для установки, установка прямо с LiveCD не работает, ведутся работы по исправлению.

Графическая установка по VNC

Установка по VNC позволяет запустить графическую программу установки на другом компьютере (машине оператора). Полезно, если целевой компьютер находится далеко или не имеет монитора, мыши, клавиатуры. Можно управлять установкой с другого компьютера.

Важно! Запускается запароленный или не запароленный VNC-сервер, подключение к которому доступно всем, без фильтрации сетевого трафика. Будьте осторожны при запуске VNC в незащищенном периметре сети!

Для установки по сети понадобится клиентская машина с TigerVNC. Для установки на ROSA выполните:

 sudo dnf install /usr/bin/vncviewer

На машине оператора (далее — клиент) запустите VNC-клиент в режиме ожидания входящего подключения:

 vncviewer -listen 4444

где 4444 — сетевой порт, любой свободный.

Узнайте IP-адрес машины оператора установки:

 /sbin/ip a

В cmdline ядра при запуске LiveCD (в т.ч. при PXE-загрузке) добавьте:

 systemd.unit=anaconda.target inst.vnc inst.vncconnect=192.168.1.173:4444

где 192.168.1.173 — адрес машины оператора установки, а 4444 — порт.

Сеть будет настроена автоматически по DHCP. Должна быть обеспечена двусторонняя сетевая доступность клиента (оператора) и сервера (машины, на которую производится установка ОС).

Подождите. Через какое-то время на машине оператора откроется окно с графической программой установки, пример на скриншоте ниже.
Image.png

Подробная документация по опциями в cmdline: https://anaconda-installer.readthedocs.io/en/latest/boot-options.html