재미를 위해 Argo Tunnels 및 컨테이너로 간단한 포트폴리오 배포 🚀 - 1부
저에게 문제는 관심 기반 학습이 있다는 것입니다. 프로젝트에 관심이 없으면 진행할 수 없습니다. 그래서 포트폴리오를 업데이트하기로 했어요! 그러나 연속 배포, podman 및 Argo 터널을 사용합니다!
이 게시물에서 경험하게 될 것들:
Cloudflared 설치 및 설정을 시작하겠습니다.
시작하기 전에 following을 확인하십시오.
As of now you need a domain name and you need to change the nameservers to that of Cloudflare, which is a bit irritating to do in case you cannot afford a domain name or you do not wish to use their nameservers. I hope they remove this dependency in the future.
먼저 Downloads section로 가서 편한 방법을 선택하세요.
저는 Rocky Linux를 사용하고 있어서 amd64/x86-64 RPM을 다운받았습니다.
$ wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm
wget
가 설치되어 있지 않은 경우 다음을 사용하여 Centos/Rocky Linux에서 설치할 수 있습니다.$ sudo yum install -y wget
or
$ sudo dnf install -y wget
파일을 다운로드하는 다른 방법은 다음을 확인하십시오link.
최신 다운로드 장소인 Github releases page에서 직접 다운로드하여 cloudflared를 설치할 수도 있습니다.
터널을 만들려면 팔로우the docs
다음을 실행하면 내가 원하는 것이 아닌 글로벌 시스템 서비스가 생성됩니다.
cloudflared --config config.yaml service install
Tunnel을 만드는 방법은 다음을 참조하십시오.
내 사용자 디렉토리에 구성을 다음과 같이 만들었습니다.
.cloudflared/config.yml
tunnel: Tunnel ID
credentials-file: /home/leon/.cloudflared/TunnelID.json
ingress:
- hostname: leonnunes.dev
service: http://localhost:8080
#Catch-all rule, which just responds with 404 if traffic doesn't match any of
# # the earlier rules
- service: http_status:404
이를 시스템 폴더
/etc/cloudflared/cloudflared-config.yaml
에 복사하고 관련 systemd 구성을 생성합니다.~/.config/systemd/user/cloudflared.service
에서 다음을 생성할 수 있습니다.[Unit]
Description=Argo Tunnel
After=network.target
[Service]
TimeoutStartSec=0
Type=notify
ExecStart=/usr/bin/cloudflared --config /home/leon/.cloudflared/config.yml --no-autoupdate tunnel run
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target default.target
그런 다음 사용
systemctl --user daemon-reload
and
systemctl --user enable --now cloudflared.service
이것이 실행 중인지 확인하려면
systemctl --user status cloudflared.service
cloudflared.service - Argo Tunnel
Loaded: loaded (/home/leon/.config/systemd/user/cloudflared.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-09-30 12:26:47 IST; 8min ago
Main PID: 4689 (cloudflared)
CGroup: /user.slice/user-1000.slice/[email protected]/cloudflared.service
└─4689 /usr/bin/cloudflared --config /home/leon/.cloudflared/config.yml --no-autoupdate tunnel run
Sep 30 12:26:46 rk-minikube cloudflared[4689]: 2021-09-30T06:56:46Z INF Settings:
이것이 Cloudflared 설정의 전부입니다.
이제 podman을 사용하여 Gitlab 러너를 설정해 보겠습니다.
Gitlab docker documentation은 개요를 제공합니다. 이것이 제가 한 일입니다.
# Create a volume gitlab-test
$ podman volume create gitlab-test
# Register the gitlab runner
$ podman run --rm -it -v gitlab-test:/etc/gitlab-runner:Z gitlab/gitlab-runner:alpine register --docker-privileged
# I had to give the `--docker-privileged` flag without that it wouldn't let me connect to the docker socket.
gitlab 러너를 시작할 시간입니다.
$ podman run -dit --security-opt label=disable --name gitlab-runner-priv -v /run/user/1000/podman/podman.sock:/var/run/docker.sock -v gitlab-runner-config:/etc/gitlab-runner:Z gitlab/gitlab-runner:alpine
Important Notes(Security):
- Mounting the podman socket, is the equivalent of giving full access to the containers under that user. From a security standpoint this is dangerous so please use a locked-down environment and not a public environment.
- --security-opt label=disable means SELinux labelling won't happen, in other words, if you do not do this SELinux will complain that your container isn't supposed to access the podman socket.
부팅 시 GitLab 실행기를 시작하려면 이렇게 하면 됩니다.
# change directory to the user.
$ cd ~
$ podman generate systemd gitlab-runner-priv| tee .config/systemd/user/gitlab-runner.service
# Enable on boot
$ systemctl --user enable --now gitlab-runner.service
많은 미루는 끝에 이만큼 완료할 수 있었습니다. Gitlab CI/CD 파이프라인을 배포할 파트 2를 계속 지켜봐 주시기 바랍니다.
Reference
이 문제에 관하여(재미를 위해 Argo Tunnels 및 컨테이너로 간단한 포트폴리오 배포 🚀 - 1부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mediocredevops/deploying-a-simple-portfolio-with-argo-tunnels-and-containers-for-fun-part-1-24f0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)