Установка с использованием Docker: различия между версиями

Материал из WiKi - UserSide
Нет описания правки
 
(не показано 5 промежуточных версий этого же участника)
Строка 1: Строка 1:
Начиная с версии ERP USERSIDE 3.12 поддерживается развёртывание системы внутри окружения, построенного с использованием Docker-контейнеров.
<span style="color:red">'''ДАННАЯ ИНСТРУКЦИЯ УСТАРЕЛА!!! ПОЖАЛУЙСТА, ОБРАТИТЕСЬ К [[Docker окружение|НОВОЙ ИНСТРУКЦИИ]]'''</span>
 
 
[[File:docker-horizontal.png|right|frameless|]]
[[File:docker-horizontal.png|right|frameless|]]


Строка 25: Строка 27:
=== Вариант 1 - Используя Git ===
=== Вариант 1 - Используя Git ===


    cd ~
cd ~
    git clone https://github.com/userside/userside-docker.git
git clone https://github.com/userside/userside-docker.git
    cd userside-docker
cd userside-docker


Чтобы обновить набор файлов, выполните:
Чтобы обновить набор файлов, выполните:


    git pull
git pull


=== Вариант 2 - Скачать и разархивировать архив ===
=== Вариант 2 - Скачать и разархивировать архив ===


    cd ~
cd ~
    wget https://github.com/userside/userside-docker/archive/master.zip
wget https://github.com/userside/userside-docker/archive/master.zip
    unzip master.zip && rm master.zip
unzip master.zip && rm master.zip
    cd userside-docker-master
cd userside-docker-master


Чтобы обновить набор файлов, удалите каталог userside-docker-master, а затем скачайте и разархивируйте его снова
Чтобы обновить набор файлов, удалите каталог userside-docker-master, а затем скачайте и разархивируйте его снова
Строка 50: Строка 52:
Первое, что вам необходимо сделать, - настроить стэк docker-compose. Для этого необходимо отредактировать файл:
Первое, что вам необходимо сделать, - настроить стэк docker-compose. Для этого необходимо отредактировать файл:


    nano docker-compose.yml
nano docker-compose.yml


Следует обратить внимание на:
Следует обратить внимание на:
Строка 61: Строка 63:
После того, как конфигурация выполнена, необходимо создать каталоги для монтирования томов. Если вы оставили каталоги, указанные в конфиге по умолчанию, то просто выполните:
После того, как конфигурация выполнена, необходимо создать каталоги для монтирования томов. Если вы оставили каталоги, указанные в конфиге по умолчанию, то просто выполните:


    sudo mkdir -p /opt/userside /opt/backup
sudo mkdir -p /opt/userside /opt/backup


=== Запуск набора установки ===
=== Запуск набора установки ===
Строка 67: Строка 69:
Находясь в каталоге с набором файлов, выполните:
Находясь в каталоге с набором файлов, выполните:


    sudo make install
sudo make install


Это запустит процесс загрузки Docker-образов, создания контейнеров на основании информации из docker-compose.yml, после чего запустит утилиту-инсталлятор USERSIDE, а затем запустит процесс создания конфигурации для cron и logrotate.
Это запустит процесс загрузки Docker-образов, создания контейнеров на основании информации из docker-compose.yml, после чего запустит утилиту-инсталлятор USERSIDE, а затем запустит процесс создания конфигурации для cron и logrotate.
Строка 83: Строка 85:
В ходе инсталляции в системный cron прописываются правила для выполнения резервного копирования. Резервное копирование файлов приложения выполняется в 3 часа и базы данных в 4 часа. Вы можете отредактировать время запуска на свое усмотрение:
В ходе инсталляции в системный cron прописываются правила для выполнения резервного копирования. Резервное копирование файлов приложения выполняется в 3 часа и базы данных в 4 часа. Вы можете отредактировать время запуска на свое усмотрение:


    nano /etc/cron.d/userside
nano /etc/cron.d/userside


