22
0
Fork 0

relecture en cours

This commit is contained in:
gcolpart 2016-12-02 14:00:43 +01:00
parent 9e9e72e23f
commit 6c7a33b92e
1 changed files with 57 additions and 74 deletions

View File

@ -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
```
Il suffit de rejouer la procédure en modifiant « gitlab-demo00 » par le nom d'instance souhaitée.