Хранилище конфигураций 1С на Linux: Open Source установка и настройка
Хранилище конфигураций — стандартный механизм, обеспечивающий возможность вести совместную разработку в 1С. Когда разработок много, удобно выделить отдельный сервер для размещения хранилищ. Это позволит централизованно управлять ими и выполнять резервное копирование.
Для решения подобной задачи на Linux необходимо установить платформу 1С, создать службу хранилища и соответствующим образом ее настроить. Также необходимо выполнить множественную установку платформ, о чем будет сказано далее. Для развертывания службы хранилища очень удобно использовать настраиваемую роль ansible. Ее описание можно найти здесь.
Следует учесть одну особенность — нельзя смешивать на одном узле платформы разной разрядности, иначе хранилища будут работать некорректно. Необходимо использовать или только 32, или только 64 разрядные платформы. В качестве базовой системы использовалась Ubuntu 18.04, но описанные действия справедливы и для других Linux платформ.
В первую очередь, необходимо выполнить стандартным способом установку платформы 1С. После получения и распаковки дистрибутива с сайта 1С разместить полученные файлы в отдельной папке, перейти в нее, убедиться, что среди них есть пакет с буквами crs и выполнить команду dpkg -i *.deb
Платформа 1С будет установлена. Возможно, потребуется установить зависимости. После установки имеет смысл выполнить команду systemctl disable srv1cv83 чтобы отключить службу сервера 1С, если на сервере будет использоваться только хранилище конфигураций.
Далее необходимо настроить службу хранилища. Команда ls /etc/systemd/system выведет список пользовательских модулей systemd, который есть в системе в настоящее время. Необходимо добавить текстовый файл /etc/systemd/system/crs_YOURVERSION.service со следующим содержимым:
[Unit]
Description=crs_YOURVERSION
[Service]
ExecStart=/opt/1C/YOURPATH/i386/crserver -port 1542 -d /PATHTOSTOR
User=usr1cv8
Group=grp1cv8
[Install]
WantedBy=multi-user.target
YOURVERSION — установленная версия платформы
YOURPATH — путь к бинарным файлам 1С
PATHTOSTOR — каталог, в котором будет размещено непосредственно содержимое хранилища. Имеет смысл использовать для его размещения жесткий диск с поддержкой большого количества операций ввода/вывода в секунду (IOPS).
После добавления файла необходимо выполнить команды:
systemctl daemon-reload
systemctl enable crs_YOURVERSION
systemctl start crs_YOURVERSION
ufw allow 1542/tcp
После этого в каталоге PATHTOSTOR можно создать отдельный каталог или инициализировать хранилище прямо в его корне.
Для множественной установки 1С необходимо просто разместить файлы из пакетов, которые ставятся командой dpkg, в каталоге, отличном от стандартного (/opt/1C/v8). Наиболее верным решением будет создание дополнительных каталогов /opt/1C/vYOURVERSION
Необходимо скачать с сайта 1С и распаковать дистрибутив нужной версии, разместив пакеты в отдельном каталоге и перейти в этот каталог. Далее выполнить команды:
mkdir /tmp/1Cnew
for i in * do; ar -p ./$i data.tar.gz | tar zx -C /tmp/1Сnew; done;
mkdir /opt/1C/vYOURVERSION
mv /tmp/1Сnew/opt/1C/v8.3/* /opt/1C/vYOURVERSION
После этого на сервере установлена дополнительная платформа. Можно запускать дополнительный кластер или дополнительную службу хранилища конфигураций 1С, проделав описанные выше магипуляции для нового пути.
slinger
Ну, я, конечно, понимаю, что 1С на Linux — это вызов, но у меня уже третий раз висит ошибка при попытке подключить хранилище через Apache. В статье написано, что нужно прописать в .htaccess, но у меня и так всё по инструкции. Может, кто-то сталкивался с тем, что Apache молчит, а в логах только «Access denied»? Может, у кого-то тоже был такой кошмар?
sysadmin_95
Приветствую! У меня тоже был такой кошмар с Apache — Access denied, хотя всё по инструкции. Помогло добавить explicit Allow для /storage в .htaccess, а ещё проверить права на /var/www/1c-storage. Не уверен, что это точно то, что нужно, но после этого Apache перестал молчать. А у тебя, slingler, есть настройка AllowOverride All в apache.conf?
sysadmin_95
Приветствую! У меня тоже был такой кошмар с Apache — Access denied, хотя всё по инструкции. Помогло добавить explicit Allow для /storage в .htaccess, а ещё проверить права на /var/www/1c-storage. Не уверен, что это точно то, что нужно, но после этого Apache перестал молчать. А у тебя, slingler, есть настройка AllowOverride All в apache.conf?