По умолчанию файлы резервных копий находятся в каталоге /opt/backup хоста.
По умолчанию файлы резервных копий находятся в каталоге /opt/backup хоста.
Строка 89: Строка 91:
Чтобы запустить резервное копирование вручную, находясь в каталоге с набором файлов вполните:
Чтобы запустить резервное копирование вручную, находясь в каталоге с набором файлов вполните:


    sudo make backup
sudo make backup


После этого проверьте факт создания файлов резервной копии в каталоге /opt/backup (если вы не изменили его в конфиге).
После этого проверьте факт создания файлов резервной копии в каталоге /opt/backup (если вы не изменили его в конфиге).
Строка 97: Строка 99:
Для восстановления резервной копии '''файлов''', просто разархивируйте файл архива резервной копии в каталог с ERP USERSIDE. Для этого лучше сначала остановить стэк окружения командой make stop, затем удалить каталог /opt/userside (если вы не изменяли его месторасположение) и извлечь каталог userside из архива командой:
Для восстановления резервной копии '''файлов''', просто разархивируйте файл архива резервной копии в каталог с ERP USERSIDE. Для этого лучше сначала остановить стэк окружения командой make stop, затем удалить каталог /opt/userside (если вы не изменяли его месторасположение) и извлечь каталог userside из архива командой:


    sudo tar -xjf userside_2018-03-21_13-06-03.tar.bz2 -C /opt
sudo tar -xjf userside_2018-03-21_13-06-03.tar.bz2 -C /opt


Для восстановления резервной копии '''базы данных''' воспользуйтесь скриптом восстановления, передав ему в качестве параметра имя файла дампа базы, расположенного в каталоге с резервными копиями. Путь к каталогу указывать не нужно. Скрипт работает с каталогом резервных копий напрямую.
Для восстановления резервной копии '''базы данных''' воспользуйтесь скриптом восстановления, передав ему в качестве параметра имя файла дампа базы, расположенного в каталоге с резервными копиями. Путь к каталогу указывать не нужно. Скрипт работает с каталогом резервных копий напрямую.
Строка 103: Строка 105:
Находясь в каталоге с набором файлов, выполните:
Находясь в каталоге с набором файлов, выполните:


    sudo make DUMP="userside_2018-03-21_13-06-02.dump" dbrestore
sudo make DUMP="userside_2018-03-21_13-06-02.dump" dbrestore


== Обслуживание ==
== Обслуживание ==
Строка 111: Строка 113:
Если необходимо воспользоваться консольным клиентом psql, находясь в каталоге с набором файлов, выполните:
Если необходимо воспользоваться консольным клиентом psql, находясь в каталоге с набором файлов, выполните:


    sudo make psql
sudo make psql


=== Остановка и запуск контейнеров Docker ===
=== Остановка и запуск контейнеров Docker ===
Строка 117: Строка 119:
При необходимости остановить работу окружения, необходимого для работы системы USERSIDE, находясь в каталоге с набором файлов выполните:
При необходимости остановить работу окружения, необходимого для работы системы USERSIDE, находясь в каталоге с набором файлов выполните:


    sudo make stop
sudo make stop


Если необходимо остановить '''и удалить''' контейнеры, а так же информацию о томах (сами каталоги на хосте не удаляются) и информацию о внутренней сети, выполните:
Если необходимо остановить '''и удалить''' контейнеры, а так же информацию о томах (сами каталоги на хосте не удаляются) и информацию о внутренней сети, выполните:


    sudo make down
sudo make down


Будьте осторожны. Эта процедура удалит базу данных. Сделайте резервную копию данных перед ее выполнением.
Будьте осторожны. Эта процедура удалит базу данных. Сделайте резервную копию данных перед ее выполнением.
Строка 127: Строка 129:
Если необходимо снова запустить контейнеры (или создать их и запустить), выполните:
Если необходимо снова запустить контейнеры (или создать их и запустить), выполните:


    sudo make up
sudo make up


=== Обновление USERSIDE ===
=== Обновление USERSIDE ===
Строка 135: Строка 137:
Находясь в каталоге с наборами файлов, выполните:
Находясь в каталоге с наборами файлов, выполните:


    sudo make update
sudo make update


