GithubHelp home page GithubHelp logo

bakmah / astra_preseed_install Goto Github PK

View Code? Open in Web Editor NEW

This project forked from laboratory50/astra_preseed_install

0.0 0.0 0.0 162.19 MB

rep for deploy infrastructure for preseed install of astra linux se

License: GNU Lesser General Public License v3.0

astra_preseed_install's Introduction

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

Этот репозиторий содержит сценарии Ansible для создания сервера автоматической установки по сети ОС Astra Linux Special Edition на целевые машины.

Авторы: Лаборатория 50 [email protected].

Лицензия

Все материалы распространяются на условиях стандартной общественной лицензии GNU (GPL) версии 3.

Полный текст лицензии находится в файле LICENSE.

Используются следующие пакеты:

  • Ansible версии 1.7+;
  • Dnsmasq — DHCP и TFTP сервер;
  • LigHTTPd/Apache 2/vsftpd — сервер раздачи репозитория/preseed файлов.

Возможности

Проект в первую очередь предназначен для использования сисадминами и внедренцами, работающими с Astra Linux Special Edition. Сценарии позволяют создать полностью автономный сервер для сетевой установки ОС. Например, на ноутбуке.

Важные функции:

  • Раздача репозитория операционной системы.
  • Упрощенное создание сценариев установки (pressed-файлов) оптимизированных для Астры.
  • Поддержка программного RAID и LVM.
  • Привязка IP-адресов к MAC-адресам.
  • Использование разных сценариев установки для разных узлов (привязка к MAC-адресам).
  • Поддержка UEFI (необходим пакет syslinux-efi).

Подготовка

  1. Установите пакет ansible: apt-get -y install ansible.
  2. Создайте файл stage (на базе примера stage.sample). Пример рассчитан на установку на локальный узел.
  3. Создайте сценарий установки на базе примера site.yml: cp site.yml my.yml. Поставляемый файл рассчитан на установку на локальном узле пользователем с возможностью использования sudo. Если вы работаете под root-ом, значение sudo установите в false.
  4. Создайте свои сценарии установки ОС (preseed) в отдельном файле, например preseeds.yml.
  5. Создайте файл конфигурации параметров инсталляции и целевых машин в каталоге vars/ на базе примера vars/example.yml.

Установка

Установка производится с помощью Ansible:

ansible-playbook -i stage my.yml --extra-vars="@vars/my.yml"

Сценарий установки ОС (preseed-файл)

Preseed-файл задает параметры автоматической установки Debian-подобных систем. В проекте есть роль preseed которая облегчает создание этого файла путем автоматической генерации на основании шаблона. Вы можете создавать любое количество preseed-файлов.

Пример использования нескольких сценариев (в my.yml):

…
  vars_files:
    - vars/srv-cfg1.yml

…
  roles:
    - { role: preseed, preseed: "{{ server }}" }
    - { role: preseed, preseed: "{{ client }}" }
…

В примере будет создаваться два preseed-файла, определяемых переменными server и client в файле preseeds.yml:

server:
    name: server
    …

client:
    name: client
    …

В роли preseed уже есть две стандартные роли: standard и dmraid. Некоторые ограничения на настройку ролей:

  1. Два варианта разбиения диска: LVM и программный RAID (RAID + LVM).

Пример сценария

Замечания для версии Астры 1.3

Данная конфигурация настроена на установку по сети ОС Astra Linux Special Edition. Для этого доработан образ initrd.gz инсталлятора (по отношению к netinst c оригинального диска с ОС Astra Linux 1.3):

  • изменен 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/
  • добавлены модули dm-log.ko dm-mirror.ko dm-mod.ko dm-region-hash.ko в lib/modules/3.2.0-27-generic/kernel/drivers/md/
  • добавлены ключи lab50-archive-keyring.gpg от собственного репа (он служит зеркалом при установке) в usr/share/keyrings

Как это все сделать самостоятельно.

  1. распаковка и упаковка initrd.gz:

    #!/bin/sh
    if [ -d $1 ]; then
        rm -rf $1
    fi
    if [ -f initrd ]; then
        rm initrd
    fi
    if ! [ -f initrd.gz ]; then
        echo "initrd.gz not found"
        exit 1
    fi
    gunzip initrd.gz
    mkdir $1
    cd $1
    cpio -id < ../initrd
    
  2. сборка initrd.gz:

    #!/bin/sh
    if ! [ -d $1 ]; then
        echo "folder not found"
        exit 1
    fi
    if [ -f initrd ]; then
        rm initrd
    fi
    if [ -f initrd.gz ]; then
        rm initrd.gz
    fi
    cd $1
    find . | cpio --create --format='newc' > ../initrd
    cd ..
    gzip initrd
    

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

astra_preseed_install's People

Contributors

k-artem avatar vashi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.