Установка с использованием Docker: различия между версиями
Uscld2 (обсуждение | вклад) |
Uscld2 (обсуждение | вклад) Нет описания правки |
||
(не показано 13 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
<span style="color:red">'''ДАННАЯ ИНСТРУКЦИЯ УСТАРЕЛА!!! ПОЖАЛУЙСТА, ОБРАТИТЕСЬ К [[Docker окружение|НОВОЙ ИНСТРУКЦИИ]]'''</span> | |||
[[File:docker-horizontal.png|right|frameless|]] | |||
== Соглашение == | == Соглашение == | ||
Строка 22: | Строка 25: | ||
Выберите один из вариантов загрузки: | Выберите один из вариантов загрузки: | ||
=== Используя Git === | === Вариант 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, а затем скачайте и разархивируйте его снова | |||
== Установка == | == Установка == | ||
Строка 39: | Строка 48: | ||
Далее все команды должны выполняться в каталоге с набором файлов. | Далее все команды должны выполняться в каталоге с набором файлов. | ||
=== Конфигурация | === Конфигурация стэка === | ||
Первое, что вам необходимо сделать, - настроить | Первое, что вам необходимо сделать, - настроить стэк docker-compose. Для этого необходимо отредактировать файл: | ||
nano docker-compose.yml | |||
Следует обратить внимание на: | Следует обратить внимание на: | ||
Строка 54: | Строка 63: | ||
После того, как конфигурация выполнена, необходимо создать каталоги для монтирования томов. Если вы оставили каталоги, указанные в конфиге по умолчанию, то просто выполните: | После того, как конфигурация выполнена, необходимо создать каталоги для монтирования томов. Если вы оставили каталоги, указанные в конфиге по умолчанию, то просто выполните: | ||
sudo mkdir -p /opt/userside /opt/backup | |||
=== Запуск набора установки === | === Запуск набора установки === | ||
Строка 60: | Строка 69: | ||
Находясь в каталоге с набором файлов, выполните: | Находясь в каталоге с набором файлов, выполните: | ||
sudo make install | |||
Это запустит процесс загрузки Docker-образов, создания контейнеров на основании информации из docker-compose.yml, после чего запустит утилиту-инсталлятор USERSIDE, а затем запустит процесс создания конфигурации для cron и logrotate. | Это запустит процесс загрузки Docker-образов, создания контейнеров на основании информации из docker-compose.yml, после чего запустит утилиту-инсталлятор USERSIDE, а затем запустит процесс создания конфигурации для cron и logrotate. | ||
Строка 76: | Строка 85: | ||
В ходе инсталляции в системный cron прописываются правила для выполнения резервного копирования. Резервное копирование файлов приложения выполняется в 3 часа и базы данных в 4 часа. Вы можете отредактировать время запуска на свое усмотрение: | В ходе инсталляции в системный cron прописываются правила для выполнения резервного копирования. Резервное копирование файлов приложения выполняется в 3 часа и базы данных в 4 часа. Вы можете отредактировать время запуска на свое усмотрение: | ||
nano /etc/cron.d/userside | |||
По умолчанию файлы резервных копий находятся в каталоге /opt/backup хоста. | По умолчанию файлы резервных копий находятся в каталоге /opt/backup хоста. | ||
Строка 82: | Строка 91: | ||
Чтобы запустить резервное копирование вручную, находясь в каталоге с набором файлов вполните: | Чтобы запустить резервное копирование вручную, находясь в каталоге с набором файлов вполните: | ||
sudo make backup | |||
После этого проверьте факт создания файлов резервной копии в каталоге /opt/backup (если вы не изменили его в конфиге). | После этого проверьте факт создания файлов резервной копии в каталоге /opt/backup (если вы не изменили его в конфиге). | ||
Строка 88: | Строка 97: | ||
==== Восстановление ==== | ==== Восстановление ==== | ||
Для восстановления резервной копии '''файлов''', просто разархивируйте файл архива резервной копии в каталог с ERP USERSIDE. Для этого лучше сначала остановить | Для восстановления резервной копии '''файлов''', просто разархивируйте файл архива резервной копии в каталог с ERP USERSIDE. Для этого лучше сначала остановить стэк окружения командой make stop, затем удалить каталог /opt/userside (если вы не изменяли его месторасположение) и извлечь каталог userside из архива командой: | ||
sudo tar -xjf userside_2018-03-21_13-06-03.tar.bz2 -C /opt | |||
Для восстановления резервной копии '''базы данных''' воспользуйтесь скриптом восстановления, передав ему в качестве параметра имя файла дампа базы, расположенного в каталоге с резервными копиями. Путь к каталогу указывать не нужно. Скрипт работает с каталогом резервных копий напрямую. | Для восстановления резервной копии '''базы данных''' воспользуйтесь скриптом восстановления, передав ему в качестве параметра имя файла дампа базы, расположенного в каталоге с резервными копиями. Путь к каталогу указывать не нужно. Скрипт работает с каталогом резервных копий напрямую. | ||
Строка 96: | Строка 105: | ||
Находясь в каталоге с набором файлов, выполните: | Находясь в каталоге с набором файлов, выполните: | ||
sudo make DUMP="userside_2018-03-21_13-06-02.dump" dbrestore | |||
== Обслуживание == | == Обслуживание == | ||
Строка 104: | Строка 113: | ||
Если необходимо воспользоваться консольным клиентом psql, находясь в каталоге с набором файлов, выполните: | Если необходимо воспользоваться консольным клиентом psql, находясь в каталоге с набором файлов, выполните: | ||
sudo make psql | |||
=== Остановка и запуск контейнеров Docker === | === Остановка и запуск контейнеров Docker === | ||
Строка 110: | Строка 119: | ||
При необходимости остановить работу окружения, необходимого для работы системы USERSIDE, находясь в каталоге с набором файлов выполните: | При необходимости остановить работу окружения, необходимого для работы системы USERSIDE, находясь в каталоге с набором файлов выполните: | ||
sudo make stop | |||
Если необходимо остановить и удалить контейнеры, а так же информацию о томах (сами каталоги на хосте не удаляются) и информацию о внутренней сети, выполните: | Если необходимо остановить '''и удалить''' контейнеры, а так же информацию о томах (сами каталоги на хосте не удаляются) и информацию о внутренней сети, выполните: | ||
sudo make down | |||
Будьте осторожны. Эта процедура удалит базу данных. Сделайте резервную копию данных перед ее выполнением. | Будьте осторожны. Эта процедура удалит базу данных. Сделайте резервную копию данных перед ее выполнением. | ||
Строка 120: | Строка 129: | ||
Если необходимо снова запустить контейнеры (или создать их и запустить), выполните: | Если необходимо снова запустить контейнеры (или создать их и запустить), выполните: | ||
sudo make up | |||
=== Обновление USERSIDE === | === Обновление USERSIDE === | ||
Строка 128: | Строка 137: | ||
Находясь в каталоге с наборами файлов, выполните: | Находясь в каталоге с наборами файлов, выполните: | ||
sudo make update | |||
Также Вы можете выполнить и команду sudo make install. В этом случае будет произведена попытка создания контейнеров, запуска инсталлятора и конфигурирование cron и logrotate. Этот способ подойдет, если вы хотите начать сначала. Будьте осторожны, это действие может пересоздать том с базой данных. Обязательно сделайте резервную копию данных перед выполнением этой команды. | Также Вы можете выполнить и команду sudo make install. В этом случае будет произведена попытка создания контейнеров, запуска инсталлятора и конфигурирование cron и logrotate. Этот способ подойдет, если вы хотите начать сначала. Будьте осторожны, это действие может пересоздать том с базой данных. Обязательно сделайте резервную копию данных перед выполнением этой команды. | ||
Строка 140: | Строка 149: | ||
Затем, спустя минуту, находясь в каталоге с набором файлов, выполните: | Затем, спустя минуту, находясь в каталоге с набором файлов, выполните: | ||
sudo make run-cron | |||
После того, как диагностика закончена, не забудьте раскомментировать планировщик в файле /etc/cron.d/userside | После того, как диагностика закончена, не забудьте раскомментировать планировщик в файле /etc/cron.d/userside | ||
Строка 149: | Строка 158: | ||
Для этого, находясь в каталоге с набором файлов, сначала выполните команду резервного копирования данных, а затем команду удаления: | Для этого, находясь в каталоге с набором файлов, сначала выполните команду резервного копирования данных, а затем команду удаления: | ||
sudo make backup | |||
sudo make uninstall | |||
Команда удаления остановит, а затем удалит контейнеры окружения USERSIDE, затем удалит все тома (в том числе том с базой данных), сетевые настройки, файлы логов nginx и файлы конфигурации cron и logrotate. | Команда удаления остановит, а затем удалит контейнеры окружения USERSIDE, затем удалит все тома (в том числе том с базой данных), сетевые настройки, файлы логов nginx и файлы конфигурации cron и logrotate. | ||
Строка 171: | Строка 180: | ||
== TL;DR == | == 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 |
Текущая версия от 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