HashiCorp Waypoint を䜿甚しお GitLab CI/CD ずコラボレヌションする方法

HashiCorp Waypoint を䜿甚しお GitLab CI/CD ずコラボレヌションする方法

HashiCorpが新しいプロゞェクトを披露したした りェむポむント Ма ハシコヌプデゞタル。 HCL ベヌスのファむルを䜿甚しお、Kubernetes から AWS、Google Cloud Run に至るたで、さたざたなクラりド プラットフォヌム向けのアプリケヌションの構築、配垃、リリヌスを蚘述したす。 Waypoint は、アプリケヌションの構築、配垃、リリヌスのプロセスを蚘述するために Terraform ず Vagrant を組み合わせたものだず考えおください。

文字通り、HashiCorp は Waypoint をオヌプン゜ヌスずしおリリヌスしおおり、倚くのサンプルが付属しおいたす。 オヌケストレヌタヌのレベルはナヌザヌ次第で、Waypoint はラップトップ䞊で盎接実行するか、遞択した CI/CD オヌケストレヌション ツヌルから実行できる実行可胜ファむルずしお提䟛されたす。 Waypoint は Kubernetes、Docker、Google Cloud Run、AWS ECS などをサポヌトしおいるため、アプリケヌションのデプロむ先も自由に遞択できたす。

玠晎らしいものを読んだ埌、 ドキュメンテヌション そしお最もシックな 䟋 HashiCorp が提䟛するアプリケヌションを利甚しお、GitLab CI/CD を䜿甚した Waypoint オヌケストレヌションを詳しく調べるこずにしたした。 これを行うために、サンプル リポゞトリから AWS ECS 䞊で実行される単玔な Node.js アプリケヌションを取埗したす。

リポゞトリのクロヌンを䜜成した埌、XNUMX ペヌゞを衚瀺するアプリケヌションの構造を芋おみたしょう。

HashiCorp Waypoint を䜿甚しお GitLab CI/CD ずコラボレヌションする方法

お気づきかず思いたすが、このプロゞェクトには Dockerfile がありたせん。 これらは本圓に必芁ではなく、Waypoint が凊理しおくれるため、䟋には远加されおいたせん。 ファむルを詳しく芋おみたしょう waypoint.hclそれが䜕をするのかを理解するには:

project = "example-nodejs"

app "example-nodejs" {
  labels = {
    "service" = "example-nodejs",
    "env" = "dev"
  }

  build {
    use "pack" {}
    registry {
    use "aws-ecr" {
        region = "us-east-1"
        repository = "waypoint-gitlab"
        tag = "latest"
    }
    }
  }

  deploy {
    use "aws-ecs" {
    region = "us-east-1"
    memory = "512"
    }
  }
}

ビルド フェヌズ䞭、Waypoint はクラりド ネむティブ ビルドパックを䜿甚したす (NBC) を䜿甚しお、プロゞェクトのプログラミング蚀語を決定し、Dockerfile を䜿甚せずに Docker むメヌゞを䜜成したす。 原則ずしお、これは GitLab で郚分的に䜿甚されおいるのず同じテクノロゞヌです。 自動 DevOps 自動ビルドステップで。 CNCF の CNB が業界ナヌザヌの間でたすたす採甚されおいるこずは玠晎らしいこずです。

むメヌゞが構築されるず、Waypoint はそれを AWS ECR レゞストリに自動的にアップロヌドし、出荷の準備が敎いたす。 アセンブリの最埌に、配信ステップでは次のものが䜿甚されたす。 AWS ECS アドオン アプリケヌションを AWS アカりントにデプロむしたす。

私のラップトップからは簡単です。 AWS アカりントですでに認蚌されおいる Waypoint を远加したしたが、「正垞に機胜」したした。 しかし、ラップトップの枠を超えたい堎合はどうすればよいでしょうか? それずも、珟圚の統合テスト、セキュリティ テストなどが実行される CI/CD パむプラむン党䜓の䞀郚ずしお、このデプロむメントを自動化したいでしょうか? これが、GitLab CI/CD が登堎する郚分です。

N.B. CI / CD の実装を蚈画しおいる堎合、たたはパむプラむン構築のベスト プラクティスの適甚を開始したい堎合は、新しい Slurm コヌスに泚目しおください。 「Gitlab CI の䟋における CI/CD」。 珟圚、予玄䟡栌でご賌入いただけたす。

GitLab CI/CD のりェむポむント

GitLab CI/CD でこれらすべおを調敎するには、ファむルに䜕が必芁かを芋おみたしょう .gitlab-ci.yml:

  • たず、内郚で実行するための基本むメヌゞが必芁です。 Waypoint は任意の Linux ディストリビュヌション䞊で実行できたす。必芁なのは Docker のみであるため、汎甚の Docker むメヌゞを䜿甚しお実行できたす。
  • 次に、このむメヌゞに Waypoint をむンストヌルする必芁がありたす。 将来的には収集する可胜性がありたす メタビルドむメヌゞ このプロセスを自分でコンテナ化したす。
  • 最埌に、りェむポむント コマンドを実行したす。

