UMGUM.COM (лучше) 

Конфигурационный файл ( Пример конфигурационного файла тестового стенда "Docker + Bash". )

4 мая 2019  (обновлено 17 июня 2019)

Эта публикация скрыта. Она доступна только по прямой ссылке.

OS: "Linux Debian 9 (Stretch)", "Linux Ubuntu 18.04 LTS (Bionic Beaver)".
Apps: "Bash", "Docker" & etc.

В этой заметке описан один из этапов реализации поставленной в вышестоящей публикации задачи автоматизации процедур развёртывания тестовых стендов из docker-контейнеров.

Пример конфигурационного файла тестового стенда:

# vi /usr/local/etc/devops/conf/test-site.example.net.conf


# --- General ---
# (в этом блоке обязательные для запуска тестового стенда параметры)

# Произвольное уникальное имя тестовой площадки
SITENAME="test-site.example.net"

# Путь к файлам web-проекта относительно корня файловой системы внутри контейнеров
# (желательно совпадение со структурой файловой системы исходного сервера, чтобы минимизировать изменения в конфигурации приложений)
SITEROOT=/var/www/group0/site.example.net/www # (example: /var/www/groupname/sitename/www)

# Перечень "доменных имён" площадки, по которым будут приниматься обращения извне
# (SSL-конфигурация каждого домена может быть заменена, или оставлена по умолчанию: "ssl_wildcard.conf")
FQDN=test-site.example.net
#FQDN_SSL_CONF=ssl_wildcard.conf
FQDN[1]=www.test-site.example.net
FQDN_SSL_CONF[1]=ssl_letsencrypt.conf

# Объявляем передаваемую внутрь контейнеров глобальную переменную окружения
# (значения соответствуют Git-ветви, из которой загружается код)
# (таким образом мы сообщаем приложению тип площадки)
MODE_ENV=testing # {develop|testing|staging|master}

# Опционально изменяем корень иерархии файлов тестовых стендов на несущем сервере
#OPSROOT=/var/opt/devops # (default: /var/opt/devops)

# --- SFTP ---

SFTP_ENABLE=yes # {yes|no}

# Перечисляем пользователей, которым предоставляется доступ
# (должны быть зарегистрированными в несущей ОС)
SFTP_USER=developer-one
#SFTP_USER[1]=developer-two
#SFTP_USER[2]=developer-three

# --- Download files ---

SCP_ENABLE=yes # {yes|no}

SCP_FQDN_SRC="src-site.example.net"
SCP_SSH_USER_SRC="get-hostname"

# Перечисляем загружаемые директории, опционально указывая отличные от исходного целевые директории
SCP_DIR_SRC=/var/www/group0/site.example.net/www
#SCP_DIR_SRC[1]=/var/www/group0/site.example.net/data
#SCP_DIR_TGT[1]=/var/www/group0/site.example.net/warehouse # (опционально указываем целевую директорию)

# Перечисляем загружаемые директории совместного использования, опционально указывая отличные от исходного целевые директории
# (эти данные не удаляются при остановке тестового стенда!)
SCP_EXT_DIR_SRC=/var/www/group0/shared/core
#SCP_EXT_DIR_SRC[1]=/var/www/group0/shared/upload
#SCP_EXT_DIR_TGT[1]=/var/www/group0/shared/warehouse # (опционально указываем целевую директорию)

# --- Download Git-repo ---

GIT_ENABLE=yes # {yes|no}

GIT_REPO_SRC="ssh://git@src-git.example.net:7999/group0/site.example.net.git"
GIT_BRANCH_SRC="testing"
GIT_SSH_USER_SRC="get-hostname"

# Путь применения относительно корня файловой системы внутри контейнера
GIT_DIR_TGT=/var/www/group0/site.example.net # (example: /var/www/groupname/sitename)

# --- MySQL ---

MYSQL_ENABLE=yes # {yes|no}

# Пароль суперпользователя СУБД
# (обязательный параметр - без него контейнер не запустится)
MYSQL_ROOT_PASSWORD_TGT="RootPassword"

# (если не указать, то данные исходной БД не будут загружены)
MYSQL_FQDN_SRC="src-site.example.net"
MYSQL_SSH_USER_SRC="get-hostname"

# (если не указать, то локальная тестовая БД не будет создана)
MYSQL_DB_SRC="site_example_net"
#MYSQL_DB_TGT="two_example_net" # (опционально указываем целевую БД)
MYSQL_USER_SRC="site_example_net"
MYSQL_PASSWD_SRC="DBPassword"

# --- phpMyAdmin (MySQL administration tool) ---

PMA_ENABLE=yes # {yes|no}

# --- Memcached ---

MEMCACHED_ENABLE=yes # {yes|no}

# --- PHP-FPM ---

PHPFPM_ENABLE=yes # {yes|no}

PHPFPM_VER=7.0 # {7.0|7.2}

PHPFPM_CRON_COMMAND="php -f /var/www/group0/site.example.net/www/yii scheduler/run-all"
PHPFPM_CRON_SCHEDULE="*/1 * * * *"
#PHPFPM_CRON_COMMAND[1]="php -f /var/www/group0/site.example.net/www/local/custom/cron.php"
#PHPFPM_CRON_SCHEDULE[1]="*/5 * * * *"

# --- NodeJS ---

NODEJS_ENABLE=yes # {yes|no}

NODEJS_VER=8.16 # {8.16}

NODEJS_APP_DIR=/var/www/group0/site.example.net/nodejs # (example: /var/www/groupname/sitename/nodejs)

# --- Shell Hooks ---

HOOK_ENABLE=yes # {yes|no}

# Перечисляем команды, которые по очереди будут исполнены в CLI Bash
HOOK_COMMAND=""
HOOK_COMMAND[1]=""


Заметки и комментарии к публикации:


Оставьте свой комментарий ( выразите мнение относительно публикации, поделитесь дополнительными сведениями или укажите на ошибку )