Также Вы можете выполнить и команду sudo make install. В этом случае будет произведена попытка создания контейнеров, запуска инсталлятора и конфигурирование cron и logrotate. Этот способ подойдет, если вы хотите начать сначала. Будьте осторожны, это действие может пересоздать том с базой данных. Обязательно сделайте резервную копию данных перед выполнением этой команды.
Также Вы можете выполнить и команду sudo make install. В этом случае будет произведена попытка создания контейнеров, запуска инсталлятора и конфигурирование cron и logrotate. Этот способ подойдет, если вы хотите начать сначала. Будьте осторожны, это действие может пересоздать том с базой данных. Обязательно сделайте резервную копию данных перед выполнением этой команды.
Строка 147: Строка 149:
Затем, спустя минуту, находясь в каталоге с набором файлов, выполните:
Затем, спустя минуту, находясь в каталоге с набором файлов, выполните:


    sudo make run-cron
sudo make run-cron


После того, как диагностика закончена, не забудьте раскомментировать планировщик в файле /etc/cron.d/userside
После того, как диагностика закончена, не забудьте раскомментировать планировщик в файле /etc/cron.d/userside
Строка 156: Строка 158:
Для этого, находясь в каталоге с набором файлов, сначала выполните команду резервного копирования данных, а затем команду удаления:
Для этого, находясь в каталоге с набором файлов, сначала выполните команду резервного копирования данных, а затем команду удаления:


    sudo make backup
sudo make backup
    sudo make uninstall
sudo make uninstall


Команда удаления остановит, а затем удалит контейнеры окружения USERSIDE, затем удалит все тома (в том числе том с базой данных), сетевые настройки, файлы логов nginx и файлы конфигурации cron и logrotate.
Команда удаления остановит, а затем удалит контейнеры окружения USERSIDE, затем удалит все тома (в том числе том с базой данных), сетевые настройки, файлы логов nginx и файлы конфигурации cron и logrotate.
Строка 178: Строка 180:
== TL;DR ==
== TL;DR ==


    cd ~
cd ~
    git clone https://github.com/userside/userside-docker.git
git clone https://github.com/userside/userside-docker.git
    cd userside-docker
cd userside-docker
    sudo mkdir -p /opt/userside /opt/backup
sudo mkdir -p /opt/userside /opt/backup
    sudo make install
sudo make install

Текущая версия от 10:56, 8 мая 2019

ДАННАЯ ИНСТРУКЦИЯ УСТАРЕЛА!!! ПОЖАЛУЙСТА, ОБРАТИТЕСЬ К НОВОЙ ИНСТРУКЦИИ


Соглашение

Данная инструкция предназначена для системных администраторов, знакомых с виртуальной средой Docker. Данная инструкция предполагает установку на хост с операционной системой Linux. Данная инструкция не содержит материалов, объясняющих работу виртуальной среды Docker, а также ее обслуживания и администрирования. Ответы на вопросы касательно работы, обслуживания и администрирования Docker необходимо искать в официальной документации. Зона ответственности службы технической поддержки USERSIDE не распространяется на темы, связанные с Docker. Просьба отнестись с пониманием.

Описание

Данная инструкция описывает процесс установки окружения, необходимого для работы системы ERP USERSIDE. Окружение состоит из трех контейнеров, каждый из которых обеспечивает работу своей службы: nginx, php-fpm, postgresql. Образы, на базе которых строятся контейнеры, включают все необходимые компоненты и настройки, необходимые для полноценного функционирования системы USERSIDE. Образы не включают программный код системы USERSIDE и поэтому являются публичными. Сама система USERSIDE устанавливается на том, подключенный к контейнеру, утилитой-установщиком. Все эти процессы автоматизированы.

Требования

Загрузка набора файлов

Необходимо загрузить набор файлов, необходимый для быстрого и простого развертывания системы. Можно воспользоваться любым из вариантов. После произведенных действий вы будете находиться в каталоге, в котором расположен Makefile со всеми необходимыми заготовками. Помимо заготовок, необходимых для установки системы, там также имеются другие заготовки для обслуживания системы USERSIDE.

Выберите один из вариантов загрузки:

Вариант 1 - Используя Git

