transactional server 模式下如何配置 GitLab 求教

在 transactional server 角色下根系统是只读的,

而 GitLab 在首次安装并使用命令 gitlab-ctl reconfigure 配置时会需要:

  1. 修改只读目录 /usr/lib/systemd/system 以添加一系列 service
  2. 启动一系列相关的 service 如 logrotate.service

如果直接运行 gitlab-ctl reconfigure 将会报以下错误

Recipe: package::runit_systemd
  * directory[/usr/lib/systemd/system] action create
    * Cannot create directory[/usr/lib/systemd/system] at /usr/lib/systemd/system due to insufficient permissions
    ============
    Error executing action `create` on resource 'directory[/usr/lib/systemd/system]'
    ============

如果通过 transcational-update shell 进入读写的环境, 将会因为无法启动 service 卡在这一步

    * ruby_block[wait for logrotate service socket] action run

此环境下也无法手动启动此服务

# systemctl start logrotate.service
Running in chroot, ignoring command 'start'

个人猜测可能是因为在配置期间既对目录进行写入, 也使用了 systemd 启动服务, 导致无法直接在 transcational 系统上安装.

大家有什么头绪吗?

@difaki9090 可以改一下装到 /etc/systemd/system 里,效果是一样的。

或者既然改了,干脆就装为 systemd user service 好了。