TECHSTEP

ITインフラ関連の記事を公開してます。

GitLab Wikiの紹介

今回はGitLab Wikiを紹介します。 docs.gitlab.com 背景 GitLab WIkiはGItLab Projectで利用できるWikiページを提供する機能です。GitLab WikiはMarkdown / AsciiDoc / Rdoc / Orgをサポートしているほか、Wikiのページはサイドバーに表示され、サイドバーは…

GitLab Description templateでIssue/Merge requestのテンプレートを用意する

今回はGitLabのDescription templateの紹介です。 docs.gitlab.com 背景 GitLabには、あらかじめ用意したテンプレートを使い、GitLab上での作業をらくにする機能がいくつか提供されています。今回は Description template という、Issue template / Merge re…

GitLabとActive Directoryを連携する

今回はGitLabとActive Directoryとを連携したユーザー管理の紹介です。 docs.gitlab.com 背景 以前GitLabのユーザーについて紹介しましたが、GitLabはLDAPと統合したユーザー認証機能を提供しています。GitLabとActive Directoryの連携はLDAPによるユーザー…

GitLabコンテナレジストリへのアクセス権限

今回はGitLabコンテナレジストリの権限周りについて整理しました。 docs.gitlab.com 背景 GitLabはProject/Groupごとにコンテナレジストリを提供する機能があります。GitLabはProject/Groupごとに、どのユーザーにどんな権限を付与するかをRoleで制御します…

GitLab CLI (glab) を使ってみる

今回はGitLabが提供する glab というCLIツールを紹介します。 gitlab.com 背景 glab はコマンドラインからGitLabの各種APIにアクセスすることで、Webブラウザを開くことなくGitLabの情報を確認する手段を提供します。例えばIssueを確認してタスクを確認した…

GitLab Container Scanningを実施する

今回はGitLabの提供するコンテナイメージのスキャン機能を検証します。 docs.gitlab.com 背景 GitLabのコンテナスキャン機能は、GitLab CI/CDでコンテナイメージスキャンのJobを実行し、レジストリに配置したイメージを検査して結果を出力します。 GitLabの…

GitLab roleを整理する

今回はGitLabで利用できるロールを簡単に整理します。 docs.gitlab.com 背景 GitLabユーザーをProject/Groupに追加するとき、ユーザーに対して何らかのRoleを付与します。Roleは、あらかじめ用意されたDefault Roleと、ユーザーが作成したCustomr Roleがあり…

GitLab CI/CD Catalogの紹介

今回はGitLab 16.7でベータ版をリリースしたCI/CD Catalogを紹介します。 docs.gitlab.com 背景 GitLab CI/CD Catalogの前に、CI/CD componentsについて理解する必要があります。 CI/CD componentsはGitLab内部で再利用可能なパイプラインのユニットです。CI…

GitLab Runnerのネットワーク要件を調査する

今回はGitLab Runnerのネットワーク要件を調査しました。なお検証後に該当のドキュメントを見つけてしまったので、検証の意味はあまりないです。 背景 以前GitLab Runnerの登録と利用を検証したのですが、GitLab Runnerを利用するときのネットワーク要件が明…

GitLab includeでワークフローを再利用する

今回はGitLab CI/CDで利用できるキーワードの中から、.gitlab-ci.yml から同じProject上の別のファイル、別Project上のファイルを呼び出せる include について検証しました。 docs.gitlab.com docs.gitlab.com 背景 検証 include:local include:project incl…

GitLab RunnerとしてLinuxサーバーを登録する

今回はAmazon EC2インスタンスをGitLab Runnerとして登録する手順について紹介します。 背景 GitLab RunnerはGitLab CI/CDパイプラインの実行基盤です。GitLab SaaS版を利用する場合、Shared Runnerという共有リソースを利用できますが、セキュリティ等の理…

CloudFormationのGit SyncをGitLabで動かしてみる

今回は2023年に公開されたCloudFormation Git Syncを紹介します。 aws.amazon.com 背景 AWS CloudFomationはAWSリソースを対象とするIaCツールです。CloudFormationのコード管理はGitHub / GitLabなどのGitホスティングサービスを利用することが多いですが、…

GitLab for Slack appを使用してGitLabのイベントをSlackに通知する

今回はGitLab for Slack appを設定する例を紹介します。 docs.gitlab.com 背景 GitLabとSlackを連携する方法は、現在は GitLab for Slack app の利用が推奨されています。以前は Slack notification も選択肢でしたが、こちらはGitLab 15.9 でdeprecatedとな…

GitLab CI/CDでAmazon ECSサービスを更新する

今回はGitLab CI/CDでコンテナイメージを作成し、作成したイメージを使ってAmazon ECSのサービスを更新する例を紹介します。 背景 GitLab CI/CDからAmazon ECSサービスを更新するには、大きく2つの方法があります。 .gitlab-ci.yml にスクリプトを記載する i…

GitLab CI/CDチュートリアルを実施する

今回はGitLab CI/CDを使い始めるため、GitLabの案内するチュートリアルをやってみたのでそちらの紹介です。 docs.gitlab.com GitLab CI/CDとは GitLabのCI/CDを理解するうえで、事前にいくつかの用語を整理しておきます。 .gitlab-ci.yml GitLab CI/CDを利用…