cd ~
git clone https://github.com/userside/userside-docker.git
cd userside-docker

Чтобы обновить набор файлов, выполните:

git pull

Вариант 2 - Скачать и разархивировать архив

cd ~
wget https://github.com/userside/userside-docker/archive/master.zip
unzip master.zip && rm master.zip
cd userside-docker-master

Чтобы обновить набор файлов, удалите каталог userside-docker-master, а затем скачайте и разархивируйте его снова

Установка

Далее все команды должны выполняться в каталоге с набором файлов.

Конфигурация стэка

Первое, что вам необходимо сделать, - настроить стэк docker-compose. Для этого необходимо отредактировать файл:

nano docker-compose.yml

Следует обратить внимание на:

  • Переменные окружения, расположенные в блоках environment: внутри блоков, расположенных в блоке services:. Они определяют основные настройки системы. Вы должны правильно указать ваш часовой пояс (TZ), настройки базы данных PostgreSQL (POSTGRES_*).
  • Номер порта в службе nginx: (параметр ports:) слева от двоеточия - порт локального хоста, который необходимо транслировать в порт 80 (справа от двоеточия) внутри контейнера nginx. Если на вашем хосте используется WEB-сервер для работы других приложений, вам необходимо изменить трансляцию портов таким образом, чтобы порты веб-сервера хоста и транслируемого из контейнера не пересекались, а в самом WEB-сервере хоста настроить проксирование на этот порт. Если же WEB-сервера на хосте нет, то ничего не нужно изменять.
  • Тома (блок volumes: внизу конфига). Значением параметра device: здесь является каталог локального хоста. Этот каталог будет подключен как том в файловую систему контейнера. Рекомендуется оставить значение по умолчанию. Единственное, что может быть полезно - изменить место хранение бекапов (каталог должен существовать на хосте). Кроме простого изменения каталога для бекапов Вы также можете изменить и драйвер для этого тома, например, использовав один из сетевых драйверов, позволяющих подмонтировать сетевой том в файловую систему контейнера. Это позволит хранить бекапы на другом хосте, что является более безопасным.
  • Сети (блок networks: внизу конфига). Если подсеть, указанная в параметре subnet:, пересекается с подсетями, которые вы используете, то вы можете изменить ее на любую другую с маской не менее /29, однако рекомендуется использовать маску подсети не уже /28.

Сохраните файл после редактирования.

После того, как конфигурация выполнена, необходимо создать каталоги для монтирования томов. Если вы оставили каталоги, указанные в конфиге по умолчанию, то просто выполните:

sudo mkdir -p /opt/userside /opt/backup

Запуск набора установки

Находясь в каталоге с набором файлов, выполните:

sudo make install

Это запустит процесс загрузки Docker-образов, создания контейнеров на основании информации из docker-compose.yml, после чего запустит утилиту-инсталлятор USERSIDE, а затем запустит процесс создания конфигурации для cron и logrotate.

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

В процессе установки Вам будет предложено установить приложение в каталог /app/userside. Соглашайтесь, так как именно такой каталог используется как точка монтирования внешнего тома внутри контейнера.

После выполнения команды вы получите целиком готовую к работе систему. Откройте в браузере адрес, введенный в утилите-инсталляторе для проверки и войдите, используя имя пользователя admin и пароль 1234.

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

Резервное копирование

В ходе инсталляции в системный cron прописываются правила для выполнения резервного копирования. Резервное копирование файлов приложения выполняется в 3 часа и базы данных в 4 часа. Вы можете отредактировать время запуска на свое усмотрение:

nano /etc/cron.d/userside

По умолчанию файлы резервных копий находятся в каталоге /opt/backup хоста.

Чтобы запустить резервное копирование вручную, находясь в каталоге с набором файлов вполните:

sudo make backup

После этого проверьте факт создания файлов резервной копии в каталоге /opt/backup (если вы не изменили его в конфиге).

Восстановление

Для восстановления резервной копии файлов, просто разархивируйте файл архива резервной копии в каталог с ERP USERSIDE. Для этого лучше сначала остановить стэк окружения командой make stop, затем удалить каталог /opt/userside (если вы не изменяли его месторасположение) и извлечь каталог userside из архива командой:

