Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 7 Следующий »

Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)

Введение

В статье рассматривается пример создание контейнера Vagrant на базе образа подготовленного в системе виртуализации QEMU/KVM в Astra Linux. Предполагается, что имеется машина с установленной и настроенной системой виртуализации, на которой образ создается, настраивается и конвертируется в файл для передачи в Vagrant.

Подготовка образа виртуальной машины libvirt

Для создания исходного образа следует использовать обычные процедуры работы с системой виртуализации.

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

  1. Создать пользователя с именем vagrant, имеющего права администратора (для Astra Linux Special Edition с включенным МРД - администратора с высоким уровнем целостности). Это можно сделать при установке ОС на виртуальную машину (при этом пользователю должен быть установлен пароль vagrant), или выполнив на ранее созданной машине команды:
    1. Создать пользователя vagrant и его домашний каталог:

      sudo useradd -m vagrant

    2. Установить пользователю vagrant пароль vagrant:

      sudo passwd vagrant

    3. Включить пользователя vagrant в группу astra-admin для того, чтобы этот пользователь мог использовать команду sudo без пароля:

      sudo usermod -aG astra-admin vagrant

    4. Для работы в виртуальных машинах Astra Linux Special Edition с включенным МРД назначить пользователю vagrant высокую целостность:

      sudo pdpl-user -i 63 vagrant

  2. Включить и настроить службу ssh (служба может быть установлена и настроена при установке ОС):
    1. Установить пакет openssh-server:

      sudo apt install openssh-server

    2. Разрешить автоматический запуск службы:

      sudo systemctl enable ssh

    3. Загрузить и зарегистрировать стандартный ключ ssh vagrant для доступа без пароля:

      wget https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub
      ssh-copy-id -f -i vagrant.pub vagrant@localhost

  3. Если предполагается использовать автоматическое монтирование средствами vagrant, то установить клиент NFS:

    sudo apt install nfs-common

  4. Если необходимо, установить другие дополнительные пакеты.
  5. Выключить виртуальную машину.

Создание образа для контейнера Vagrаnt

Конвертировать образы qcow2 в контейнеры vagrant можно на любой машине, при этом ни система виртуализации, ни vagrant не нужны.

  1. Для подготовки машины к созданию контейнеров:
    1. Установить пакет qemu-utils:

      sudo apt install qemu-utils

    2. Подготовить сценарий конвертации образов qcow2 в контейнеры vagrant. Оригинал сценария доступен по ссылке: https://raw.githubusercontent.com/vagrant-libvirt/vagrant-libvirt/master/tools/create_box.sh, оригинальное описание применения сценария доступно по ссылке: https://github.com/vagrant-libvirt/vagrant-libvirt. Вариант сценария, использовавшийся при написании данной статьи можно скачать по ссылке: create-box.sh. Сценарий сохранить в файле именем create-box.sh и сделать исполняемым:

      chmod +x create-box.sh

  2. Установить имя файла, содержащего образ виртуальной машины. Это можно сделать командой:

    vagrant dumpxml <имя_виртуальной_машины>  | grep qcow2
    и, при необходимости, скопировать файл с образом на машину, на которой будет выполняться конвертация.

  3. Выполнить конвертацию с помощью сценария. В простейшем виде достаточно указать имя файла с образом:

    ./create-box.sh <имя_файла_с_образом>

    Также можно использовать дополнительные параметры:
    ./create-box.sh <имя_файла_с_образом> <имя_контейнера_vagrant> <имя_файла_дополнительными_параметрами>

    или добавить в конфигурацию контейнера vagrant дополнительные параметры, например:

    1. config.nfs.verify_installed = false - запрет проверки наличия клиента монтирования NFS;
    2. config.vm.synced_folder ".", "/vagrant", disabled: true - запрет включенного по умолчанию монтирования текущего каталога в каталог /vagrant виртуальной машины;

Подготовка хоста Vagrant

На машине, на которой будет запускаться образ vagrant, должны быть установлены vagrant, система виртуализации QEMU/KVM и плагин vagrant-libvirt (или пакет vagrant-libvirt). Установить все пакеты можно командами:

На момент написания статьи:
В репозиториях отсутствует пакет vagrant-libvirt и vagrant-astra

   



Для успешной работы с системой виртуализации включить пользователя в соответствующие группы и перезапустить пользовательскую сессию (подробнее см. Виртуализация QEMU/KVM в Astra Linux, в Astra Linux Common Edition группа libvirt-admin не используется):
sudo usermod -a -G kvm,libvirt,libvirt-admin,libvirt-qemu $USER

Запуск контейнера Vagrant на хосте Vagrant

  1. Скопировать файл с контейнером vagrant на хост.

    Полный путь к файлу не должен содержать символов кириллицы.
  2. Создать каталог для работы и перейти в него:

    mkdir vagrant-astra
    cd vagrant-astra

  3. Инициировать окружение vagrant, указав имя файла с образом vagrant:

    vagrant init <имя_файла_с_образом_vagrant>

  4. Запустить контейнер vagrant, указав провайдера libvirt:

    vagrant up --provider libvirt

  • Нет меток