GitLab Projectの作成方法の整理

今回はGitLabのProjectの作成方法を整理します。 背景 GtiLabの機能を利用するには、 Project というリソースを用意する必要があります。Projectの作成方法は複数あるため、ここではそれらを整理・検証します。 docs.gitlab.com GitLab Projectを作成するに…

GitLabに複数ユーザーを一括で追加する

今回はGitLabに複数ユーザーを一括で追加する方法について、その一例を紹介します。 背景 GitLab Self-managed版は、Web画面からユーザーを追加する場合、現状1ユーザーずつしか登録することができません。一方で、GitLabインスタンスを作成してプロジェクト…

GitLabのユーザー作成方法を整理する

今回はGitLabでユーザーを作成する方法について整理します。 背景 GitLabでは複数の方法でユーザーを作成できます。 サインインページで作成 管理画面から作成 認証インテグレーション APIから作成 Rakeコマンドラインから作成 IaCツールから作成 docs.gitla…

GitLab Self-managedでGmailを利用してメール送信を実現する

今回はGitLab Self-managedインスタンスからメール送信を有効にするため、Gmailを利用した例を紹介します。 GitLab Self-managedインスタンスの作成方法は前回の記事を参照してください。 背景 GitLab Self-managed版は、ユーザー作成後のパスワード更新など…

GitLab Self-managed環境をAmazon EC2に構築する

今回はGitLab Self-managed環境をAmazon EC2上に構築する例を紹介します。なお、ここではあくまでテスト用の環境構築を想定しているので、本番環境では使用しないでください。 背景 検証 AWS CloudFormationによるインスタンス等の作成 rootアカウントでログ…

Amazon EKSをAWS CloudFormationで作成する

今回はAmazon EKSをAWS CloudFormationで作成した例を紹介します。Web上で少し調べてもEKSをCloudFormationで作成する例があまり見当たらなかったので、今回作成してみました。 検証 作成は以下の流れで実施しました。 eksctlからクラスターを作成 CloudForm…

「詳解Terraform」の感想と読書メモ

今回は 詳解 Terraform 第3版 を一通り読んだので、その感想を簡単に残しておこうと思います。 TerraformはIaCツールの中でもかなり市民権を得ていると感じるツールです。にもかかわらず、ここ最近個人的にTerraformを使う機会もなく、情報を追いかけられて…

IaCの継続的テストを検証する: Amazon EC2に対するテスト

背景 前回AWS CloudFormationで管理するAmazon S3に対し、CI/CDによる継続的なテストと更新を検証しましたが、今回はAmazon EC2を対象に検証してみました。 Amazon EC2で気を付けた点 まず、Amazon EC2に対してテストを行う前に、以前のAmazon S3と比べて異…

IaCの継続的テストを検証する: Amazon S3に対するテスト

背景 以前IaCの書籍をいくつか取り上げ、IaCのテストをどう実行すべきか調査したことがありました。書籍の中には具体的なツールや例を取り上げて記載されている箇所もありますが、やはり実際に動かしてみることで見えることもあると思い、今回簡単に検証して…

rainを使ってCloudFormationのデプロイを楽にする

AWS

今回はCloudFormationのデプロイをより便利にする rain コマンドを試しました。 rainとは rainは複数のコマンドが用意されており、それぞれの特徴は公式リポジトリ に記載されています。特によく使いそうなものをいくつか取り上げます。 rain deployによるイ…

Manning Publication IaC本を読んでIaCのテストを学ぶ

IaC

今回はManning Publicationsから2022年に出版された Infrastructure as Code Practices and Patterns の中から、IaCのテストに関連する部分を取り上げます。 www.manning.com 前提 テストのサイクル 静的解析 動的解析 テストの種類 unit test contract test…

【メモ】AWS CloudFormation Guardを試す

AWS

CloudFormation Guardとは cfn-guardを検証する インストール rulegen validate AWS ELBのログ有効化をテストする 参考リンク CloudFormation Guardとは AWS CloudFormation Guard (以降cfn-guard) は、汎用的なPolicy as Codeを実現するOpen Sourceツールの…

O'Reilly IaC本を読んでIaCのテストについて学ぶ

IaC

今回はO'Reilly社から2020年に出版された Infrastructure as Code (2nd Edition) を読み、IaCに対するテストについて個人的に気になった箇所などを書き留めていきます。 www.oreilly.com 目的 前提 IaCとは 2つ目のCore Practice IaCをテストするうえでの課…

【メモ】PRを作成したら対象ブランチ名を変更してCodePipelineを起動する

以前CodeBuildでPull Requestごとに特定のCommit IDをターゲットにビルドを実行する方法を調べましたが、今回はAWS CodePipelineで同じことを実現しようとしました。 背景 AWS CodePipelineはAWSサービスの一つでフルマネージドな継続的デリバリーサービス …

【メモ】EventBridge Input Transformationを利用してCodeBuild起動時のCommit IDを指定する

背景 以前PR作成時にCodeBuildでCommit IDを対象にビルドを開始する方法を検証したのですが、Amazon EventBridgeのInput Transformationを使うと同じ事が簡単にできることを知ったので、今回はこちらを試してみます。 方法 Input Transformationとは、EventB…