sudo tar -xjf userside_2018-03-21_13-06-03.tar.bz2 -C /opt

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

Находясь в каталоге с набором файлов, выполните:

sudo make DUMP="userside_2018-03-21_13-06-02.dump" dbrestore

Обслуживание

PostgreSQL

Если необходимо воспользоваться консольным клиентом psql, находясь в каталоге с набором файлов, выполните:

sudo make psql

Остановка и запуск контейнеров Docker

При необходимости остановить работу окружения, необходимого для работы системы USERSIDE, находясь в каталоге с набором файлов выполните:

sudo make stop

Если необходимо остановить и удалить контейнеры, а так же информацию о томах (сами каталоги на хосте не удаляются) и информацию о внутренней сети, выполните:

sudo make down

Будьте осторожны. Эта процедура удалит базу данных. Сделайте резервную копию данных перед ее выполнением.

Если необходимо снова запустить контейнеры (или создать их и запустить), выполните:

sudo make up

Обновление USERSIDE

Внимание! Перед обновлением обязательно сделайте резервную копию данных!

Находясь в каталоге с наборами файлов, выполните:

sudo make update

Также Вы можете выполнить и команду sudo make install. В этом случае будет произведена попытка создания контейнеров, запуска инсталлятора и конфигурирование cron и logrotate. Этот способ подойдет, если вы хотите начать сначала. Будьте осторожны, это действие может пересоздать том с базой данных. Обязательно сделайте резервную копию данных перед выполнением этой команды.

Ручной запуск CRON

Это может быть необходимо при диагностике проблем, связанных с периодическими задачами.

Для начала закомментируйте строку запуска планировщика в файле /etc/cron.d/userside

Затем, спустя минуту, находясь в каталоге с набором файлов, выполните:

sudo make run-cron

После того, как диагностика закончена, не забудьте раскомментировать планировщик в файле /etc/cron.d/userside

Удаление USERSIDE

Чтобы полностью переустановить стек, либо перенести систему на другой сервер, вам может понадобиться процедура удаления системы USERSIDE с хоста. Для этого, находясь в каталоге с набором файлов, сначала выполните команду резервного копирования данных, а затем команду удаления:

sudo make backup
sudo make uninstall

Команда удаления остановит, а затем удалит контейнеры окружения USERSIDE, затем удалит все тома (в том числе том с базой данных), сетевые настройки, файлы логов nginx и файлы конфигурации cron и logrotate.

Содержимое каталогов резервных копий и самой системы USERSIDE не удаляется. Вы без труда сможете восстановить работу системы из резервных копий базы данных и файлов.

Восстановление после удаления

Есть необходимо восстановить работу системы USERSIDE из существующих резервных копий, то необходимо сделать следующее:

  • Загрузите набор файлов
  • Создайте каталог для резервных копий, например /opt/backup и поместите в него файлы резервных копий, из которых необходимо произвести восстановление. Должно быть два файла: файлы системы *.tar.bz2 и резервная копия базы данных *.dump
  • Восстановите файлы командой sudo tar -xjf имя_файла_резервной_копии.tar.bz2 -C /opt, если хотите, чтобы приложение размещалось в каталоге /opt/userside или же выберите другое расположение, если в этом есть необходимость.
  • Отредактируйте файл docker-compose.yml, указав в разделе volumes: расположение каталога для резервных копий и каталога с приложением, если вы их изменили.
  • Находясь в каталоге с набором файлов, запустите процедуру создания и запуска контейнеров, выполнив sudo make up.
  • Выполните восстановление резервной копии базы данных. Для этого находясь в каталоге с набором файлов, выполните sudo make DUMP="имя_файла_резервной_копии.dump" dbrestore.
  • Запустите скрипт, создающий конфигурацию планировщика и ротацию логов: ./create-configs.sh
  • Проверьте работу приложения

TL;DR

cd ~
git clone https://github.com/userside/userside-docker.git
cd userside-docker
sudo mkdir -p /opt/userside /opt/backup
sudo make install