Anaconda

Материал из Rosalab Wiki
Версия от 02:24, 22 сентября 2020; Mikhailnov (обсуждение | вклад) (Новая страница: «== Введение и терминология == [https://github.com/rhinstaller/anaconda Anaconda] — это программа для установки о…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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

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

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

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

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

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

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

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

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

  • применение настроек (либо из файла настроек автоматизированной установки, либо путем интерактивного взаимодействия с оператором)
  • подготовка дисковых устройств (автоматическая или ручная разметка диска)
  • копирование 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 является [Символические_ссылки_в_Linux символической ссылкой] на consolehelper, что позволяет запускать /usr/sbin/liveinst от не-root в LiveCD без пароля. liveinst — это bash-скрипт, запускающий /usr/sbin/anaconda (на Python).

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

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