15 KiB
1С:Предприятие. Облачная подсистема Фреш в Docker
Позволяет в течении ~30 минут развернуть рабочий стенд облачной подсистемы Фреш с использованием технологии docker. Может пригодится для:
- Разработки конфигурации которая должно работать в облаке
- Разработки самой технологии Фреш
- Тестирования средств адаптации конфигураций
- Так же Фреш можно использовать для централизированной поддержки информационных баз, планирование обновлений, обновления, завершение работы пользователей.
- и т.д.
Системные требования
- Оперативной памяти от 4Гб
- лучше от 8Гб
- Свободного места от 50Гб
- Необходимое ПО:
Использование команды docker без sudo на linux
Для использования на ОС симейства linux команды docker без sudo необходимо добавить пользователя в группу docker.
sudo usermod -aG docker ${USER}
Дистрибутивы необходимые для развертывания
Для развертывания стенда потребуются дистрибутивы платформы 1С Предприятие и подсистемы Фреш
- Платформа 1С Предприятие 8.3 требуется два файла
- Клиент 1С:Предприятия (64-bit) для RPM-based Linux-систем
- Cервер 1С:Предприятия (64-bit) для RPM-based Linux-систем
- Дистрибутивы компонентов 1cFresh
- Сайт 1cFresh
- Форум 1cFresh
- Шлюз приложений для DEB-based Linux-систем
- Конфигурация Менеджер сервиса
- Конфигурация Агент сервиса
- Конфигурация Менеджер доступности
- 1С:Библиотека технологии сервиса, редакция 1.2 или 1С:Библиотека технологии сервиса, редакция 2.0
Компоненты используемые для тестирования
- 1С Предприятие 8.3.15.1869
- 1С:Предприятие. Облачная подсистема Фреш 1.0.28.1
- 1С:Библиотека технологии сервиса, редакция 1.2. Версия 1.2.2.26
Подготовка к развертыванию
Данный стенд для простоты развертывания использует домен 1cfresh.dev и валидные, выданные let's encrypt сертификаты.
Использование данного доменного имени и сертификатов может быть не безопасным, поэтому предлагается использовать их в только в целях тестирования и ознакомления.
Для более надежного использования данного стенда, поменяйте в файле start.py доменное имя 1cfresh.dev на имя вашего домена и разместите сертификаты в каталоге /docker_fresh/certs/
Клонирование репозитория
git clone https://github.com/WizaXxX/docker_fresh.git
cd docker_fresh
Размещение дистрибутитов
Все ранее скачанные дистрибутивы необходимо разместить в каталоге /docker_fresh/distr/
.
После добавления всех дистрибутивов в каталог, он должен выглядить примерно следующим образом
Файл smtl.cf это файл demo/1cv8_service.cf из комплекта поставки 1С:Библиотека технологии сервиса
Настройка списка создаваемых информационных баз
В файле /docker_fresh/other_files/params.json
расположен список информационных баз в формате JSON которые требуется создать
- Информационная база SM всегда должна быть первой в списке
- Для каждой базы необходимо прописать имя CF файла расположенного в каталоге
/docker_fresh/distr/
- В данный список можно добавить свои информационные базы
Настройка лицензирования
Для работы данного стенда необходимо два вида лицензий
- Серверная
- Клиентская
На операционных системах семейства Linux поддерживается проброс HASP ключей в контейнеры. На остальных, работа возможна только с помощью программных лицензий или указания сервера лицензирования в файле nethasp.ini для получения клиентских лицензий.
Проброс HASP ключей
Проброс в контейнер выполняется в файле docker-compose.yml путем монтирования файла /tmp/.aksusb в контейнер srv(контейнер содержащий сервер 1С)
Настройка nethasp.ini
Файл расположен по пути docker_fresh/conf/core/nethasp.ini
.
Если вы хотите указать сервер с лицензиями нужно раскоментировать каждую строку в этом файле и вместо server указать имя реально существующего сервера
Активация программных лицензий
Активация программных лицензий выполняется с помощью утилиты ring которая присутствует в образе core. Пример строки активации лицензии
docker run --rm -it \
-v /Users/wizaxxx/Documents/projects/docker_fresh/licenses_1c:/var/1C/licenses \
fresh/core \
bash -l -c 'ring license activate --first-name "myname" --middle-name "mymiddlename" --last-name "mylastname" --email "myemail@email.com" --country "Russia" --zip-code "101000" --town "Moscow" --street "mystree" --house "myhouse" --apartment "myapart" --serial "myRegNumber" --pin "MyPIN" --send-statistics "false"'
Где
-v /Users/wizaxxx/Documents/projects/docker_fresh/licenses_1c:/var/1C/licenses
является пробросом каталога с лицензиями /var/1C/licenses
из контейнера в локальный каталог /Users/wizaxxx/Documents/projects/docker_fresh/licenses_1c
для дальнейшего использования.
Все остальный параметры заполняются согласно документации утилиты ring
При возникновении проблем при работе со скриптами start.py или install.py
Выполните повторый запуск данной команды с ключем -debug
сделайте скриншот результата и зарегистрируйте ошибку
Сборка образов
Данный стенд содержит следующие контейнеры:
- centos - является базовым образом для образов core и db
- core - платформа 1С, клиентская и серверная часть. Дополнительно содержит ring, onescript
- db - сервер баз дынных Postgres
- site - компонент сайта Фреша
- forum - компонент форум Фреша
- gate - компонент шлюз приложений Фреша
Сборка образов запускается командой
sudo python3 install.py
install.py имеет возможность запуска с флагом -debug. При запуске с данным флагом весь процесс сборки будет подробно отображаться на экране.
Запуск стенда
Создание нового стенда
Запуск стенда выполняется командой
sudo python3 start.py -new -h mystandname
Флаг -new сообщает скрипту что требуется именно создать новый стенд а не запускать существующий. Параметр -h используется для указания наименования и адреса по которому стенд будет доступен. Если указать значение параметра -h mystand тогда адрес сайта будет https://mystand.1cfresh.dev.
Скрипт start.py имеет возможность запуска с флагом -debug. При запуске с данным флагом весь процесс запуска будет подробно отображаться на экране.
При запуске скрипта start.py происходит создание каталога workdir. В данный каталог копируются необходимые для работы стенда файлы и выполняется их конфигурирование.
Повторный запуск/перезагрузка существующего стенда
Для повторного запуска стенда необходимо использовать скрипт start.sh без указания дополнительных параметров.
Настройка файла hosts
Для доступа к сайту, веб клиентам информационных баз или доступу через конфигуратор необходимо сконфигурировать файл hosts. В файл hosts требуется добавить следующю строку
192.168.1.6 mystandname.1cfresh.dev srv.mystandname.1cfresh.dev
Где вместо 192.168.1.6 необходимо указать ip адрес сервера на котором вы развернули стенд Фреша, а вместо mystandname необходимо использовать имя указанное при развертывании стенда
Адреса для доступа к компонентам стенда
- Сайт - https://mystandname.1cfresh.dev
- Менеджер сервиса веб клиент - https://mystandname.1cfresh.dev/a/adm?Oida-
- Для доступа через конфигуратор - Srvr="srv.mystandname.1cfresh.dev";Ref="ibname"; в качестве имен информационных баз используются указанные в файле
/docker_fresh/other_files/params.json
данные.
Для выключения стенда достаточно зайти в каталог /docker_fresh/workdir
и выполнить команду
docker-compose down