{{tag>Git Ruby}}
= Notes Gitlab
Voir :
* [[Notes gitlab-ci pipeline|Notes Gitlab-CI]]
* CIS GitLab Benchmark
Voir aussi :
* [[Notes GOGS forge git serveur github like| Gogs]]
* Gitea
* GitPrep
* gitweb
* ArgoCD
* Tekton
== Install via Docker
=== Docker
Docker-compose avec Gitlab runner :
* https://www.jamescoyle.net/how-to/docker-compose-files/3179-docker-compose-yml-for-gitlab-and-gitlab-runner
* https://gitlab.com/gitlab-org/gitlab/-/issues/23911
* https://github.com/jeshan/gitlab-on-compose/blob/master/docker-compose.yml
* https://gist.github.com/barnybug/e988cfcd937e7414187c51f4d1e2cb82
https://medium.com/@rukeith/how-to-use-docker-to-build-a-self-host-gitlab-and-gitlab-runner-781981dc4d03
Configuration du runner
docker run --rm -ti --name gitlab-runner --add-host gitlab.local:172.17.0.1 \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:alpine register
''/srv/gitlab-runner/config/config.toml''
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "89fa5654f698"
url = "http://gitlab.local:8081/"
token = "FKXKQ5Zg1KmwB9ssNVU9"
executor = "docker"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
[runners.docker]
tls_verify = false
image = "alpine"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
Gitlab créera de nouveau containers. Ils devrons etre capable de faire un ''git clone''
Pour configurer les flux réseaux, ajoutez ''clone_url =''
Dans notre exemple 172.18.0.1 est la passerelle par défaut des nouveaux containers crées.
''/gitlab-runner/config/config.toml''
[[runners]]
#url = "http://gitlab.local:8081/"
url = "http://gitlab.local/"
clone_url = "http://172.18.0.1:8081"
''docker-compose.yml''
version: '3.7'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
restart: unless-stopped
hostname: 'gitlab.local'
environment:
GITLAB_OMNIBUS_CONFIG: |
#external_url 'http://gitlab.local'
# Add any other gitlab.rb configuration here, each on its own line
ports:
- '127.0.0.1:8081:80'
- '127.0.0.1:4443:443'
- '127.0.0.1:2222:22'
volumes:
- "/srv/gitlab/config:/etc/gitlab"
- "/srv/gitlab/logs:/var/log/gitlab"
- "/srv/gitlab/data:/var/opt/gitlab"
networks:
- gitlab-net
gitlab-runner:
image: gitlab/gitlab-runner:alpine
restart: unless-stopped
depends_on:
- gitlab
volumes:
- /srv/gitlab-runner/config:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock
networks:
- gitlab-net
networks:
gitlab-net:
name: gitlab-net
''srv/gitlab/config/gitlab.rb''
gitlab_rails['env'] = {
'MALLOC_CONF' => 'dirty_decay_ms:1000,muzzy_decay_ms:1000'
}
gitaly['env'] = {
'LD_PRELOAD' => '/opt/gitlab/embedded/lib/libjemalloc.so',
'MALLOC_CONF' => 'dirty_decay_ms:1000,muzzy_decay_ms:1000',
'GITALY_COMMAND_SPAWN_MAX_PARALLEL' => '2'
}
gitlab_rails['gitlab_username_changing_enabled'] = true
gitlab_rails['trusted_proxies'] = ["172.16.0.0/12"]
gitlab_rails['omniauth_enabled'] = false
puma['worker_processes'] = 0
puma['exporter_enabled'] = false
sidekiq['max_concurrency'] = 10
sidekiq['metrics_enabled'] = false
postgresql['shared_buffers'] = "1024MB"
nginx['redirect_http_to_https'] = true
nginx['listen_port'] = 80
nginx['listen_https'] = false
prometheus['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
pgbouncer_exporter['enable'] = false
gitlab_exporter['enable'] = false
grafana['enable'] = false
grafana['metrics_enabled'] = false
#gitaly['enable'] = false
gitaly['ruby_max_rss'] = 200_000_000 # RSS threshold in bytes for triggering a gitaly-ruby restart
gitaly['concurrency'] = [
{
'rpc' => "/gitaly.SmartHTTPService/PostReceivePack",
'max_per_repo' => 3
}, {
'rpc' => "/gitaly.SSHService/SSHUploadPack",
'max_per_repo' => 3
}
]
gitaly['cgroups_count'] = 2
gitaly['cgroups_hierarchy_root'] = 'gitaly'
gitaly['cgroups_memory_enabled'] = true
gitaly['cgroups_memory_limit'] = 500000
gitaly['cgroups_cpu_enabled'] = true
gitaly['cgroups_cpu_shares'] = 512
Lancement de Gitlab et de Gitlab-Runner
docker-compose -d up
docker exec -ti gitlab gitlab-ctl reconfigure
docker restart gitlab
=== Config WebUI
User : **root**
Password
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
Open registration is enabled on your instance.
Admin Area - Settings - General - Sign-up restrictions
Sign-up enabled
Require admin approval for new sign-ups
------
Le compte admin par defaut est "root"
---------
Edit Profile - Account
Change username
----------
admin/application_settings/general
Account and limit
Gravatar enabled
Disable
admin/application_settings/general
User OAuth applications
Allow users to register any application to use GitLab as an OAuth provider
Disable
admin/application_settings/general
Third-party offers
Do not display offers from third parties
Checked
admin/application_settings/metrics_and_profiling
Metrics - Prometheus
Enable health and performance metrics endpoint
Disable
profile
Private profile
Don't display activity-related personal information on your profile
----------
Admin Area - Overview - Users
-------
==== Config Runners avec Docker
Admin Area - Overview - Runners
docker-compose exec gitlab-runner gitlab-runner register
Enter the GitLab instance URL (for example, https://gitlab.com/):
http://gitlab/
Enter the registration token:
2_xtsj1yw4sacbWwG46y
Enter an executor: docker, docker-ssh, ssh, docker+machine, kubernetes, custom, parallels, shell, virtualbox, docker-ssh+machine:
docker
Enter the default Docker image (for example, ruby:2.6):
alpine
==== Reconfig
docker-compose exec gitlab gitlab-ctl reconfigure
docker-compose exec gitlab gitlab-ctl restart
== Pb
=== Erreur dans Gitlab Settings CI/DI - There was an error fetching the environments information.
Solution :
Settings, General, Visibility, project features, permissions
in Pipelines (Build, test, and deploy your changes) select Only Project Members
== Autres
=== Installation sur Ubuntu 16.04
https://packages.gitlab.com/gitlab/gitlab-ce/install
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
apt-get install gitlab-ce
--------------
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
sudo gitlab-ctl reconfigure
For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
---------------
sudo gitlab-ctl reconfigure
=== Optimisation
''/etc/gitlab/gitlab.rb''
##! **recommend value is 1/4 of total RAM, up to 14GB.**
# postgresql['shared_buffers'] = "256MB"
postgresql['shared_buffers'] = "4096MB"
gitlab-ctl restart postgresql
Les composants suivants seront automatiquement installés :
* nginx
* postgres
* redis
**A présent connectez vous sur le port 80 et définissez un mot de passe**