V dnešním kurzu použijeme k ukládání obrázků kontejnerový registr GitLab. Instalace a konfigurace GitLabu najdete v našem průvodci GitLab.
Nejprve začneme s instalací kontejneru.
1. Nakonfigurujte registr kontejnerů
Přejděte do oblasti pro správu a první věc, kterou si všimnete, je, že je ve výchozím nastavení vypnutý registr kontejneru.
Nainstalujte registr kontejneru
Měli bychom upravit konfigurační soubor GitLab. Zadejte následující příkaz:
a) Upravte gitlab.rb
vim / etc / gitlab / gitlab.rb
Změňte následující řádek:
registry_external_url 'https: // gitlab.fosslinux.com: 5050 '
Nyní adresa URL registru naslouchá na HTTPS pod stávající adresou GitLab s jiným portem.
b) Po úpravě je třeba překonfigurovat Gitlab.
překonfigurujte gitlab-ctl
Po dokončení přejděte do oblasti pro správu a tentokrát byste ji měli vidět povolenou.
c) Vyzkoušejte přihlášení kontejneru z jiného stroje. Všimněte si však, že Docker by měl být nainstalován na tomto systému.
docker přihlášení gitlab.fosslinux.com: 5050
Výchozí umístění úložiště obrázků je následující:
/ var / opt / gitlab / gitlab-rails / shared / registry
Pokud chcete cestu změnit, upravte ji pomocí VIM.
vim / etc / gitlab / gitlab.rb
Změňte následující řádek:
gitlab_rails ['registry_path'] = "/ cesta / do / registru / úložiště"
Poté překonfigurujte.
překonfigurujte gitlab-ctl
2. Vytvoření projektu
Vytvoříme nový projekt pro plynovod. Chcete-li to provést, přejděte do oblasti správce.
Měli byste vidět Oblasti správy podobné tomuto:
Poté klikněte na Nová skupina.
Skupině můžete dát jakékoli jméno. Poté zadejte název adresy URL projektu. Úroveň viditelnosti je zde „soukromá“; vytvořili jsme skupinu nazvanou „gitdemo.“
Pak znovu přejděte do oblasti pro správu -> nový projekt
Pojmenujte projekt. Vyberte dříve vytvořenou skupinu pro projekt.
Po vytvoření projektu můžete do úložiště přidat ukázkový soubor.
3. Povolit registr kontejneru pro projekt
Jít do Nastavení projektu -> Všeobecné a poté rozbalte Viditelnost, funkce projektu, oprávnění.
Poté povolte Registr kontejnerů.
Nyní přejděte do svého projektu a v části balíčky uvidíte registr kontejnerů.
4. Zakázat AutoDevops
Přejděte do svého projekt -> Nastavení -> CICD
Pak rozbalte Auto DevOps a zrušte výběr „Výchozí nastavení kanálu Auto DevOps.“
5. Vytvořte klíč SSH ze stroje klienta / vývojáře
Zde vytvoříme ssh klíč a ověříme se pomocí našeho GitLabu. Poté můžeme tlačit, tahat, klonovat úložiště git z našeho klientského počítače.
a) Spusťte následující příkaz pro vygenerování klíče:
ssh-keygen -t rsa -b 4096 -C "darshana @ fosslinux.com "
b) Zkopírujte veřejný klíč:
kočka ~ /.ssh / is_rsa_pub
Nyní se přihlaste na server GitLab. Přejít na Profil -> SSH klíče
c) Přidejte zkopírovaný klíč do sekce klíčů a uložte jej.
d) Nyní musíme získat adresu URL pro klonované repo pomocí SSH.
Přejděte na svůj projekt -> Klonovat.
Zkopírujte klon s ssh URL.
Než se chystáme naklonovat úložiště do našeho počítače, musíme nainstalovat „git“
Nainstalujte git na klient-server:
yum nainstalovat git -y
Nyní budeme klonovat úložiště a tlačit náš kód do úložiště Gitlab.
Globální nastavení Git
git config - globální uživatel.jméno "Darshana"
git config - globální uživatel.e-mail "darshana @ fosslinux.com "
Spuštěním následujícího příkazu naklonujte úložiště:
git klon git @ git.fosslinuxcom: gitdemo / fosslinux.sakra
Zkopírujte zdrojový kód do klonované složky.
Přejít do klonované složky:
cd fosslinux
Nyní vložte kód do úložiště:
git přidat .
stav git
git commit -m "ukázkové soubory projektu"
git push
6. Nainstalujte si GitLab Runner
Doporučuje se nainstalovat GitLab Runner na server odděleně od místa, kde je nainstalován GitLab. Můžete si jej také nainstalovat na stejný server, pokud to tak stále chcete.
Tady použijeme Dockerova exekutora; proto bychom měli nainstalovat Docker před použitím Runner.
a) Exekutor Dockeru
GitLab Runner může pomocí Dockeru spouštět úlohy na obrázcích poskytovaných uživateli kvůli použití Dockerova exekutora.
Exekutor Docker, když se používá s GitLab CI, se připojí k Docker Engine a spustí každé sestavení v izolovaném kontejneru pomocí předdefinovaného obrazu, který je nakonfigurován v souboru Gitlab CI. Když budeme diskutovat o Pipeline, uvidíme soubor Gitlab CI.
Instalovat úložiště:
curl -L https: // balíčky.gitlab.com / install / repositories / runner / gitlab-runner / script.deb.sh | bash
Nainstalujte Runner:
apt-get install gitlab-runner
Zkontrolovat stav běžce:
stav gitlab-runner
Zaregistrujte běžce
Zde přidáme sdíleného Runnera. Přejděte do části Správce -> Běžci.
Pak můžete vidět Nastavit sdíleného běžce ručně sekce. Potřebujeme naši adresu Gitlab a token pro registrovaného běžce.
Spustit Registrovat běžce
Spuštěním následujícího příkazu zaregistrujte běžce.
registr gitlab-runner
Měl by položit několik otázek. Odpovězte na následující otázky.
a) Zadejte adresu URL instance GitLab:
Zadejte adresu URL koordinátora gitlab-ci (např.G. https: // gitlab.com) https: // gitlab.fosslinux.com
b) Zadejte token, který jste získali k registraci běžce:
Zadejte token gitlab-ci pro tohoto běžce xxxxxxxxxxxxxxxxxxxxxxxxx
c) Zadejte popis běžce; toto můžete později změnit v uživatelském rozhraní GitLabu:
Zadejte prosím popis gitlab-ci tohoto běžce [název hostitele] Docker-runner
d) Zadejte značky spojené s běžcem; toto můžete později změnit v uživatelském rozhraní GitLabu:
Zadejte značky gitlab-ci pro tohoto běžce (oddělené čárkami): master, dev, qa
e) Zadejte Runner Exekutor:
Zadejte prosím exekutora: ssh, docker + machine, docker-ssh + machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell: docker
f) Pokud jste si vybrali Dockera jako svého exekutora, budete požádáni o použití výchozího obrazu pro projekty, které nedefinují .gitlab-ci.yml:
Zadejte prosím obrázek Dockeru (např. rubín: 2.6): vysokohorský: nejnovější
Nyní se Runner úspěšně zaregistroval.
Restartujte běžce
restart gitlab-runner
Nyní obnovte stránku Běžci (Oblast správce -> Běžci). Můžete vidět nově přidaného Runnera.
Musíme upravit některá nastavení pro Runner. Takže klikněte na token.
Poté vyberte možnost „Spustit neoznačené úlohy“ a uložte změny.
Změňte konfigurace běžec Gitlab
Budeme používat docker-in-docker (dind) režim v potrubí GitLab, takže musíme použít privilegovaný = pravda v našich Docker kontejnerech. Proto povolíme privilegovaný režim.
Upravit konfigurační soubor:
vim / etc / gitlab-runner / config.toml
Změňte sekci „privilegované“.
privilegovaný = pravda
Po úpravě uvidíte podobný soubor.
Poté restartujte Runner.
restart gitlab-runner
7. Nakonfigurujte proměnné pro GitLab PipeLine
Přidejte proměnné registru kontejneru
Klikněte na projekt -> Nastavení -> CICD -> Proměnné (klikněte na Rozbalit).
Přidejte následující klíč a přidejte hodnotu.
CI_REGISTRY_USER CI_REGISTRY_PASSWORD
Zde musíte přidat přihlašovací jméno a heslo pro GitLab.
Integrace se serverem SonarQube
Získejte token SonarQube a přidejte jej na GitLab. Přihlaste se na server SonarQube.
Přejít na Správa> klikněte na Zabezpečení> Uživatelé> Klikněte na Tokeny
Mělo by to otevřít tokenové okno.
Vygenerujte token s libovolným názvem -> Zkopírujte token.
Zkopírujte token a znovu přejděte na GitLab. Klikněte na projekt -> Nastavení -> CICD -> Proměnné
Přidejte novou proměnnou.
SONARQUBE_TOKEN
Vložte token sonaru na hodnotu „SONARQUBE_TOKEN“.
8. Vytvořte kanál
Následující soubory by měly být ve složce úložiště
a) Dockerfile
Abychom si vytvořili image, potřebujeme ukotvitelný soubor. Postupujte podle našeho průvodce docker file.
Tady je náš ukotvitelný soubor:
FROM ddarshana / alpinenode10 ENV NODE_ENV = production RUN apk add --update curl && rm -rf / var / cache / apk / * RUN mkdir / app WORKDIR / app COPY balíček.JSON . RUN npm install COPY ... CMD ["npm", "start"]
Přejděte do svého projektu a vytvořte nový soubor s názvem „Docker File.“
b) Přidat sonar-projekt.vlastnosti
Soubor vlastností sonaru by měl být v kořenovém adresáři našeho zdrojového kódu, aby bylo možné odesílat naskenovaná data na server SonarQube.
Tady je náš soubor:
# Požadovaný sonar metadat.projectKey = fosslinux sonar.projectName = fosslinux # Čárkami oddělené cesty k adresářům se zdroji (povinné) sonar.zdroje =./ # Jazykový sonar.jazyk = js sonar.profil = uzel # Kódování zdrojových souborů sonar.sourceEncoding = UTF-8
Přejděte na svůj projekt a vytvořte „sonar-project.vlastnosti.“
Já. Vytvořte soubor GitLab-CI
Přejděte do svého projektu a vytvořte soubor s názvem „.gitlab-ci.yml.“
Toto je náš spis.
fáze: - Lintové obrázky - Codequality - Vytváření a publikování proměnných obrázků: DOCKER_REGISTRY: gitlab.fosslinux.com: 5050 APP_NAME: podšívka fosslinux: fáze: obrázky chuchvalců obrázek: uzel: pouze 4-alpine: - hlavní skript: - npm install -g dockerlint && npm cache clean - najít ./ -name Dockerfile -exec dockerlint \; codequality: stage: Obrázek codequality: ddarshana / alpine-sonarscanner skript: - sonar-scanner -Dsonar.hostitel.url = https: // sonar.fosslinux.com -Dsonar.login = $ SONARQUBE_TOKEN -Dsonar.projectVersion = $ CI_PIPELINE_ID -Dsonar.pouze projectName = $ CI_PROJECT_NAME + $ CI_BUILD_REF_NAME: - hlavní publikování: fáze: Vytváření a publikování obrázků image: docker: 18.09.7 služeb: - přístavní dělník: 18.09.Pouze 7-dind: - hlavní skript: - přihlášení dockeru -u $ CI_REGISTRY_USER -p $ CI_REGISTRY_PASSWORD $ DOCKER_REGISTRY - docker build . -t $ DOCKER_REGISTRY / gitdemo / $ APP_NAME: $ CI_PIPELINE_ID - push dockeru $ DOCKER_REGISTRY / gitdemo / $ APP_NAME: $ CI_PIPELINE_ID - echo „push image $ APP_NAME: $ CI_PIPELINE_ID“ - odhlášení dockeru $ DOCKER_REGISTRY
Zde jsme pro náš Pipeline definovali tři fáze:
fáze: - Lintové obrázky - Codequality - Vytváření a publikování obrázků
Pro ukotvitelný registr a název aplikace jsou nastaveny proměnné.
proměnné: DOCKER_REGISTRY: gitlab.fosslinux.com: 5050 APP_NAME: fosslinux
Jakmile provedete změny v hlavní větvi, měl by se spustit kanál.
Jak vidíte, potrubí běží. Můžete vidět fáze potrubí.
Pokud jsou všechny fáze úspěšné, můžete vidět výstup následujícím způsobem.
Můžete kliknout na libovolné fáze a zobrazit jejich protokoly.
a) Zkontrolujte registr kontejneru.
Projekt -> Balíčky -> registr kontejnerů
Pak můžete vidět náš obrázek.
b) Zkontrolujte hlášení sonaru
Přihlaste se do SonarQube a uvidíte zprávu o našem projektu.
To je vše o vytvoření kanálu GitLab pomocí služby kontejneru GitLab a integrace Sonarqube.