web-dev-qa-db-fra.com

change le répertoire de données gitlab pour stocker les dépôts ailleurs

mon disque de base est plein pour mon installation de gitlab, est-il possible de déplacer les référentiels et leurs données dans un autre dossier et de s'assurer que les données Push à venir sont envoyées dans ces répertoires?

J'ai essayé d'arrêter gitlab et de copier sur tout le dossier, mais en vain. PS - Je ne suis pas un informaticien, je veux juste savoir comment nous pourrions nous en sortir; alors s'il vous plaît soyez verbeux lorsque vous répondez.

55

Juste mettre à jour au cas où les gens se réfèrent encore à cela. Depuis le GitLab documentation :

Par défaut, omnibus-gitlab stocke les données du référentiel Git sous /var/opt/gitlab/git-data. Les référentiels sont stockés dans un sous-dossier repositories. Vous pouvez changer l'emplacement de la git-data répertoire parent en ajoutant la ligne suivante à /etc/gitlab/gitlab.rb.

git_data_dirs({"default" => "/mnt/nas/git-data"})

À partir de GitLab 8.10, vous pouvez également ajouter plusieurs répertoires de données git en ajoutant les lignes suivantes à /etc/gitlab/gitlab.rb au lieu.

git_data_dirs({
  "default" => "/var/opt/gitlab/git-data",
  "alternative" => "/mnt/nas/git-data"
})

Notez que les répertoires cibles et leurs sous-chemins ne doivent pas être un lien symbolique.

Courir Sudo gitlab-ctl reconfigure pour que les modifications prennent effet.

Si vous avez déjà des référentiels Git existants dans /var/opt/gitlab/git-data vous pouvez les déplacer vers le nouvel emplacement comme suit:

# Prevent users from writing to the repositories while you move them.
Sudo gitlab-ctl stop

# Note there is _no_ slash behind 'repositories', but there _is_ a
# slash behind 'git-data'.
Sudo rsync -av /var/opt/gitlab/git-data/repositories /mnt/nas/git-data/

# Fix permissions if necessary
Sudo gitlab-ctl reconfigure

# Double-check directory layout in /mnt/nas/git-data. Expected output:
# gitlab-satellites  repositories
Sudo ls /mnt/nas/git-data/

# Done! Start GitLab and verify that you can browse through the repositories in
# the web interface.
Sudo gitlab-ctl start
115
Gus E

Solution beaucoup plus simple pour les nouvelles installations avec la version> 7.14.1:

Ouvrez le fichier de configuration gitlab.rb

Sudo nano /etc/gitlab/gitlab.rb

Rechercher git_data_dir, décommentez la ligne et définissez votre répertoire ici, par exemple.

git_data_dir "/storage/data/gitlab/git-data"

Enregistrez le fichier et reconfigurez Gitlab:

Sudo gitlab-ctl reconfigure
10
Kovah

Je viens de déplacer mon dossier de référentiels gitlab d'un répertoire à un autre, cela peut être utile pour quelqu'un (faites-le rapidement et au calme ou arrêtez gitlab à l'avance!)

En supposant que vous ayez une installation standard, les étapes sont

  • Créez un nouveau dossier pour les dépôts en tant que root et changez le propriétaire en utilisateur git
  • Copiez (avec archive, options récursives) le contenu de l’ancien dossier de dépôt dans son nouveau domicile cp -ar SOURCE DESTINATION
  • Editez le fichier de configuration gitlab and les fichiers de configuration gitlab-Shell avec le nouveau chemin d'accès au référentiel
  • Redémarrez gitlab Sudo /etc/init.d/gitlab restart
5
alastairtree

Si vous obtenez le cannot find repo _ erreur dans GitLab après avoir exécuté les étapes ci-dessus. Exécutez cette commande.

gitlab-rake cache:clear Rails_ENV=production

Cela devrait résoudre le problème si votre chemin est correct.

3
Rusty

Dans mon cas, je devais déplacer un référentiel du stockage default vers le répertoire storage1
Si vous chargez le paramètre général du projet, il affiche le numéro du projet, par exemple 37:

Sudo gitlab-Rails console
irb(main):012:0> p37 = Project.find(37)
irb(main):009:0> p37.repository_storage
=> "default"
irb(main):010:0> p37.repository_storage = 'storage1'
irb(main):011:0> p37.save
=> true
irb(main):012:0>  # <ctrl>+d to send EOF and exit

vider le cache est probablement une bonne idée aussi

gitlab-rake cache:clear Rails_ENV=production

0
ThorSummoner

vous devez ajouter cette petite config ci-dessous:

git_data_dirs({
    "default" => {
        "path" => "/srv/gitlab/git-data"
    }
})

Et

rsync -av /var/opt/gitlab/git-data/* /srv/gitlab/git-data/.
chown -R git:git /srv/gitlab/git-data/
Sudo gitlab-ctl reconfigure

Terminé.

0
ThinhLP