- Auto DevOps の機能
- Auto DevOpsを始める
- GitLabアップデート時にAuto DevOpsの依存関係をアップグレード
- 非公開レジストリのサポート
- プロキシの後ろにアプリケーションをインストール
- 関連するトピック
- トラブルシューティング
自動デブオプス
GitLab Auto DevOpsは、ソフトウェアデリバリプロセスをサポートするために連携する設定済みの機能とインテグレーションを集めたものです。
Auto DevOpsはプログラミング言語を検出し、CI/CDテンプレートを使用してデフォルトのパイプラインを作成・実行し、アプリケーションのビルドとテストを行います。その後、デプロイを設定してステージングとプロダクションにアプリをデプロイし、レビューアプリを設定してブランチごとに変更をプレビューできます。
デフォルトの設定を使用してアプリを迅速に出荷し、後で反復してカスタマイズできます。
APIでAuto DevOpsを管理することもできます。
Auto DevOpsの紹介については、Auto DevOps in GitLab 11.0をご覧ください。
Auto DevOps の機能
Auto DevOpsは、DevOpsの各ステージにおける開発をサポートします。
ステージ | 自動DevOps機能 |
---|---|
ビルド | 自動ビルド |
ビルド | 自動依存関係スキャン |
テスト | 自動テスト |
テスト | 自動ブラウザ・パフォーマンス・テスト |
テスト | 自動コードインテリジェンス |
テスト | 自動コード品質 |
テスト | 自動コンテナスキャン |
テスト | 自動車免許コンプライアンス |
デプロイ | アプリの自動レビュー |
デプロイ | 自動デプロイ |
Secure | 自動動的アプリケーション・セキュリティ・テスト(DAST) |
Secure | 自動静的アプリケーションセキュリティテスト(SAST) |
Secure | 自動シークレット検出 |
アプリケーションプラットフォームやPaaSとの比較
Auto DevOpsは、アプリケーション・プラットフォームやPlatform as a Service (PaaS)によく含まれる機能を提供します。
HerokuにインスパイアされたAuto DevOpsは、複数の点でHerokuを超えています:
- Auto DevOpsはあらゆるKubernetesクラスターで動作します。
- 追加費用はかかりません。
- クラスターはご自身でホスティングされたものでも、公開クラウド上のものでもご利用いただけます。
- Auto DevOpsは段階的なステップアップを提供します。カスタマイズが必要な場合は、テンプレートを変更することから始め、そこから進化させていきます。
Auto DevOpsを始める
始めるには、AutoDevOpsを有効にするだけです。これだけでAuto DevOpsパイプラインを実行し、アプリケーションをビルドしてテストすることができます。
アプリのビルド、テスト、デプロイを行いたい場合:
- デプロイの要件を表示します。
- Auto DevOpsを有効にします。
- アプリをクラウドプロバイダにデプロイします。
Auto DevOpsの有効化または無効化
- GitLab 11.3で導入されたAuto DevOpsはデフォルトで有効になっています。
- GitLab 12.7で導入されたAuto DevOpsは、
Dockerfile
または一致するbuildpack が存在する場合のみ、自動的にパイプラインを実行します。
インスタンスのタイプに応じて、以下のレベルでAuto DevOpsを有効または無効にすることができます:
インスタンスタイプ | プロジェクト | グループ | インスタンス(管理エリア) |
---|---|---|---|
GitLab SaaS | {チェックサークル}はい | {チェックサークル}はい | {点線円}いいえ |
GitLab 自己管理 | {チェックサークル}はい | {チェックサークル}はい | {チェックサークル}はい |
Auto DevOpsを有効にする前に、デプロイの準備を検討してください。そうしないと、Auto DevOpsはアプリをビルドしてテストすることはできますが、デプロイすることはできません。
プロジェクト・レベルで
個々のプロジェクトでAuto DevOpsを使用するには、プロジェクト単位で有効にします。より多くのプロジェクトで使用する場合は、グループまたはインスタンスで有効にできます。これにより、プロジェクトごとに有効にする手間を省くことができます。
前提条件:
- 少なくともプロジェクトのメンテナーのロールを持っている必要があります。
- プロジェクトに
.gitlab-ci.yml
が存在しないことを確認してください。存在する場合、CI/CD設定がAuto DevOpsパイプラインよりも優先されます。
プロジェクトの Auto DevOps を有効にするには、以下の手順に従います:
- 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
- Settings > CI/CDを選択します。
- Auto DevOpsを展開します。
- Default to Auto DevOps pipelineチェックボックスを選択します。
- オプションですが、推奨します。ベースドメインを追加します。
- オプションですが、推奨します。デプロイ戦略を選択します。
- 変更を保存を選択します。
GitLabはデフォルトブランチでAuto DevOpsパイプラインをトリガーします。
これを無効にするには、同じ手順でDefault to Auto DevOps pipelineチェックボックスをオフにします。
グループレベルで
GitLab 11.10で導入されました。
グループレベルでAuto DevOpsを有効にすると、そのグループ内のサブグループとプロジェクトに設定が継承されます。各サブグループやプロジェクトでAuto DevOpsを有効にするのではなく、グループで有効にすることで時間を節約することができます。
グループで有効にした場合でも、Auto DevOps を使用したくないサブグループやプロジェクトでは、Auto DevOps を無効にすることができます。
前提条件:
- グループのオーナーロールを持っている必要があります。
グループの Auto DevOps を有効にするには、以下の手順に従います:
- 左のサイドバーで、Search(検索)を選択するか、Go to(移動)を選択してグループを探します。
- Settings > CI/CDを選択します。
- Auto DevOpsを展開します。
- Default to Auto DevOps pipelineチェックボックスを選択します。
- 変更を保存を選択します。
グループレベルで Auto DevOps を無効にするには、同じ手順に従って、[Default to Auto DevOps pipeline] チェックボックスをオフにします。
グループレベルでAuto DevOpsを有効にした後、そのグループに属するプロジェクトに対してAuto DevOpsパイプラインをトリガーすることができます:
- 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
- プロジェクトに
.gitlab-ci.yml
ファイルが含まれていないことを確認してください。 - Build > Pipelinesを選択します。
- Auto DevOpsパイプラインをトリガーするには、パイプラインの実行を選択します。
インスタンスレベルで
すべてのプロジェクトでAuto DevOpsをデフォルトで有効にするには、インスタンスレベルで有効にします。AutoDevOpsを実行したくないグループやプロジェクトごとにAutoDevOpsを無効にすることもできます。
インスタンスでAuto DevOpsを無効にしても、グループオーナーとプロジェクトメンテナーは、グループとプロジェクトレベルでAuto DevOpsを有効にすることができます。
前提条件:
- インスタンスの管理者である必要があります。
インスタンスでAuto DevOpsを有効にするには:
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- Settings > CI/CDを選択します。
- Auto DevOpsを展開します。
- Default to Auto DevOps pipelineチェックボックスを選択します。
- オプション。Auto DevOpsベースドメインを追加します。
- 変更を保存を選択します。
有効にすると、Auto DevOpsはすべてのプロジェクトでパイプラインの実行を試みます。特定のプロジェクトでパイプラインが失敗すると、それ自体が無効になります。GitLab管理者はAuto DevOps設定でこれを変更できます。
CI/CD設定ファイルが存在する場合、それは変更されず、Auto DevOpsはそれに影響を与えません。
インスタンスレベルでAuto DevOpsを無効にするには、同じプロセスに従い、Default to Auto DevOps pipelineチェックボックスをオフにします。
アプリをクラウドプロバイダにデプロイします。
- Auto DevOpsを使用してGoogle Kubernetes Engine上のKubernetesクラスターにデプロイします。(GKE)
- Auto DevOpsを使用してAmazon Elastic Kubernetes Service上のKubernetesクラスタにデプロイします。(EKS)
- Auto DevOpsを使用したEC2へのデプロイ
- Auto DevOpsを使用したECSへのデプロイ
GitLabアップデート時にAuto DevOpsの依存関係をアップグレード
GitLabをアップデートする際には、新しいGitLabのバージョンに合わせてAuto DevOpsの依存関係をアップグレードする必要があるかもしれません:
- AutoDevOpsリソースのアップグレード:
- Auto DevOpsテンプレート。
- 自動デプロイテンプレート。
- 自動デプロイイメージ。
- Helm.
- Kubernetes.
- 環境変数。
- PostgreSQL のアップグレード。
非公開レジストリのサポート
Auto DevOps で非公開コンテナレジストリを使用できる保証はありません。
代わりに、GitLabコンテナ・レジストリをAuto DevOpsで使用することで、設定を簡素化し、予期せぬ問題を防ぐことができます。
プロキシの後ろにアプリケーションをインストール
GitLab と Helm のインテグレーションは、プロキシ経由でのアプリケーションのインストールをサポートしていません。
そうしたい場合は、実行時にインストールポッドにプロキシ設定を注入する必要があります。
関連するトピック
トラブルシューティング
Auto DevOpsのトラブルシューティングをご覧ください。