Escenario
Un buen día nuestra instalación de GitLab dejó de funcionar por culpa de escasez de espacio en disco duro.Problema
Alguien tuvo la brillante idea de crear un enlace simbólico a un disco de red y, después de copiar con un sudo todos los archivos a una carpeta del susodicho disco, borró la carpeta de origen. Consecuencia: ahora los archivos copiados pertenecían al usuario root y la mayoría de los múltiples servicios de GitLab dejaron de funcionar.Solución
Encontré un gist en GitHub en el cual se listaba los comandos necesarios para restablecer los permisos. Después de solucionar el problema de espacio volví a copiar los ficheros a su ubicación original, pero tras lanzarlos y ejecutar un sudo gitlab-ctl reconfigure seguido de un sudo gitlab-ctl restart el GitLab seguía sin arrancar. Acudí entonces al código fuente de GitLab donde encontré un script destinado a actualizar los permisos de los ficheros, a partir del cual compuse todos los comandos necesarios para restaurar los archivos a su estado original:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
sudo chown -R -v git:root /var/opt/gitlab/git-data \ && sudo chmod -R -v 0700 /var/opt/gitlab/git-data \ && sudo chown -R -v git:git /var/opt/gitlab/git-data/repositories \ && sudo chmod -R -v 2770 /var/opt/gitlab/git-data/repositories \ && sudo chown -R -v git:gitlab-www /var/opt/gitlab/gitlab-rails/shared \ && sudo chmod -R -v 0751 /var/opt/gitlab/gitlab-rails/shared \ && sudo chown -R -v git:root /var/opt/gitlab/gitlab-rails/shared/artifacts \ && sudo chmod -R -v 0700 /var/opt/gitlab/gitlab-rails/shared/artifacts \ && sudo chown -R -v git:root /var/opt/gitlab/gitlab-rails/shared/lfs-objects \ && sudo chmod -R -v 0700 /var/opt/gitlab/gitlab-rails/shared/lfs-objects \ && sudo chown -R -v git:root /var/opt/gitlab/gitlab-rails/uploads \ && sudo chmod -R -v 0700 /var/opt/gitlab/gitlab-rails/uploads \ && sudo chown -R -v git:gitlab-www /var/opt/gitlab/gitlab-rails/shared/pages \ && sudo chmod -R -v 0750 /var/opt/gitlab/gitlab-rails/shared/pages \ && sudo chown -R -v git:root /var/opt/gitlab/gitlab-ci/builds \ && sudo chmod -R -v 0700 /var/opt/gitlab/gitlab-ci/builds \ && sudo chown -R -v gitlab-psql:git /var/opt/gitlab/postgresql/data \ && sudo chmod -R -v 0700 /var/opt/gitlab/postgresql/data && sudo chmod 700 /var/opt/gitlab/.ssh && sudo chmod 600 /var/opt/gitlab/.ssh/authorized_key && sudo chown git:git /var/opt/gitlab/.ssh/authorized_key && sudo chown -R git:git /var/opt/gitlab/gitaly/gitaly.pid && sudo gitlab-ctl reconfigure \ && sudo gitlab-rake gitlab:check \ && sudo gitlab-ctl restart |