Gitlab kasutamine: erinevus redaktsioonide vahel
(Uus lehekülg: '===Sissejuhatus=== TODO ===Tööpõhimõte=== TODO ===Eposti väljumise seadistamine=== Docker compose failis sobib kasutada lõiku või konteineri sees failis lõiku <pre...') |
|||
| (ei näidata sama kasutaja 34 vahepealset redaktsiooni) | |||
| 2. rida: | 2. rida: | ||
TODO |
TODO |
||
| + | |||
| + | ===Mõisted=== |
||
| + | |||
| + | * GitLab Community Edition (CE) |
||
| + | * Enterprise Edition (EE) |
||
| + | * migration |
||
===Tööpõhimõte=== |
===Tööpõhimõte=== |
||
| + | Väited |
||
| − | TODO |
||
| + | |||
| + | * GitLab tarkvara esineb EE ja CE kujul |
||
| + | * Community Editionis on osa featuure välja lülitatud, aga nö koodibaas on sama |
||
| + | * Versioone avaldatakse väga regulaarselt |
||
| + | * LTS versiooni ei ole |
||
| + | |||
| + | Versiooni numbrit väljendatakse kujul |
||
| + | |||
| + | x.y.z |
||
| + | |||
| + | * x - major |
||
| + | * y - minor |
||
| + | * z - patch |
||
| + | * kõige ennustatavamalt ilmuvad minor versioonid - kord kuus, nt on võimalikuid 18.0.x - 18.11.y versioonid (ja mitte 18.13.z) |
||
| + | * uus minor tsükkel algab alati mai kuus, st 16.0, 17.0, 18.0, 19.0 jne ilmuvad alati mai kuus |
||
| + | * minor tsükkel lõpeb alati aprilli kuus, st 16.11, 17.11, 18.11, 19.11 jne ilmuvad alati aprilli kuus |
||
| + | |||
| + | GitLab kasutab sisemiselt selliseid protokolle |
||
| + | |||
| + | * gRPC |
||
| + | |||
| + | Gitlab on programmeeritud selliste arendusvahendite abil |
||
| + | |||
| + | * ruby |
||
| + | * golang |
||
| + | |||
| + | Gitlab lahenduse moodustavad muuhulgas sellised komponendid |
||
| + | |||
| + | * postgresql |
||
| + | * ssh server |
||
| + | * redis |
||
| + | * gitaly |
||
| + | * gitlab-kas |
||
| + | * puma |
||
| + | * sidekiq |
||
| + | * nginx |
||
===Eposti väljumise seadistamine=== |
===Eposti väljumise seadistamine=== |
||
| 46. rida: | 88. rida: | ||
</pre> |
</pre> |
||
| − | === |
+ | ===Gitlab runner=== |
| + | |||
| + | Gitlab runner https://docs.gitlab.com/runner/install/ |
||
| + | |||
| + | ====Tööpõhimõte==== |
||
| + | |||
| + | TODO |
||
| + | |||
| + | ====Paigaldamine==== |
||
| + | |||
| + | Paigaldamiseks |
||
| + | |||
| + | <pre> |
||
| + | $ cat docker-compose.yml |
||
| + | version: '3' |
||
| + | services: |
||
| + | gitlab-runner: |
||
| + | image: 'gitlab/gitlab-runner:latest' |
||
| + | volumes: |
||
| + | - /var/run/docker.sock:/var/run/docker.sock |
||
| + | - /srv/gitlab-runner/config:/etc/gitlab-runner |
||
| + | restart: unless-stopped |
||
| + | ports: |
||
| + | - '8093:8093' |
||
| + | </pre> |
||
| + | |||
| + | ning seejärel öeldakse |
||
| + | |||
| + | imre@docker:~/20221110$ docker-compose up -d |
||
| + | |||
| + | Registreerimine Gitlab'iga toimub interaktiivselt |
||
| + | |||
| + | imre@docker:~/20221110$ docker-compose exec gitlab-runner gitlab-runner register |
||
| + | |||
| + | Kasulikud lisamaterjalid |
||
| + | |||
| + | * https://docs.gitlab.com/runner/install/docker.html |
||
| + | * https://docs.gitlab.com/runner/register/index.html#docker |
||
| + | * https://techoverflow.net/2021/01/12/how-to-install-gitlab-runner-using-docker-compose/ |
||
| + | |||
| + | ====Kasutamine==== |
||
| + | |||
| + | TODO |
||
| + | |||
| + | ===Gitlab docker compose põhise lahenduse tarkvara uuendamine=== |
||
| + | |||
| + | Uuendamise protseduur |
||
| + | |||
| + | lõpetada konteineri töötamine |
||
| + | |||
| + | $ docker compose stop |
||
| + | |||
| + | kirjutada docker-compose.yml faili uus image väärtus, vastavalt upgrade-path soovitusele |
||
| + | |||
| + | TODO |
||
| + | |||
| + | käivitada konteiner |
||
| + | |||
| + | $ docker compose up -d |
||
| + | |||
| + | Jälgida progressi üldiste vahenditega, nt top |
||
| + | |||
| + | $ docker compose logs -f |
||
| + | |||
| + | küsida konteneri sees |
||
| + | |||
| + | <pre> |
||
| + | # docker-compose exec gitlab-runner gitlab-runner regis |
||
| + | # gitlab-rails runner -e production 'puts Gitlab::BackgroundMigration.remaining' |
||
| + | # gitlab-rails runner -e production 'puts Gitlab::Database::BackgroundMigration::BatchedMigration.queued.count' |
||
| + | </pre> |
||
| + | |||
| + | Vaadata gitlab webgui pealt kontrolliks |
||
| + | |||
| + | TODO |
||
| + | |||
| + | küsida gitlab konteineri sees kontrolliks |
||
| + | |||
| + | <pre> |
||
| + | imre@arendus:~/20211108/gitlab$ docker exec -ti ff0e01341e bash |
||
| + | root@arendus:/# gitlab-rails runner -e production 'puts Gitlab::BackgroundMigration.remaining' |
||
| + | 0 |
||
| + | root@arendus:/# gitlab-rails runner -e production 'puts Gitlab::Database::BackgroundMigration::BatchedMigration.queued.count' |
||
| + | 0 |
||
| + | root@arendus:/# gitlab-rails runner -e production 'puts Gitlab::Database::BackgroundMigration::BatchedMigration.with_status(:failed).count' |
||
| + | 0 |
||
| + | root@arendus:/# gitlab-rake gitlab:snippets:list_non_migrated |
||
| + | All snippets have been successfully migrated |
||
| + | root@arendus:/# |
||
| + | </pre> |
||
| + | |||
| + | |||
| + | |||
| + | |||
| + | Kasulikud lisamaterjalid |
||
| + | |||
| + | * https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/?current=14.7.0&distro=docker&edition=ce |
||
| + | * https://docs.gitlab.com/15.7/ee/update/background_migrations.html |
||
| + | |||
| + | ===Gitlab uuendamine=== |
||
| + | |||
| + | ====lähtepunkti määratlemine==== |
||
| + | |||
| + | Logides sisse gitlab rakenduse webgui peale root kasutajaga ning valides paremal all 'Admin' ning |
||
| + | |||
| + | Overview -> Dashboard |
||
| + | |||
| + | paistab nt selline pilt |
||
| + | |||
| + | [[Fail:20260613-gitlab-upgrade-03.png|900px]] |
||
| + | |||
| + | kus Components all on näha muu hulgas |
||
| + | |||
| + | * gitlab lahenduse versioon - 17.11.7 |
||
| + | * gitlab api versioon - v4 |
||
| + | * ruby versioon |
||
| + | * rails versioon (ruby põhine veebinduse raamistik (framework)) - 7.0.8.7 |
||
| + | * postgresql - 16.8 |
||
| + | * redis 7.2.7 |
||
| + | |||
| + | ====ettevalmistused uuendamiseks==== |
||
| + | |||
| + | Väited |
||
| + | |||
| + | * dockerhostil on failisüsteemis piisavalt ruumi |
||
| + | * uuendamise ajaks on avalik ligipääs webgui liidesele piiratud |
||
| + | * integratsioonide töö on peatatud - nt runnerite konteinerid on seisatud |
||
| + | * enne järgmise uuenduse rakendamist peab eelmine olema edukalt ära rakendatud |
||
| + | |||
| + | Veenduda, et ei ole varasemast midagi pooleli jäänud |
||
| + | |||
| + | TODO |
||
| + | |||
| + | ====upgrade path valimine==== |
||
| + | |||
| + | Gitlab lahenduse upgrade peab toimuma nn upgrade-steps täpse läbimise viisil |
||
| + | |||
| + | https://docs.gitlab.com/ -> UseGitLab -> Install -> Upgrade GitLab -> Upgrade paths -> Upgrade Path tool |
||
| + | |||
| + | Aadressil https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/ paistab selline pilt |
||
| + | |||
| + | [[Fail:20260613-gitlab-upgrade-01.png|900px]] |
||
| + | |||
| + | kus |
||
| + | |||
| + | * valida CE või EE |
||
| + | * valida platform, nt Docker |
||
| + | * valida start ja end versioonid |
||
| + | |||
| + | seejärel paistab selline vastus |
||
| + | |||
| + | [[Fail:20260613-gitlab-upgrade-02.png|900px]] |
||
| + | |||
| + | kus |
||
* TODO |
* TODO |
||
| + | |||
| + | ====Uuendamine==== |
||
| + | |||
| + | Uuenedamiseks tuleb läbida ettevalmistused, käesolev versioon docker gitlab lahendust töötab tavalisel viisil' |
||
| + | |||
| + | $ docker compose start |
||
| + | |||
| + | muuta docker-compose.yml failis image: väärtus upgrade path eeskujul, nt kui enne oli v 17.10.4 siis on uus 17.11.7 |
||
| + | |||
| + | <pre> |
||
| + | image: 'gitlab/gitlab-ce:17.11.7-ce.0' |
||
| + | </pre> |
||
| + | |||
| + | ning öelda |
||
| + | |||
| + | <pre> |
||
| + | $ docker compose pull |
||
| + | $ docker compose up -d |
||
| + | |||
| + | oodata kuni on valmis (võtab nii 15 - 25 minutit) |
||
| + | </pre> |
||
| + | |||
| + | Valmisolekust annab tunnistust, et migratsioonid toimuvad ja on lõpuks ilma vigadeta valmis saanud, nt |
||
| + | |||
| + | Admin -> Monitoring -> Background migrations |
||
| + | |||
| + | [[Fail:20260613-gitlab-upgrade-04.png|900px]] |
||
| + | |||
| + | kus |
||
| + | |||
| + | * näha on veel üks toimub, selle lõpu peab ära ootama |
||
| + | |||
| + | Käsureal saab olukorda uurida nt selline väljund vastab, et kõik on edukalt ära rakendatud |
||
| + | |||
| + | <pre> |
||
| + | imre@arendus:~/20211108/gitlab$ docker exec -ti a556 gitlab-rake gitlab:background_migrations:status | egrep -v "finished|finalized" |
||
| + | Database: main |
||
| + | imre@arendus:~/20211108/gitlab$ |
||
| + | </pre> |
||
| + | |||
| + | ===Prometheus väljalülitamine=== |
||
| + | |||
| + | <pre> |
||
| + | imre@moraal:~$ diff gitlab.rb-enne gitlab.rb-parast |
||
| + | 990c990 |
||
| + | < # puma['exporter_enabled'] = false |
||
| + | --- |
||
| + | > puma['exporter_enabled'] = false |
||
| + | 1033c1033 |
||
| + | < # sidekiq['metrics_enabled'] = true |
||
| + | --- |
||
| + | > sidekiq['metrics_enabled'] = false |
||
| + | 2040c2040 |
||
| + | < # prometheus_monitoring['enable'] = true |
||
| + | --- |
||
| + | > prometheus_monitoring['enable'] = false |
||
| + | </pre> |
||
| + | |||
| + | Kasulikud lisamaterjalid |
||
| + | |||
| + | * https://archives.docs.gitlab.com/17.11/administration/monitoring/prometheus/ |
||
| + | |||
| + | ===Postgresql baasi uurimine=== |
||
| + | |||
| + | <pre> |
||
| + | imre@arendus:~/20211108/gitlab$ docker exec -it ff gitlab-psql |
||
| + | psql (14.17) |
||
| + | Type "help" for help. |
||
| + | |||
| + | gitlabhq_production=# \l |
||
| + | List of databases |
||
| + | Name | Owner | Encoding | Collate | Ctype | Access privileges |
||
| + | ---------------------+-------------+----------+---------+---------+--------------------------------- |
||
| + | gitlabhq_production | gitlab | UTF8 | C.UTF-8 | C.UTF-8 | |
||
| + | postgres | gitlab-psql | UTF8 | C.UTF-8 | C.UTF-8 | |
||
| + | template0 | gitlab-psql | UTF8 | C.UTF-8 | C.UTF-8 | =c/"gitlab-psql" + |
||
| + | | | | | | "gitlab-psql"=CTc/"gitlab-psql" |
||
| + | template1 | gitlab-psql | UTF8 | C.UTF-8 | C.UTF-8 | "gitlab-psql"=CTc/"gitlab-psql"+ |
||
| + | | | | | | =c/"gitlab-psql" |
||
| + | (4 rows) |
||
| + | </pre> |
||
| + | |||
| + | ===Kasulikud lisamaterjalid=== |
||
| + | |||
| + | * [[:Gitlab runner kasutamine]] |
||
| + | |||
| + | <pre> |
||
| + | root@arendus:~# du -sk /srv/gitlab/data/* | sort -nr | head -n 5 |
||
| + | 102722004 /srv/gitlab/data/prometheus |
||
| + | 3811892 /srv/gitlab/data/gitlab-rails |
||
| + | 1318720 /srv/gitlab/data/postgresql |
||
| + | 303560 /srv/gitlab/data/git-data |
||
| + | 148700 /srv/gitlab/data/gitaly |
||
| + | </pre> |
||
Viimane redaktsioon: 13. juuni 2026, kell 21:33
Sissejuhatus
TODO
Mõisted
- GitLab Community Edition (CE)
- Enterprise Edition (EE)
- migration
Tööpõhimõte
Väited
- GitLab tarkvara esineb EE ja CE kujul
- Community Editionis on osa featuure välja lülitatud, aga nö koodibaas on sama
- Versioone avaldatakse väga regulaarselt
- LTS versiooni ei ole
Versiooni numbrit väljendatakse kujul
x.y.z
- x - major
- y - minor
- z - patch
- kõige ennustatavamalt ilmuvad minor versioonid - kord kuus, nt on võimalikuid 18.0.x - 18.11.y versioonid (ja mitte 18.13.z)
- uus minor tsükkel algab alati mai kuus, st 16.0, 17.0, 18.0, 19.0 jne ilmuvad alati mai kuus
- minor tsükkel lõpeb alati aprilli kuus, st 16.11, 17.11, 18.11, 19.11 jne ilmuvad alati aprilli kuus
GitLab kasutab sisemiselt selliseid protokolle
- gRPC
Gitlab on programmeeritud selliste arendusvahendite abil
- ruby
- golang
Gitlab lahenduse moodustavad muuhulgas sellised komponendid
- postgresql
- ssh server
- redis
- gitaly
- gitlab-kas
- puma
- sidekiq
- nginx
Eposti väljumise seadistamine
Docker compose failis sobib kasutada lõiku
või konteineri sees failis lõiku
root@arendus:/# grep smtp_ /etc/gitlab/gitlab.rb gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "192.168.1.250" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = "gitlab@moraal.ee" gitlab_rails['smtp_password'] = "parool" gitlab_rails['smtp_domain'] = "arendus.moraal.ee" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false gitlab_rails['smtp_pool'] = false gitlab_rails['smtp_openssl_verify_mode'] = 'none'
Konteineri sees rakenduse seadistuste kehtestamiseks sobib öelda
root@arendus:/# gitlab-ctl reconfigure
Testimiseks
root@arendus:/# gitlab-rails console
--------------------------------------------------------------------------------
Ruby: ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux]
GitLab: 14.4.1 (1a23d731c9f) FOSS
GitLab Shell: 13.21.1
PostgreSQL: 12.7
--------------------------------------------------------------------------------
Loading production environment (Rails 6.1.4.1)
irb(main):004:0> Notify.test_email('imre@moraal.ee', 'Message Subject', 'Message Body').deliver_now
Gitlab runner
Gitlab runner https://docs.gitlab.com/runner/install/
Tööpõhimõte
TODO
Paigaldamine
Paigaldamiseks
$ cat docker-compose.yml
version: '3'
services:
gitlab-runner:
image: 'gitlab/gitlab-runner:latest'
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /srv/gitlab-runner/config:/etc/gitlab-runner
restart: unless-stopped
ports:
- '8093:8093'
ning seejärel öeldakse
imre@docker:~/20221110$ docker-compose up -d
Registreerimine Gitlab'iga toimub interaktiivselt
imre@docker:~/20221110$ docker-compose exec gitlab-runner gitlab-runner register
Kasulikud lisamaterjalid
- https://docs.gitlab.com/runner/install/docker.html
- https://docs.gitlab.com/runner/register/index.html#docker
- https://techoverflow.net/2021/01/12/how-to-install-gitlab-runner-using-docker-compose/
Kasutamine
TODO
Gitlab docker compose põhise lahenduse tarkvara uuendamine
Uuendamise protseduur
lõpetada konteineri töötamine
$ docker compose stop
kirjutada docker-compose.yml faili uus image väärtus, vastavalt upgrade-path soovitusele
TODO
käivitada konteiner
$ docker compose up -d
Jälgida progressi üldiste vahenditega, nt top
$ docker compose logs -f
küsida konteneri sees
# docker-compose exec gitlab-runner gitlab-runner regis # gitlab-rails runner -e production 'puts Gitlab::BackgroundMigration.remaining' # gitlab-rails runner -e production 'puts Gitlab::Database::BackgroundMigration::BatchedMigration.queued.count'
Vaadata gitlab webgui pealt kontrolliks
TODO
küsida gitlab konteineri sees kontrolliks
imre@arendus:~/20211108/gitlab$ docker exec -ti ff0e01341e bash root@arendus:/# gitlab-rails runner -e production 'puts Gitlab::BackgroundMigration.remaining' 0 root@arendus:/# gitlab-rails runner -e production 'puts Gitlab::Database::BackgroundMigration::BatchedMigration.queued.count' 0 root@arendus:/# gitlab-rails runner -e production 'puts Gitlab::Database::BackgroundMigration::BatchedMigration.with_status(:failed).count' 0 root@arendus:/# gitlab-rake gitlab:snippets:list_non_migrated All snippets have been successfully migrated root@arendus:/#
Kasulikud lisamaterjalid
- https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/?current=14.7.0&distro=docker&edition=ce
- https://docs.gitlab.com/15.7/ee/update/background_migrations.html
Gitlab uuendamine
lähtepunkti määratlemine
Logides sisse gitlab rakenduse webgui peale root kasutajaga ning valides paremal all 'Admin' ning
Overview -> Dashboard
paistab nt selline pilt
kus Components all on näha muu hulgas
- gitlab lahenduse versioon - 17.11.7
- gitlab api versioon - v4
- ruby versioon
- rails versioon (ruby põhine veebinduse raamistik (framework)) - 7.0.8.7
- postgresql - 16.8
- redis 7.2.7
ettevalmistused uuendamiseks
Väited
- dockerhostil on failisüsteemis piisavalt ruumi
- uuendamise ajaks on avalik ligipääs webgui liidesele piiratud
- integratsioonide töö on peatatud - nt runnerite konteinerid on seisatud
- enne järgmise uuenduse rakendamist peab eelmine olema edukalt ära rakendatud
Veenduda, et ei ole varasemast midagi pooleli jäänud
TODO
upgrade path valimine
Gitlab lahenduse upgrade peab toimuma nn upgrade-steps täpse läbimise viisil
https://docs.gitlab.com/ -> UseGitLab -> Install -> Upgrade GitLab -> Upgrade paths -> Upgrade Path tool
Aadressil https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/ paistab selline pilt
kus
- valida CE või EE
- valida platform, nt Docker
- valida start ja end versioonid
seejärel paistab selline vastus
kus
- TODO
Uuendamine
Uuenedamiseks tuleb läbida ettevalmistused, käesolev versioon docker gitlab lahendust töötab tavalisel viisil'
$ docker compose start
muuta docker-compose.yml failis image: väärtus upgrade path eeskujul, nt kui enne oli v 17.10.4 siis on uus 17.11.7
image: 'gitlab/gitlab-ce:17.11.7-ce.0'
ning öelda
$ docker compose pull $ docker compose up -d oodata kuni on valmis (võtab nii 15 - 25 minutit)
Valmisolekust annab tunnistust, et migratsioonid toimuvad ja on lõpuks ilma vigadeta valmis saanud, nt
Admin -> Monitoring -> Background migrations
kus
- näha on veel üks toimub, selle lõpu peab ära ootama
Käsureal saab olukorda uurida nt selline väljund vastab, et kõik on edukalt ära rakendatud
imre@arendus:~/20211108/gitlab$ docker exec -ti a556 gitlab-rake gitlab:background_migrations:status | egrep -v "finished|finalized" Database: main imre@arendus:~/20211108/gitlab$
Prometheus väljalülitamine
imre@moraal:~$ diff gitlab.rb-enne gitlab.rb-parast 990c990 < # puma['exporter_enabled'] = false --- > puma['exporter_enabled'] = false 1033c1033 < # sidekiq['metrics_enabled'] = true --- > sidekiq['metrics_enabled'] = false 2040c2040 < # prometheus_monitoring['enable'] = true --- > prometheus_monitoring['enable'] = false
Kasulikud lisamaterjalid
Postgresql baasi uurimine
imre@arendus:~/20211108/gitlab$ docker exec -it ff gitlab-psql
psql (14.17)
Type "help" for help.
gitlabhq_production=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
---------------------+-------------+----------+---------+---------+---------------------------------
gitlabhq_production | gitlab | UTF8 | C.UTF-8 | C.UTF-8 |
postgres | gitlab-psql | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | gitlab-psql | UTF8 | C.UTF-8 | C.UTF-8 | =c/"gitlab-psql" +
| | | | | "gitlab-psql"=CTc/"gitlab-psql"
template1 | gitlab-psql | UTF8 | C.UTF-8 | C.UTF-8 | "gitlab-psql"=CTc/"gitlab-psql"+
| | | | | =c/"gitlab-psql"
(4 rows)
Kasulikud lisamaterjalid
root@arendus:~# du -sk /srv/gitlab/data/* | sort -nr | head -n 5 102722004 /srv/gitlab/data/prometheus 3811892 /srv/gitlab/data/gitlab-rails 1318720 /srv/gitlab/data/postgresql 303560 /srv/gitlab/data/git-data 148700 /srv/gitlab/data/gitaly