Argotunnels (2 серии части)
Хорошо, теперь, когда я наконец закончил с первой частью этого сообщения в блоге, вот часть 2!
К настоящему времени у вас должен быть работа Cloudflare Argo Tunnel и Gitlab Runner.
$ podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 31f46243cbe9 docker.io/gitlab/gitlab-runner:alpine run --user=gitlab... 8 days ago Up About an hour ago gitlab-runner $ systemctl --user status cloudflared Loaded: loaded (/home/leon/.config/systemd/user/cloudflared.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-10-10 14:51:26 IST; 1h 8min ago
Для работы CI/CD Gitlab вам нужно добавить .gitlab-ci.yml
, в корневой папке вашего проекта это похоже на основной ингредиент.
Это то, что мой .gitlab-ci.yml
выглядит как.
stages: - publish - deploy variables: TAG_LATEST: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:latest TAG_COMMIT: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA # Begin building the image publish: image: quay.io/podman/stable:latest stage: publish tags: - publish script: - podman build -t $TAG_COMMIT -t $TAG_LATEST . - podman login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY - podman push $TAG_COMMIT - podman push $TAG_LATEST # Deployment deploy: image: alpine:latest stage: deploy tags: - deployment before_script: - apk update && apk add openssh-client - mkdir -p ~/.ssh - chmod 700 ~/.ssh - eval $(ssh-agent -s) - echo "${PK_KEY}" |tr -d '\r' | ssh-add - - ssh-keyscan $SERVER_IP script: - ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "podman login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY" - ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "podman pull $TAG_COMMIT" - ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "podman container rm -f $WEB_NAME || true" - ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "podman run -d -p 8080:80 --name $WEB_NAME $TAG_COMMIT" environment: name: production url: https://portfolio.afro-coder.com/ # Run only on the main branch only: - main
Теперь давайте погрузимся в некоторые из важных переменных здесь, их необходимо определить в вашем репозитории Gitlab (индивидуальный репозиторий) => Настройки => CI/CD =>.
Убедитесь, что вы маскируете важные и чувствительные переменные, и защищали их, чтобы они не появлялись в ваших журналах, ваше имя пользователя также должно быть длиннее 4 Chars, чтобы замаскировать его, а также соответствовать их критериям корпорации.
- $ Server_user — SSH Login для пользователя.
- $ Server_ip — виртуальная машина, где вы запускаете эти контейнеры
- $ Web_name — имя контейнера, которое вы хотели бы сохранить
- $ Pk_key — закрытый ключ, используемый для SSH для сервера. Вы можете использовать
ssh-keygen
Чтобы создать ключ и добавить открытый ключ к вашему.ssh/autorized_keys
файл
Дополнительную документацию по переменным Gitlab можно найти здесь
Теперь продолжайте и совершите этот файл в свой репозиторий.
git add .gitlab-ci.yml git commit -s -m "Added Gitlab CI" git push -u
Если ваш Gitlab CI/CD не работает после того, как подтолкнул его к основной ветви. Пересмотрите имя ветви и теги, которые вы дали своему бегуну, они должны соответствовать тому, что в файле .gitlab-ci.yml
Если ваша сборка идет успешно, вы должны увидеть следующее.
После строительства трубопровода контейнер должен работать на хосте
$ podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 31646243cbe9 docker.io/gitlab/gitlab-runner:alpine run --user=gitlab... 8 days ago Up 16 minutes ago gitlab-runner-priv 4930b205caa1 registry.gitlab.com/leon9923/new-portfolio/main:c2054av4 httpd-foreground 15 minutes ago Up 15 minutes ago 0.0.0.0:8080->80/tcp portfolio.afro-coder.com
И вот и все, теперь у вас есть самостоятельно без корней (но все же неуверенный, если не защищен правильно.) gitlab ci/cd с туннелями Podman и Argo, и это работает!
Моей следующей целью было бы создать пользовательского исполнителя для Gitlab, который использует Podman без интерфейса Docker вообще, спасибо за чтение!
Argotunnels (2 серии части)
Оригинал: «https://dev.to/afrocoder/deploying-a-simple-portfolio-with-argo-tunnels-and-containers-for-fun-part-2-2n8l»