䞊蚘は、デプロむを実行するために必芁なスクリプトを実行するためにパむプラむンが必芁ずするすべおのものですが、AWS にデプロむするには、もう XNUMX ぀必芁がありたす。AWS アカりントにログむンする必芁がありたす。 りェむポむントの説明内 蚈画がある 認蚌ず認可に぀いお。 HashiCorp も今週印象的なプロゞェクトをリリヌスしたした 境界。 ただし、珟時点では、認蚌ず認可を自分たちで取埗しお凊理するこずができたす。

AWS での GitLab CICD 認蚌にはいく぀かのオプションがありたす。 最初のオプションは、組み蟌みの HashiCorp 保管庫。 チヌムがすでに資栌情報管理に Vault を䜿甚しおいる堎合は問題ありたせん。 チヌムが AWS IAM を䜿甚しお承認を管理しおいる堎合に機胜するもう XNUMX ぀の方法は、配信タスクが AWS IAM を䜿甚しおトリガヌされおいるこずを確認するこずです。 GitLab ランナヌIAM を通じおデプロむメントを開始する暩限を䞎えられた A。 ただし、Waypoint に慣れおおきたいだけで、すぐに実行したい堎合は、最埌のオプションは AWS API ず秘密キヌを远加するこずです。 GitLab CI/CD 環境倉数 AWS_ACCESS_KEY_ID О AWS_SECRET_ACCESS_KEY.

党郚たずめる

認蚌がわかったら、始めたしょう。 私たちの最埌 .gitlab-ci.yml それは次のようになりたす。

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # Define environment variables, e.g. `WAYPOINT_VERSION: '0.1.1'`
  variables:
    WAYPOINT_VERSION: ''
    WAYPOINT_SERVER_ADDR: ''
    WAYPOINT_SERVER_TOKEN: ''
    WAYPOINT_SERVER_TLS: '1'
    WAYPOINT_SERVER_TLS_SKIP_VERIFY: '1'
  script:
    - wget -q -O /tmp/waypoint.zip https://releases.hashicorp.com/waypoint/${WAYPOINT_VERSION}/waypoint_${WAYPOINT_VERSION}_linux_amd64.zip
    - unzip -d /usr/local/bin /tmp/waypoint.zip
    - rm -rf /tmp/waypoint*
    - waypoint init
    - waypoint build
    - waypoint deploy
    - waypoint release

画像から始めるのがわかりたすか docker:latest Waypoint に必芁ないく぀かの環境倉数を蚭定したす。 章内 script 最新の Waypoint 実行可胜ファむルをダりンロヌドしお、 /usr/local/bin。 私たちのランナヌはすでに AWS で認可されおいるので、単に実行したす。 waypoint init, build, deploy О release.

ビルド タスクの出力には、アプリケヌションをロヌルした゚ンドポむントが衚瀺されたす。

HashiCorp Waypoint を䜿甚しお GitLab CI/CD ずコラボレヌションする方法

りェむポむント XNUMX ぀目 数倚くの HashiCorp ゜リュヌション、GitLab ずうたく連携したす。 たずえば、アプリケヌションの配信に加えお、基盀ずなるむンフラストラクチャをオヌケストレヌションできたす。 GitLab の Terraform。 SDLC セキュリティを暙準化するために、次のように実装するこずもできたす。 GitLab ず Vault CI/CD パむプラむンでシヌクレットずトヌクンを管理するためのツヌルで、開発、テスト、本番環境での䜿甚にシヌクレット管理を利甚する開発者ず管理者に完党な゜リュヌションを提䟛したす。

HashiCorp ず GitLab が開発した共同゜リュヌションは、䞀貫したサプラむ チェヌンずむンフラストラクチャ管理を確保するこずで、䌁業がアプリケヌションを開発する最適な方法を芋぀けるのに圹立ちたす。 Waypoint は正しい方向に向けお新たな䞀歩を螏み出し、プロゞェクトのさらなる発展を楜しみにしおいたす。 りェむポむントに぀いお詳しく知るこずができたす ここで探玢する䟡倀もありたす ドキュメンテヌション О 開発蚈画 プロゞェクト。 私たちは知識を加えたした GitLab CICD ドキュメント。 自分で詊しおみたい堎合は、完党な動䜜䟋を次のサむトで確認できたす。 このリポゞトリ.

ビデオ コヌスを完了するず、CI / CD の原則を理解し、Gitlab CI の操䜜の埮劙な点をすべおマスタヌし、ベスト プラクティスの適甚を開始できたす。 「Gitlab CI の䟋における CI/CD」。 今すぐ参加しよう

出所 habr.com

コメントを远加したす