今回はGitLab Wikiを紹介します。 docs.gitlab.com 背景 GitLab WIkiはGItLab Projectで利用できるWikiページを提供する機能です。GitLab WikiはMarkdown / AsciiDoc / Rdoc / Orgをサポートしているほか、Wikiのページはサイドバーに表示され、サイドバーは…
今回はGitLabのDescription templateの紹介です。 docs.gitlab.com 背景 GitLabには、あらかじめ用意したテンプレートを使い、GitLab上での作業をらくにする機能がいくつか提供されています。今回は Description template という、Issue template / Merge re…
今回はGitLabとActive Directoryとを連携したユーザー管理の紹介です。 docs.gitlab.com 背景 以前GitLabのユーザーについて紹介しましたが、GitLabはLDAPと統合したユーザー認証機能を提供しています。GitLabとActive Directoryの連携はLDAPによるユーザー…
今回はGitLabコンテナレジストリの権限周りについて整理しました。 docs.gitlab.com 背景 GitLabはProject/Groupごとにコンテナレジストリを提供する機能があります。GitLabはProject/Groupごとに、どのユーザーにどんな権限を付与するかをRoleで制御します…
今回はGitLabが提供する glab というCLIツールを紹介します。 gitlab.com 背景 glab はコマンドラインからGitLabの各種APIにアクセスすることで、Webブラウザを開くことなくGitLabの情報を確認する手段を提供します。例えばIssueを確認してタスクを確認した…
今回はGitLabの提供するコンテナイメージのスキャン機能を検証します。 docs.gitlab.com 背景 GitLabのコンテナスキャン機能は、GitLab CI/CDでコンテナイメージスキャンのJobを実行し、レジストリに配置したイメージを検査して結果を出力します。 GitLabの…
今回はGitLabで利用できるロールを簡単に整理します。 docs.gitlab.com 背景 GitLabユーザーをProject/Groupに追加するとき、ユーザーに対して何らかのRoleを付与します。Roleは、あらかじめ用意されたDefault Roleと、ユーザーが作成したCustomr Roleがあり…
今回は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 CI/CDで利用できるキーワードの中から、.gitlab-ci.yml から同じProject上の別のファイル、別Project上のファイルを呼び出せる include について検証しました。 docs.gitlab.com docs.gitlab.com 背景 検証 include:local include:project incl…
今回はAmazon EC2インスタンスをGitLab Runnerとして登録する手順について紹介します。 背景 GitLab RunnerはGitLab CI/CDパイプラインの実行基盤です。GitLab SaaS版を利用する場合、Shared Runnerという共有リソースを利用できますが、セキュリティ等の理…
今回は2023年に公開されたCloudFormation Git Syncを紹介します。 aws.amazon.com 背景 AWS CloudFomationはAWSリソースを対象とするIaCツールです。CloudFormationのコード管理はGitHub / GitLabなどのGitホスティングサービスを利用することが多いですが、…
今回は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サービスを更新するには、大きく2つの方法があります。 .gitlab-ci.yml にスクリプトを記載する i…
今回はGitLab CI/CDを使い始めるため、GitLabの案内するチュートリアルをやってみたのでそちらの紹介です。 docs.gitlab.com GitLab CI/CDとは GitLabのCI/CDを理解するうえで、事前にいくつかの用語を整理しておきます。 .gitlab-ci.yml GitLab CI/CDを利用…
今回はGitLabのProjectの作成方法を整理します。 背景 GtiLabの機能を利用するには、 Project というリソースを用意する必要があります。Projectの作成方法は複数あるため、ここではそれらを整理・検証します。 docs.gitlab.com GitLab Projectを作成するに…
今回はGitLabに複数ユーザーを一括で追加する方法について、その一例を紹介します。 背景 GitLab Self-managed版は、Web画面からユーザーを追加する場合、現状1ユーザーずつしか登録することができません。一方で、GitLabインスタンスを作成してプロジェクト…
今回はGitLabでユーザーを作成する方法について整理します。 背景 GitLabでは複数の方法でユーザーを作成できます。 サインインページで作成 管理画面から作成 認証インテグレーション APIから作成 Rakeコマンドラインから作成 IaCツールから作成 docs.gitla…
今回はGitLab Self-managedインスタンスからメール送信を有効にするため、Gmailを利用した例を紹介します。 GitLab Self-managedインスタンスの作成方法は前回の記事を参照してください。 背景 GitLab Self-managed版は、ユーザー作成後のパスワード更新など…
今回はGitLab Self-managed環境をAmazon EC2上に構築する例を紹介します。なお、ここではあくまでテスト用の環境構築を想定しているので、本番環境では使用しないでください。 背景 検証 AWS CloudFormationによるインスタンス等の作成 rootアカウントでログ…
今回はAmazon EKSをAWS CloudFormationで作成した例を紹介します。Web上で少し調べてもEKSをCloudFormationで作成する例があまり見当たらなかったので、今回作成してみました。 検証 作成は以下の流れで実施しました。 eksctlからクラスターを作成 CloudForm…
今回は 詳解 Terraform 第3版 を一通り読んだので、その感想を簡単に残しておこうと思います。 TerraformはIaCツールの中でもかなり市民権を得ていると感じるツールです。にもかかわらず、ここ最近個人的にTerraformを使う機会もなく、情報を追いかけられて…
背景 前回AWS CloudFormationで管理するAmazon S3に対し、CI/CDによる継続的なテストと更新を検証しましたが、今回はAmazon EC2を対象に検証してみました。 Amazon EC2で気を付けた点 まず、Amazon EC2に対してテストを行う前に、以前のAmazon S3と比べて異…
背景 以前IaCの書籍をいくつか取り上げ、IaCのテストをどう実行すべきか調査したことがありました。書籍の中には具体的なツールや例を取り上げて記載されている箇所もありますが、やはり実際に動かしてみることで見えることもあると思い、今回簡単に検証して…
今回はCloudFormationのデプロイをより便利にする rain コマンドを試しました。 rainとは rainは複数のコマンドが用意されており、それぞれの特徴は公式リポジトリ に記載されています。特によく使いそうなものをいくつか取り上げます。 rain deployによるイ…
今回はManning Publicationsから2022年に出版された Infrastructure as Code Practices and Patterns の中から、IaCのテストに関連する部分を取り上げます。 www.manning.com 前提 テストのサイクル 静的解析 動的解析 テストの種類 unit test contract test…
CloudFormation Guardとは cfn-guardを検証する インストール rulegen validate AWS ELBのログ有効化をテストする 参考リンク CloudFormation Guardとは AWS CloudFormation Guard (以降cfn-guard) は、汎用的なPolicy as Codeを実現するOpen Sourceツールの…
今回はO'Reilly社から2020年に出版された Infrastructure as Code (2nd Edition) を読み、IaCに対するテストについて個人的に気になった箇所などを書き留めていきます。 www.oreilly.com 目的 前提 IaCとは 2つ目のCore Practice IaCをテストするうえでの課…
以前CodeBuildでPull Requestごとに特定のCommit IDをターゲットにビルドを実行する方法を調べましたが、今回はAWS CodePipelineで同じことを実現しようとしました。 背景 AWS CodePipelineはAWSサービスの一つでフルマネージドな継続的デリバリーサービス …
背景 以前PR作成時にCodeBuildでCommit IDを対象にビルドを開始する方法を検証したのですが、Amazon EventBridgeのInput Transformationを使うと同じ事が簡単にできることを知ったので、今回はこちらを試してみます。 方法 Input Transformationとは、EventB…