Astra linux pxe установка

Установка по PXE для Astra Linux SE 1.4

Приветствуем, коллеги и тайные любители Astra Linux!

Не так давно вышла новая версия Astra Linux Special Edition за номером 1.4 и мы решили обновить наш проект по разворачиванию сервера автоматической установки и все шло гладко… но выяснился один момент после первой пробной установки: аппаратные часы устанавливаются в местное время. Как известно, лучше иметь RTC (CMOS) в UTC, а системное определять как UTC+time zone… ну так уж повелось — пруф (там все достойно описано). Но в 1.4 видимо решили угодить любителям двойной загрузки c Windows и вставили вот такой кусок в 94astra_extra_postinst (из пакет astra-config.udeb):

в комментариях была следующая фраза:

говорим, что время в биосе не UTC, а местное, чтобы не двигалось на 4 часа вперед

В нашем initrd мы это устранили, можете пользоваться.

Для dual boot c win можно поправить кое-что в реестре и жить правильно, подробности в ссылке приведенной как пруф.

Похожие статьи

Сборка Mono для Debian и Astra Linux

Команда Лаборатории 50 подготовила сборку Mono для Debian Buster и Astra Linux Special Edition 1.6. Состав В сборку входит: Mono 6.12; LibGdiPlus 6.0.6; Entity Framework 6; драйвер Npgsql Entity Framework.

ГосJava 2020.3

Изменения по сравнению с версией 2020.2 Java Runtime Environment Импортированы исправления из OpenJDK 8u262. Закрыты уязвимости: CVE-2020-14583: incomplete interface type checks in Graal compiler (Hotspot, 8236867). CVE-2020-14664: out-of-bounds write in.

Запуск нескольких экземпляров Tomcat

Запуск нескольких экземпляров Apache Tomcat Если есть необходимость запуска нескольких экземпляров сервера Apache Tomcat, то стандартные настройки и скрипты запуска не подходят. Ниже приведена инструкция и примеры скриптов для решения.

Источник

Автоматическая установка «Astra Linux Special Edition» (часть 1)

Об автоматической установке дистрибутива «Astra Linux Special Edition»

Автоматическая преднастроенная установка на основе так называемых preseed файлов (ответов на вопросы инсталлятора) не является чем-то новым, информации в сети полно, например тут. Данная технология очень удобна и в комбинации с PXE (подробнее тут) позволяет быстро и без лишних вопросов установить ОС на целевой компьютер или сервер. Наша команда при работе над проектом программного комплекса кластера высокой готовности (что такое кластерные технологии в целом можно почитать здесь) на базе отечественной защищенной ОС Astra Linux Special Edition версии 1.3 столкнулась с необходимости установки ОС в идентичной конфигурации на несколько серверов, а поскольку в процессе тестирования нашего продукта на железе, возникала необходимость тестировать на свежеустановленной ОС, вопрос оптимизации временных затрат на данную операцию вышел на первый план. При установке программного комплекса у заказчика автоматизация установки тоже дело полезное и, как выяснилось позже, необходимое.

Читайте также:  Windows 10 zver запрашивает пароль

Кратко процедура установки выглядит так:

  1. В BIOS целевого компьютера ставим «Загрузка по сети» (обычно Boot to Network -> Enable и в Boot Device Priority -> Ethernet на первом месте, уточняйте в документации).
  2. На компьютере который у нас будет выступать в роли сервера установки, заряжаем dhcp, tftp и http (ftp) (подробности ниже).
  3. Включаем целевой компьютер, тот получает IP, качает загрузочный образ по tftp и запускает инсталляцию.
  4. и как говорится: Поехали!

Автоматическая установка «Astra Linux Special Edition»

Из документации на ОС нами было определено, что такая возможность присутствует, что в принципе ожидаемо для достаточно свежего Дебьян-подобного дистрибутива и разработчики приводят инструкцию как это сделать… Но «гладко было на бумаге». В процессе первоначального знакомства столкнулись с рядом проблем. Но обо всем по порядку. Для реализации задачи нами был выбран dnsmasq в качестве dhcp и tftp сервера и образ netinst с диска Астры. Первое с чем надо определится как будем отдавать репозиторий с пакетами. Как правило, используют http и тут первая особенность, поскольку это защищенная и сертифицированная ОС, то имеющийся сервер Apache — тоже защищен, отсутствует возможность доступа без авторизации (только pam или kerberos). Следовательно, если вы будете использовать другую ОС, в качестве сервера установки, то можно настроить любой http-сервер.

Настройка http-сервера apache для ubuntu’образных

# aptitude install apache2
правим /etc/apache2/httpd.conf добавив следующие строки:
# /media/cdrom — зеркала пакетов (в данном примере cd дистрибутивом)

Options Indexes FollowSymLinks
Allowoverride None

Options Indexes FollowSymLinks
Allowoverride None

Alias /astra «/media/cdrom»
Alias /tftpboot «/srv/ftp/tftp»

