楽しみのためにArgoトンネルと容器で単純なポートフォリオを展開すること🚀 - 第1部


先日、私はアルゴトンネルを使用したときに、私は、それはあなたのローカルマシンからインターネットにブリッジを構築するソフトウェアのきちんとした作品は、私はそれについて

私との問題は、私は興味ベースの学習を持っている場合は、プロジェクトに興味がない私はそれを進めることができなくなります.それで、私は私のポートフォリオを更新することに決めました!しかし、連続展開、ポッドマンとARGOトンネルを使用して!

あなたがこのポストで経験を得るもの

  • ポッドマンを使用してgitlabランナーセットアップ
  • システムを使用したCloudfiledトンネルセットアップ
  • コンテナを使用してGitlab CI/CDを使用して連続展開!
  • 完全にルートなしのセットアップを実行する
  • CloudFireのインストールとセットアップを始めましょう.
    前に起動してください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 そして、あなたが快適である方法を選んでください.
    私はロッキーLinuxを使用しているので、私はAMD 64
     $ wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm
    
    あなたが持っていないならばwget あなたがそうすることができるインストールインストール
    $ sudo yum install -y wget
    or
    $ sudo dnf install -y wget
    
    ファイルをダウンロードする別の方法link
    また、1から直接ダウンロードしてCloudfireをインストールすることもできますGithub releases page , これは、最新の場所からダウンロードすることです.
    トンネルを作成するには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 関連するシステム設定を作成します.
    つは次のように作成できます~/.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:
    
    それはCloudfresセットアップのためです.
    さあ、ポッドマンを使ってGitLabランナーをセットしましょう.
    The 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):

    1. 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.
    2. --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のために調整されたままでいました.