September 17th, 2019

Cat-light

sysctl в LXC-контейнере (и чуток про GitLab)

... Дали мне тут задание развернуть GitLab в LXC-контейнере. Не спрашивайте зачем. Начальник сказал — Стас сделал.

Засада заключается в том, что оный супостат конфигурируется через Chef, а в его playbook-ах есть инструкции немного покрутить sysctl на предмет всяких там kernel.shmmax и иже с ними. Только вот в LXC файловая система "/sys" как бе является read-only, и от sysctl-а закономерно приходит отлуп. Из-за чего, в частности, GitLab не хочет туда вставать.

Соответственно, есть три варианта.


  1. Расковырять playbook и убрать оттуда все эти вызовы sysctl.

  2. Посмотреть какие значения каких системных параметров он хочет подкрутить, и сделать такие же на хост-машине. Тогда конфигуратор проверит, что они соответствуют желаемым и успокоится.

  3. Самый классный. Пропатчить бинарник sysctl чтобы он не возвращал ошибок. Этим путём вовсю идут, в частности, убунтостроители. Но патчи есть и для Debian-а.

Если пользоваться способом номер один, то смотри в файлик "/opt/gitlab/embedded/cookbooks/package/resources/gitlab_sysctl.rb", последний абзац. Я думаю, кому надо, догадается или нагуглит.

Почему я решил написать этот псто? Больно уж мне понравился способ №3. Нам нужно больше костылей!!!11