# service apache2 restart

  • Проверить через браузер, что указанные каталоги доступны.
  • Настройка vsftpd

    # aptitude install vsftpd

    # mkdir -p /srv/ftp && chmod -R 755 /srv/ftp

    # usermod -d /srv/ftp ftp
    правим файл /etc/vsftpd.conf:
    listen=YES
    listen_ipv6=NO
    anonymous_enable=YES
    anon_root=/srv/ftp/
    local_enable=NO
    write_enable=YES
    local_umask=022
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    dirmessage_enable=YES
    use_localtime=YES
    xferlog_enable=YES
    connect_from_port20=YES
    chroot_local_user=YES
    secure_chroot_dir=/var/run/vsftpd/empty
    pam_service_name=ftp
    rsa_cert_file=/etc/ssl/private/vsftpd.pem

    # service vsftpd restart

    Настройка dnsmasq как dhcp и tftp сервера

    # aptitude install dnsmasq
    правим файл /etc/dnsmasq.conf:
    interface=eth0
    dhcp-range= , , , 24h
    dhcp-option=3,
    enable-tftp
    # /srv/ftp/tftp — путь до корневого каталога tftp сервера
    tftp-root=/srv/ftp/tftp
    # pxelinux.0 это файл из пакета SYSLINUX, входящего в состав образа netinst.
    dhcp-boot=pxelinux.0

    # service dnsmasq restart

    Организация каталога для tftp-сервера

    Копируем в /srv/ftp/tftp из netinst файлы linux (ядро), pxelinux.0, initrd. gz (временная файловая система, используемая ядром при начальной загрузке). Далее, в /srv/ftp/tftp создаем каталог pxelinux. cfg и там делаем файл с именем default (его будет получает целевой компьютер). Данный файл содержит параметры загрузки ядра. В параметре url и указывается файл с ответами на вопросы установщика.

    Читайте также:  Чем открыть linux диск

    Пример файла default

    • Для установки базовой системы + рабочего стола Fly добавляем строку: tasksel tasksel/first multiselect Base, Fly
    • не настраиваем сервисы ALD и службу kiosk (служба разграничения доступа к файлам) добавляем следующие строки:
      astra-license astra-license/license boolean true
      krb5-config krb5-config/kerberos_servers string
      libnss-ldapd libnss-ldapd/ldap-base string
      libnss-ldapd libnss-ldapd/ldap-uris string
      libnss-ldapd libnss-ldapd/nsswitch multiselect services
      ald-client ald-client/make_config boolean false
      ald-client ald-client/manual_configure note
      tasksel tasksel/astra-feat-setup multiselect

    Пример файла preseed.cfg

    # настройка клавиатуры
    d-i keyboard-configuration/xkb-keymap select ru d-i console-setup/toggle string Alt+Shift
    d-i languagechooser/language-name-fb select Russian
    d-i countrychooser/country-name select Russia
    d-i keyboard-configuration/toggle select Alt+Shift
    d-i console-setup/fontface select Terminus
    d-i console-setup/ask_detect boolean false
    d-i console-setup/layoutcode string ru d-i console-setup/variant Россия

    # подключение репозиториев
    d-i apt-setup/non-free boolean true
    d-i apt-setup/contrib boolean true

    # выключить показ диалога с WEP ключом.
    d-i netcfg/wireless_wep string

    # настройка зеркала с пакетами
    d-i mirror/protocol string ftp
    d-i mirror/country string manual
    d-i mirror/ftp/hostname string
    d-i mirror/ftp/directory string /astra_repository
    d-i mirror/ftp/proxy string

    # задаёт, установлены или нет аппаратные часы по Гринвичу.
    d-i clock-setup/utc boolean true

    # настройка timezone
    d-i time/zone string Europe/Moscow

    # определяет, нужно ли использовать NTP для установки часов во время установки
    d-i clock-setup/ntp boolean false

    # разбиение диска создание разделов
    d-i partman-auto/method string lvm
    d-i partman-lvm/device_remove_lvm boolean true
    d-i partman-auto/purge_lvm_from_device boolean true
    d-i partman-md/device_remove_md boolean true
    d-i partman-md/confirm_nochanges boolean true
    d-i partman-lvm/confirm boolean true
    d-i partman-auto/choose_recipe select atomic
    d-i partman-md/confirm boolean true
    d-i partman-partitioning/confirm_write_new_label boolean true
    d-i partman/choose_partition select Finish partitioning and write changes to disk
    d-i partman/confirm boolean true
    d-i partman-md/confirm_nooverwrite boolean true
    d-i partman/confirm_nooverwrite boolean true

    # устанавливаемый пакет (мета) с образом ядра; можно указать «none»,
    # если ядро устанавливать не нужно.
    d-i base-installer/kernel/image string linux-image-generic

    d-i passwd/make-user boolean true

    # пароль суперпользователя, любой открытым текстом
    d-i passwd/root-password password password
    d-i passwd/root-password-again password password

    # создать учётную запись обычного пользователя.
    d-i passwd/user-fullname string user
    d-i passwd/username string user

    # пароль обычного пользователя, или открытым текстом
    d-i passwd/user-password password user
    d-i passwd/user-password-again password user

    console-setup console-setup/fontface select Terminus

    # Вы можете указать нужно ли устанавливать non-free и contrib ПО.
    d-i apt-setup/non-free boolean true
    d-i apt-setup/contrib boolean true
    d-i apt-setup/services-select multi-select
    d-i apt-setup/security_host string
    d-i apt-setup/volatile_host string

    # По умолчанию программа установки требует, чтобы репозитории
    # аутентифицировались с помощью известного ключа gpg.
    # Этот параметр выключает данную аутентификацию.
    # Предупреждение: это небезопасно, рекомендуется не делать этого.
    d-i debian-installer/allow_unauthenticated string true

    # установка базовой системы + рабочий стол Fly
    tasksel tasksel/first multiselect Base, Fly

    # отдельные дополнительные пакеты для установки
    d-i pkgsel/include string openssh-server

    # специфичные настройки для Astra Linux
    astra-license astra-license/license boolean true
    krb5-config krb5-config/kerberos_servers string
    libnss-ldapd libnss-ldapd/ldap-base string
    libnss-ldapd libnss-ldapd/ldap-uris string
    libnss-ldapd libnss-ldapd/nsswitch multiselect services
    ald-client ald-client/make_config boolean false
    ald-client ald-client/manual_configure note
    # НЕ настраивать киоск
    #astra-feat-setup astra-feat-setup/feat multiselect kiosk mode
    tasksel tasksel/astra-feat-setup multiselect

    Читайте также:  Microsoft xbox one controller drivers windows 10

    d-i console-cyrillic/toggle select Caps Lock

    # некоторые версии программы установки могут отсылать отчёт
    # об установленных пакетах. По умолчанию данная возможность
    # выключена, но отправка отчёта помогает проекту
    # определить популярность программ и какие из них включать на CD.
    popularity-contest popularity-contest/participate boolean false

    # эту переменную можно безопасно устанавливать, она указывает, что grub
    # должен устанавливаться в MBR,
    # если на машине не найдено другой операционной системы.
    d-i grub-installer/only_debian boolean true

    # это заставляет grub-installer устанавливать в MBR, даже если на машине
    # есть другая ОС, что менее безопасно, так как может привести к отказу
    # загрузки этой другой ОС.
    d-i grub-installer/with_other_os boolean true

    # остановить систему после завершения установки, а
    # не перегружаться в установленную систему.
    d-i debian-installer/exit/halt boolean true

    Некоторые выявленные проблемы

    Большинство изменений сделаны в initrd, под спойлерами команды для разборки\сборки initrd.

    Разбираем initrd.gz

    # gunzip initrd. gz

    # sudo gzip initrd

    • изменен usr/share/localechooser/languagelist поддержка русскому языку изменена с 2 на 1. Было ru;2;RU;ru_RU.UTF-8;;console-setup стало ru;1;RU;ru_RU.UTF-8;;console-setup . Без этого при выборе русской локали установка «затыкалась».
    • добавлен модуль dca. ko в lib/modules/3.2.0−27-generic/kernel/drivers/dca/. Без него intel’овские гигабитные адаптеры не «поднимаются» в процессе инсталляции, следовательно качнуть пакеты не представляется возможным.
    • добавлены модули dm-log.ko dm-mirror.ko dm-mod.ko dm-region-hash.ko в lib/modules/3.2.0−27-generic/kernel/drivers/md/. Без них не работали наши сервера, в которых стоит программный RAID (serial ata raid, soft raid).
    • также мы добавили ключи от своего репа spkb-archive-keyring.gpg (он служит зеркалом при установке) в usr/share/keyrings, так как репозиторий нам пришлось модифицировать.

    Причина использования собственного репозитория в качестве зеркала для установки в том, что имеющейся в оригинальном дистрибутиве пакет grub-installer1.70astra.se4_amd64.udeb, содержит ошибку и валится при установке grub на soft&fake raid. Был заменен на grub-installer1.78ubuntu8_amd64.udeb.

    Как видно из данной статьи, количество операций по настройке, довольно велико, и, естественно, нам хотелось этот процесс как-то автоматизировать. Что из этого получилось и как задавать индивидуальные параметры установки по mac-адресам читайте в следующей части.

    Похожие статьи

    Сборка Mono для Debian и Astra Linux

    Команда Лаборатории 50 подготовила сборку Mono для Debian Buster и Astra Linux Special Edition 1.6. Состав В сборку входит: Mono 6.12; LibGdiPlus 6.0.6; Entity Framework 6; драйвер Npgsql Entity Framework.

    ГосJava 2020.3

    Изменения по сравнению с версией 2020.2 Java Runtime Environment Импортированы исправления из OpenJDK 8u262. Закрыты уязвимости: CVE-2020-14583: incomplete interface type checks in Graal compiler (Hotspot, 8236867). CVE-2020-14664: out-of-bounds write in.

    Запуск нескольких экземпляров Tomcat

    Запуск нескольких экземпляров Apache Tomcat Если есть необходимость запуска нескольких экземпляров сервера Apache Tomcat, то стандартные настройки и скрипты запуска не подходят. Ниже приведена инструкция и примеры скриптов для решения.

    Источник

    Оцените статью