Возможные Сокращения
LC - Логин Центр
WS - Воркспейс
Системы контейнеризации Docker и LXC являются основой для работы Optimacros.
Для более безопасного использования Optimacros, советуем их директории выносить из раздела root (/
)
По умолчанию директория для Docker /var/lib/docker
В данной директории хранятся все контейнеры, тома и образы
Для изменения этой директории есть разные варианты,
больше информации можно получить в интернете, мы взяли по нашему мнению наиболее правильное решение
Наш вариант проверен на Ubuntu 18.04 и ALT Server 9
Останавливаем все остальные запущенные контейнеры.`
проверить список контейнеров Docker, можно командой
docker ps -a
Если работают контейнеры Логин Центра Оптимакрос, то останавливать их нужно командой
./om stop
из директории с установленным Логин Центром
Останавливаем сервис
systemctl stop docker
Копируем директорию
cp -rp /var/lib/docker /opt1/docker
Временно архивируем оригинальную директорию
mv /var/lib/docker /var/lib/docker.old
Открываем файл с глобальными настройками сервиса
nano /etc/docker/daemon.json
Вставляем следующее содержимое, предварительно заменив значение параметра data-root
на путь к новой директории докер.
! Возможно файл уже существует и содержит JSON, в таком случае добавляем в существующий JSON, параметр data-root
с значением новой директории докер
{
"data-root": "/opt1/docker"
}
Запускаем сервис
systemctl start docker
Проверяем результат
docker info | grep Root
Если у вас был установлен LC, то запускаем его командой ./om start
из папки с LC
Если у вас был установлен LC и при его старте вы получаете ошибки отсутствия образов docker, попробуйте запустить инсталятор LC и пройти процесс обновления, он исправит эту проблему и установит образы уже в новую директорию docker
Если все нормально, можно удалить архивную папку
Внимание, неправильное использование команды
rm -rf
может привести в повреждению Операционной Системы.
rm -rf /var/lib/docker.old
По умолчанию директория для LXC /var/lib/lxc
В данной директории хранятся все контейнеры
Для изменения этой директории есть разные варианты, больше информации можно получить в интернете, мы взяли по нашему мнению наиболее правильное решение
Наш вариант проверен на Ubuntu 18.04 и ALT Server 9
Останавливаем все запущенные контейнеры
Если у вас работают WS контейнеры, то останавливать их нужно командой
./install workspace --path /путь/к/манифесту/воркспейса/manifest.json shutdown
из директории с вашим инсталятором воркспейса
Останавливаем сервис
systemctl stop lxc
Переносим директорию
cp -rp /var/lib/lxc /opt1/lxc
Временно архивируем оригинальную директорию
mv /var/lib/lxc /var/lib/lxc.old
Редктируем файл с конфигурацией, он может отсутствовать, тогда создаем его
nano /etc/lxc/lxc.conf
Добавляем параметр с новой директорией
lxc.lxcpath = /opt1/lxc
Запускаем сервис
systemctl start lxc
Проверяем корневую директорию lxc
sudo lxc-config lxc.lxcpath
Для Ubuntu возможно необходима дополнительная настройка (см. ниже)`
Запускаем нужные существующие контейнеры, если все нормально, можно удалить архивную папку
Внимание, неправильное использование команды
rm -rf
может привести в повреждению Операционной Системы.
rm -rf /var/lib/lxc.old
При изменении директории LXC возможна ошибка из-за приложения AppArmor
AppArmor - это реализация Модуля безопасности линукс по управлению доступом на основе имен.
AppArmor ограничивает отдельные программы набором перечисленных файлов и возможностями в соответствии с правилами Posix 1003.1e.
AppArmor сервис может быть не установлен, но LXC будет продолжать ругаться и есть 2 варианта:
Отредактируем профиль LXC
nano /etc/apparmor.d/abstractions/lxc/start-container
Находим строчку mount -> /var/lib/lxc/{**,},
и меняем ее на нужную нам mount -> /opt1/lxc/{**,},
Проверим наличие apparmor утилит
which apparmor_parser
which apparmor_status
Если результат пустой, то нужно установить пакет apparmor
apt-get install apparmor
После установки, можно проверить текущий статус apparmor
apparmor_status
Скорее всего все показатели будут нулями, так как после установки сервис apparmor не запущен
Запускаем сервис
systemctl start apparmor
Добавляем его в автозагрузку
systemctl enable apparmor
Проверяем статус
apparmor_status
Должна появится информация о загруженных профилях, среди которых есть профили LXC
Если AppArmor был ранее установлен и работал, то после изменений профиля, нужно просто его перезагрузить
systemctl restart apparmor
Мы не рекомендуем этот способ, так как он приводит к отключению штатных механизмов безопасности
Данный способ может не сработать при наличии сервиса apparmor
Редактируем файл с конфигурацией LXC
nano /etc/lxc/lxc.conf
Добавляем в конец файла строчку
lxc.apparmor.profile = unconfined
Сохраняем файл и проверяем работу LXC
В домашнем каталоге пользователя root, Vagrant создает директорию /root/.vagrant.d
В данной директории Vagrant хранит образы LXC контейнеров воркспейса. Образ LXC контейнера воркспейса имеет размер ~2.5 ГБ
Чтобы избежать переполнения /root/
рекомендуем делать перенос директории .vagrant.d
из root
раздела на диске в раздел для Optimacros
Для переноса выполните команду:
mv /root/.vagrant.d /om/.vagrant.d
После этого необходимо выполнить команду по изменению переменной окружения
export VAGRANT_HOME=/om/.vagrant.d
После выполнения данной команды, инсталлятор Optimacros воркспейса будет взаимодействовать с каталогом по новому пути, но данная настройка при входе в новую сессию терминала linux будет сброшена.
Для сохранения настройки переменной окружения на постоянной основе, добавьте ее без изменений в специальный файл /etc/profile
в конец с новой строки, сделав дополнительную пустую строку. Сохранив изменения создайте новую сессию работу с linux терминалом и проверьте командой
echo $VAGRANT_HOME
Команда должна показывать в качестве результата значение вашего пути, например /om/.vagrant.d