В днешния урок ще използваме регистъра на контейнери GitLab за съхраняване на изображения. Моля, обърнете се към нашето ръководство за GitLab за инсталиране и конфигурации на GitLab.
Нека първо започнем с инсталирането на контейнер.
1. Конфигурирайте регистъра на контейнера
Придвижете се до администраторската област и първото нещо, което забелязвате, е регистърът на контейнера е изключен по подразбиране.
Инсталирайте регистъра на контейнера
Трябва да модифицираме конфигурационния файл на GitLab. Въведете следната команда:
а) Модифицирайте gitlab.rb
vim / etc / gitlab / gitlab.rb
Променете следния ред:
registry_external_url 'https: // gitlab.fosslinux.com: 5050 '
Сега URL адресът на системния регистър се слуша на HTTPS под съществуващия GitLab URL с различен порт.
б) След модификацията трябва да преконфигурирате Gitlab.
gitlab-ctl преконфигуриране
След като приключите, отидете в администраторската област и този път трябва да видите активирана.
в) Тествайте влизането в контейнера от друга машина. Имайте предвид обаче, че Docker трябва да бъде инсталиран на тази система.
docker вход gitlab -.fosslinux.com: 5050
Местоположението на магазина за изображения по подразбиране е както следва:
/ var / opt / gitlab / gitlab-rails / shared / registry
Ако искате да промените пътя, използвайте VIM, за да го редактирате.
vim / etc / gitlab / gitlab.rb
Променете следния ред:
gitlab_rails ['registry_path'] = "/ път / към / регистър / съхранение"
След това преконфигурирайте.
gitlab-ctl преконфигуриране
2. Създаване на проект
Ще създадем нов проект за тръбопровод. За да направите това, отидете в Административната зона.
Трябва да видите Административна зона, подобна на тази:
След това кликнете върху Нова група.
Можете да дадете произволно име на вашата група. След това въведете име за URL адреса на проекта. Тук нивото на видимост е „Частно“; създадохме група, наречена „gitdemo.”
След това отново отидете на Административна зона -> Нов проект
Дайте име на проекта. Изберете предварително създадената група за проекта.
След като създадете проект, можете да добавите примерен файл към хранилището.
3. Активиране на регистъра на контейнери за проект
Отидете на Настройки на проекта -> Общ и след това разширете Видимост, характеристики на Projet, разрешения.
След това активирайте Регистър на контейнери.
Сега отидете на вашия проект и можете да видите регистъра на контейнерите в раздела за пакети.
4. Деактивирайте AutoDevops
Отидете до вашия проект -> Настройки -> CICD
След това разширете Auto DevOps и премахнете избора “По подразбиране на Auto DevOps тръбопровод.”
5. Създайте SSH ключ от машината клиент / разработчик
Тук ще създадем ssh ключ и ще се удостоверим с нашия GitLab. След това можем да натискаме, дърпаме, клонираме git хранилища от нашата клиентска машина.
а) Изпълнете следната команда за генериране на ключ:
ssh-keygen -t rsa -b 4096 -C "darshana @ fosslinux.com "
б) Копиране на публичен ключ:
котка ~ /.ssh / is_rsa_pub
Сега влезте в сървъра на GitLab. Отидете на Профил -> SSH ключове
в) Добавете копиран ключ към секцията с ключове и запазете.
г) Сега трябва да вземем Url за Clone repo с помощта на SSH.
Отидете на вашия проект -> Клониране.
Копирайте клонинг с ssh URL.
Преди да клонираме хранилището на нашата машина, трябва да инсталираме “git”
Инсталирайте git на клиент-сървър:
yum инсталирате git -y
Сега ще клонираме хранилището и ще натиснем нашия код в хранилището Gitlab.
Git глобална настройка
git config --global потребител.име "Даршана"
git config --global потребител.имейл "darshana @ fosslinux.com "
Изпълнете следната команда, за да клонирате хранилището:
git clone git @ git.fosslinuxcom: gitdemo / fosslinux.git
Копирайте изходния си код в клонираната папка.
Отидете в клонираната папка:
cd fosslinux
Сега натиснете кода в хранилището:
git add .
git статус
git commit -m "демонстрационни файлове на проекта"
git push
6. Инсталирайте GitLab Runner
Препоръчително е да инсталирате GitLab Runner на сървър, отделен от мястото, където е инсталиран GitLab. Можете да го инсталирате и на същия сървър, ако все още го искате по този начин.
Тук ще използваме изпълнител на Docker; следователно трябва да инсталираме Docker преди да използваме Runner.
а) Изпълнителят на Docker
GitLab Runner може да използва Docker за изпълнение на задания на предоставени от потребителя изображения, поради използването на Docker изпълнител.
Изпълнителят на Docker, когато се използва с GitLab CI, се свързва с Docker Engine и изпълнява всяка компилация в изолиран контейнер, използвайки предварително дефинираното изображение, конфигурирано във файла Gitlab CI. Ще видим файла на Gitlab CI, когато обсъдим тръбопровода.
Инсталиране на хранилище:
curl -L https: // пакети.gitlab.com / install / repositories / runner / gitlab-runner / script.деб.ш | баш
Инсталирайте Runner:
apt-get инсталирайте gitlab-runner
Проверете състоянието на Runner:
gitlab-runner статус
Регистрирайте Runner
Тук ще добавим споделен Runner. Отидете на Административна зона -> Бегачи.
Тогава можете да видите Настройте ръчно споделен бегач раздел. Нуждаем се от нашия Gitlab URL и токен за регистрирания бегач.
Стартирайте Регистрация на бегач
Изпълнете следната команда, за да регистрирате Runner.
регистър на gitlab-runner
Трябва да зададе няколко въпроса. Отговори на следните въпроси.
а) Въведете URL адреса на вашия екземпляр на GitLab:
Моля, въведете URL адреса на координатора на gitlab-ci (напр.ж. https: // gitlab.com) https: // gitlab.fosslinux.com
б) Въведете токена, който сте получили, за да регистрирате бегача:
Моля, въведете gitlab-ci маркера за този бегач xxxxxxxxxxxxxxxxxxxxxxx
в) Въведете описание за Бегача; можете да промените това по-късно в потребителския интерфейс на GitLab:
Моля, въведете описанието на gitlab-ci за този бегач [име на хост] Docker-бегач
г) Въведете маркерите, свързани с Runner; можете да промените това по-късно в потребителския интерфейс на GitLab:
Моля, въведете gitlab-ci таговете за този бегач (разделени със запетая): master, dev, qa
д) Въведете изпълнителя на Runner:
Моля, въведете изпълнителя: ssh, docker + машина, docker-ssh + машина, kubernetes, docker, паралели, virtualbox, docker-ssh, shell: docker
е) Ако сте избрали Docker за свой изпълнител, ще бъдете помолени изображението по подразбиране да се използва за проекти, които не дефинират такъв в .gitlab-ci.yml:
Моля, въведете изображението на Docker (напр. рубин: 2.6): алпийски: последен
Сега Runner се регистрира успешно.
Рестартирайте Runner
gitlab-runner рестартиране
Сега опреснете страницата Бегачи (Административна зона -> Бегачи). Можете да видите новодобавения Runner.
Трябва да променим някои настройки за Runner. Така че кликнете върху маркера.
След това изберете „Стартиране на маркирани задачи“ и запазете промените.
Променете конфигурациите на бегачите на Gitlab
Ще използваме докер в докер (dind) режим в тръбопровода GitLab, така че трябва да използваме привилегировано = вярно в нашите Docker контейнери. Затова ще активираме привилегирован режим.
Редактиране на конфигурационния файл:
vim / etc / gitlab-runner / config.toml
Променете раздела „привилегировани“.
привилегировано = вярно
След модификацията можете да видите файл, подобен на този.
След това рестартирайте Runner.
gitlab-runner рестартиране
7. Конфигурирайте променливи за GitLab PipeLine
Добавете променливи в системния регистър
Щракнете върху проект -> Настройки -> CICD -> Променливи (щракнете върху Разгъване).
Добавете следното към ключа и добавете стойност.
CI_REGISTRY_USER CI_REGISTRY_PASSWORD
Тук трябва да добавите GitLab вход и парола.
Интегрирайте се със сървъра SonarQube
Вземете токена SonarQube и го добавете към GitLab. Влезте в сървъра SonarQube.
Отидете на Администриране> щракнете върху Сигурност> Потребители> Щракнете върху Токени
Той трябва да отвори символен прозорец.
Генериране на маркер с произволно име -> Копиране на маркера.
Копирайте маркера и отидете отново в GitLab. Щракнете върху проект -> Настройки -> CICD -> Променливи
Добавете нова променлива.
SONARQUBE_TOKEN
Поставете тонара на сонара към стойността „SONARQUBE_TOKEN“.
8. Създайте тръбопровод
Следните файлове трябва да са в папката на хранилището
а) Dockerfile
Имаме нужда от докер файл, за да изградим нашето изображение. Следвайте нашето ръководство за докер файлове.
Ето нашия докер файл:
ОТ ddarshana / alpinenode10 ENV NODE_ENV = производство RUN apk добавяне - актуализиране на curl && rm -rf / var / cache / apk / * RUN mkdir / app WORKDIR / app COPY пакет.json . РАБОТА npm инсталиране КОПИРАНЕ ... CMD ["npm", "start"]
Отидете на вашия проект и създайте нов файл, наречен „Docker File.”
б) Добавяне сонар-проект.Имоти
Файлът на свойствата на Sonar трябва да е в основната директория на нашия изходен код, за да изпраща данни за сканиране към SonarQube Server.
Ето нашия файл:
# Необходим сонар за метаданни.projectKey = сонар за fosslinux.projectName = fosslinux # Пътища, разделени със запетая, до директории с източници (задължителен) сонар.източници =./ # Езиков сонар.език = js сонар.profile = node # Кодиране на сонарни файлове с източници.sourceEncoding = UTF-8
Отидете на вашия проект и създайте „sonar-project.Имоти.”
Аз. Създайте GitLab-CI файл
Отидете на вашия проект и създайте файл, наречен „.gitlab-ci.yml.”
Това е нашият файл.
етапи: - Lint изображения - Codequality - Изграждане и публикуване на променливи изображения: DOCKER_REGISTRY: gitlab.fosslinux.com: 5050 APP_NAME: свързване на fosslinux: stage: Lint images image: node: 4-alpine: - master script: - npm install -g dockerlint && npm cache clean - find ./ -name Dockerfile -exec dockerlint \; codequality: етап: изображение на Codequality: ddarshana / alpine-sonarscanner script: - sonar-scanner -Dsonar.домакин.url = https: // сонар.fosslinux.com -Dsonar.вход = $ SONARQUBE_TOKEN -Dsonar.projectVersion = $ CI_PIPELINE_ID -Dsonar.projectName = $ CI_PROJECT_NAME + $ CI_BUILD_REF_NAME само: - главно публикуване: етап: Изграждане и публикуване на изображения image: docker: 18.09.7 услуги: - докер: 18.09.Само 7-динд: - главен скрипт: - вход за докер -u $ CI_REGISTRY_USER -p $ CI_REGISTRY_PASSWORD $ DOCKER_REGISTRY - изграждане на докер . -t $ DOCKER_REGISTRY / gitdemo / $ APP_NAME: $ CI_PIPELINE_ID - docker push $ DOCKER_REGISTRY / gitdemo / $ APP_NAME: $ CI_PIPELINE_ID - echo "push image $ APP_NAME: $ CI_PIPELINE_ID" - докер изход $ DRYER_
Тук дефинирахме три етапа за нашия тръбопровод:
етапи: - Линтови изображения - Кодекс - Създаване и публикуване на изображения
Променливите са зададени за регистъра на докер и името на приложението.
променливи: DOCKER_REGISTRY: gitlab.fosslinux.com: 5050 APP_NAME: fosslinux
След като извършите промени в главния клон, тръбопроводът трябва да започне.
Както виждате, тръбопроводът работи. Можете да видите етапите на тръбопровода.
Ако всички етапи са успешни, можете да видите резултата, както следва.
Можете да кликнете върху всякакви етапи и да видите техните дневници.
а) Проверете регистъра на контейнера.
Проект -> Пакети -> регистър на контейнери
Тогава можете да видите нашето изображение.
б) Проверете отчета на сонара
Влезте в SonarQube и можете да видите отчета за нашия проект.
Това е всичко за създаването на тръбопровод GitLab с контейнерна услуга GitLab и интеграция Sonarqube.