diff --git a/HowtoGitlab/8.14.md b/HowtoGitlab/8.14.md index caa09e55..8099742d 100644 --- a/HowtoGitlab/8.14.md +++ b/HowtoGitlab/8.14.md @@ -206,7 +206,13 @@ $ sed -i -e 's/database: gitlabhq_production/database: foo/' \ $ chmod o-rwx config/database.yml ~~~ -> **Note** : Conservez l'espace devant le sed pour ne pas enregistrer le mot de passe dans l'historique bash. +Puis on crée la base de données avec l'identifiant (une adresse email) et un mot de passe pour l'utilisateur *root* sur l'interface web de GitLab : + +~~~ +$ bundle exec rake gitlab:setup RAILS_ENV=production GITLAB_ROOT_PASSWORD=yourpassword GITLAB_ROOT_EMAIL=admingitlab@example.com +~~~ + +> **Note** : Conservez l'espace devant le sed pour ne pas enregistrer le mot de passe dans l'historique BASH. Ajuster les droits de certains répertoires : @@ -240,7 +246,7 @@ Initialisation de la configuration de Rack::Attack (qui permet du filtrage / rat $ cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb ~~~ -### Git +## Git Configuration : @@ -295,16 +301,6 @@ $ git checkout v$(cat ~/gitlab/GITLAB_WORKHORSE_VERSION) $ make ~~~ -### Création de la BDD - -~~~ -$ cd ~/gitlab -$ bundle exec rake gitlab:setup RAILS_ENV=production GITLAB_ROOT_PASSWORD=yourpassword GITLAB_ROOT_EMAIL=youremail -~~~ - -> **Note :** `GITLAB_ROOT_PASSWORD` concerne le mot de passe de l'utilisateur admin nommé root sur l'interface web de GitLab et `GITLAB_ROOT_EMAIL` le mail associé. Conservez un espace avant la commande pour qu'elle ne se retrouve pas dans l'historique bash. - - ## Script d'init Attention, GitLab ne supporte pas officiellement systemd ! @@ -331,7 +327,29 @@ $ git commit -a -m 'change default user' # sed -i 's@/home/git@/home/foo@g' /etc/logrotate.d/gitlab-foo ~~~ -### Vérifier l'état de l'installation +## Nginx + +On utilise Nginx, c'est le seul serveur web supporté officiellement par GitLab : + +~~~ +# apt install nginx +# install -m 644 /home/foo/gitlab/lib/support/nginx/gitlab-ssl /etc/nginx/sites-available/foo +# sed -i -e 's@/home/git@/home/foo@g' \ + -e 's/YOUR_SERVER_FQDN/foo.gitlab.example.com/g' \ + -e 's@/var/log/nginx/gitlab@/var/log/nginx/foo@g' \ + -e 's/upstream gitlab-workhorse/upstream gitlab-foo-workhorse/' \ + -e 's@http://gitlab-workhorse@http://gitlab-foo-workhorse@' \ + /etc/nginx/sites-available/foo +# ln -s /etc/nginx/sites-available/foo /etc/nginx/sites-enabled/ +# /etc/init.d/nginx restart +~~~ + +> **Note** : La partie SSL/TLS n'est pas évoquée. À vous de faire le nécessaire avec un certificat Let's Encrypt par exemple. N'oubliez donc pas de modifier les directives `ssl_` dans le vhost. + + +## Finalisation de l'installation + +Vérification de l'état de l'installation : ~~~ # sudo -iu gitlab-demo00 @@ -339,52 +357,45 @@ $ cd gitlab $ bundle exec rake gitlab:env:info RAILS_ENV=production ~~~ -### Compiler les Assets +Compilation des assets : ~~~ $ bundle exec rake assets:precompile RAILS_ENV=production ~~~ -### Démarrer l'instance +Démarrage de l'instance : -``` -# /etc/init.d/gitlab-demo00 start -``` +~~~ +# /etc/init.d/gitlab-foo start +~~~ -## Nginx +Vérifier le status : -On utilise Nginx car c'est le seul serveur web supporté officiellement par GitLab. - -> **Note** : La partie SSL/TLS n'est pas évoqué. À vous de faire le nécessaire avec un certificat let's encrypt par exemple. N'oubliez donc pas de modifier les directives ssl_ dans le vhost. - -### Création du vhost - -``` -# install -m 644 /home/gitlab-demo00/gitlab/lib/support/nginx/gitlab-ssl /etc/nginx/sites-available/gitlab-demo00 -# sed -i -e 's#/home/git/#/home/gitlab-demo00/#g' \ - -e 's/YOUR_SERVER_FQDN/demo00.gitlab.example.com/g' \ - -e 's#/var/log/nginx/gitlab#/var/log/nginx/gitlab-demo00#g' \ - -e 's/upstream gitlab-workhorse/upstream gitlab-demoOO-workhorse/' \ - -e 's#http://gitlab-workhorse#http://gitlab-demo00-workhorse#' \ - /etc/nginx/sites-available/gitlab-demo00 -# ln -s /etc/nginx/sites-available/gitlab-demo00 /etc/nginx/sites-enabled/ -# /etc/init.d/nginx restart - -``` - - -## Terminé ! - -### Vérifier le status - -``` +~~~ # sudo -iu gitlab-demo00 $ cd gitlab $ bundle exec rake gitlab:check RAILS_ENV=production -``` +~~~ Si tout est au vert, c'est bon ! On pourra aller sur l'instance via https://demo00.gitlab.example.com +# Sauvegarde + +On peut réaliser des sauvegardes grâce à la commande `bundle exec rake gitlab:backup:create RAILS_ENV=production` + +On peut ainsi mettre un cron pour l'utilisateur foo : + +~~~ +# Create a full backup of the GitLab repositories and SQL database every day at 4am +0 4 * * * cd ~/gitlab && bundle exec rake gitlab:backup:create RAILS_ENV=production CRON=1 +~~~ + +Dans `~/gitlab/config/gitlab.yml` on pourra indiquer un temps de rétention. Par exemple pour garder 5j de backups `keep_time: 432000` + +> **Note** : Par défaut, les sauvegardes sont stockées dans ~/gitlab/tmp/backups. Il est évidemment conseillé de les sauvegarder ailleurs et sur une machine distante. + +Attention, le fichier `secrets.yml` contient les clés de chiffrements pour les sessions et les variables. Il n'est pas inclus dans les sauvegardes GitLab. Vous devez le copier au moins une fois dans un endroit sécurisé. + # Mise à jour Le principe des mises à jour est basé sur un `git pull` et un `git checkout`. @@ -525,32 +536,4 @@ En attente d'une nouvelle release majeure :) # Création d'une autre instance -Il suffit de rejouer la procédure en modifiant « gitlab-demo00 » par le nom d'instance souhaitée. - -# Backup - -## Cron - -``` -# crontab -u gitlab-demo00 -e -``` -``` -# Create a full backup of the GitLab repositories and SQL database every day at 4am -0 4 * * * cd /home/gitlab-demo00/gitlab && bundle exec rake gitlab:backup:create RAILS_ENV=production CRON=1 -``` - -Dans `~/gitlab/config/gitlab.yml` on pourra indiquer un temps de rétention. Par exemple pour garder 5j de backups : - -``` -keep_time: 432000 -``` - -> **Note** : Par défaut, les backups sont dans ~/gitlab/tmp/backups. Il est conseillé de les sauvegarder ailleurs et sur une machine distante. - - -### Sauvegarder secrets.yml - -Le fichier `secrets.yml` contient les clés de chiffrements pour les sessions et les variables. On pourra le copier dans `/root` par exemple, à vous de choisir l'endroit approprié. -``` -# install -m 600 -o root -g root /home/gitlab-demo00/gitlab/config/secrets.yml /root/gitlab-demo00.secrets.yml -``` \ No newline at end of file +Il suffit de rejouer la procédure en modifiant « gitlab-demo00 » par le nom d'instance souhaitée. \ No newline at end of file