DevOpsの開始
DevOpsサービスを開始する方法およびそれを使用するための前提条件について学習します。
前提条件
DevOpsサービスの使用を開始する前に、次の前提条件を満たす必要があります:
- Oracle Cloud Infrastructureテナンシへのアクセス権が必要です。
- Oracle Cloud Infrastructure (OCI)の各サービスは、すべてのインタフェース(コンソール、SDKとCLI、およびREST API)で、認証および認可のためにIdentity and Access Management (IAM)と統合されます。アクセス権限は、特定のコンパートメント内のユーザーに付与されます。コンパートメントを作成するか、既存のものを再利用できます。コンパートメントの管理を参照してください。
- 組織の管理者は、グループ、コンパートメントおよびポリシーを設定して、どのユーザーがどのサービスおよびリソースにアクセスできるかと、そのアクセス権のタイプを制御する必要があります。認証と認可を参照してください。
グループおよびユーザーの設定
- グループを作成するか、テナンシの既存のグループを使用します。
このグループのユーザーは、DevOpsサービスを管理できます。
- ユーザーを作成してグループに追加するか、既存のユーザーをグループに追加します。
- Gitを使用してコード・リポジトリと対話するユーザーごとに認証トークンを生成します。API署名キーも使用できます。
認証トークンは、ユーザー資格証明の形式の1つです。これらは、Oracleで生成されるトークン文字列で、OCIの署名ベース認証をサポートしないサードパーティAPIで認証するために使用できます。認証トークンは、Git操作の実行時にコマンドラインでOCIに対する認証に使用されます。管理者は、認証トークンを作成して他のユーザーに配布できます。認証トークンに期限切れはありません。各ユーザーは、同時に最大2つの認証トークンを持つことができます。詳細は、ユーザー資格証明の管理を参照してください。
DevOpsリソースへのアクセスの設定
ビルド・パイプライン、デプロイメント・パイプライン、アーティファクト、コード・リポジトリなどの様々なDevOpsリソースにアクセスする権限をユーザーに付与するには、動的グループおよびIAMポリシーを作成する必要があります。動的グループの管理およびポリシーの開始を参照してください。
動的グループおよびポリシーの作成については、次の例を参照してください:
- ビルド・パイプラインについては、ビルド・パイプライン・ポリシーを参照してください。
- コード・リポジトリについては、コード・リポジトリ・ポリシーを参照してください。
- デプロイメント・パイプラインについては、デプロイメント・パイプライン・ポリシーを参照してください。
詳細は、DevOps IAMポリシーを参照してください。
外部コード・リポジトリとの統合
OCI DevOpsサービスを使用すると、GitHub、GitLab、Bitbucketクラウド、Bitbucketサーバー、GitLabサーバー、Visual Builder Studioなどの外部リポジトリへの接続を作成できます。統合方法は次のとおりです:
- GitHub、GitLab、GitLabサーバーおよびVisual Builder Studio: これらのプロバイダから個人アクセス・トークン(PAT)を取得し、PATをOCIボールトにセキュアに格納する必要があります。手順は、ビルド・ソースの統合を参照してください。
- ビットバケット・クラウド: ビットバケット・ユーザー名が必要です。また、アプリケーション・パスワードを作成し、そのアプリケーション・パスワードをOCIボールトに格納する必要があります。Bitbucketクラウドのアプリケーション・パスワードの生成を参照してください。
- Bitbucketサーバー: HTTPアクセス・トークンを作成し、そのアクセス・トークンをOCIボールトに格納する必要があります。
このプロセスは、サードパーティ・コード・リポジトリとの統合にのみ必要であり、OCI DevOpsコード・リポジトリとの統合には必要ありません。
通知およびトピックの設定
プロジェクト通知により、重要なイベントおよび最新のDevOpsプロジェクト・ステータスが通知されます。ワークフローの承認など、必要なアクションを実行する必要がある場合もアラートが通知されます。トピックを作成し、そのトピックにサブスクリプションを追加する必要があります。トピックの作成については、トピックの作成を参照してください。トピックは、DevOpsプロジェクトの作成時に必要です。
リポジトリの設定
DevOpsサービスは、完成したビルド・アーティファクト格納するためにOCIコンテナ・レジストリ・リポジトリまたはアーティファクト・レジストリ・リポジトリを使用します。これらのリポジトリのいずれかを作成できます。
認証トークンの作成
認証トークンは、ユーザー資格証明の形式の1つです。これらは、Oracleで生成されるトークン文字列で、Oracle Cloud Infrastructureの署名ベース認証をサポートしないサードパーティAPIで認証するために使用できます。Gitを使用してコード・リポジトリと対話するには、認証トークンが必要です。
Oracle Cloudコンソールを使用して認証トークンを作成する方法について学習します。
- 自分で認証トークンを作成する場合:
- コンソールにサインインします。
- ナビゲーション・バーで、「プロファイル」メニューを選択し、表示されるオプションに応じて「ユーザー設定」または「マイ・プロファイル」を選択します。
- 別のユーザーの認証トークンを作成する管理者の場合:
- ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。
- 「アイデンティティ」で、「ユーザー」をクリックします。
- リストでユーザーを見つけ、ユーザー名をクリックしてその詳細を表示します。
- 「リソース」で、「認証トークン」をクリックします。
- 「トークンの生成」をクリックします。
- このトークンの目的を示す説明を入力します(例:
Anne's auth token for use with DevOps code repository
)。機密情報を入力しないでください。 -
「トークンの生成」をクリックします。
新しいトークンの文字列が表示されます。たとえば、
Dm___________6MqX
です。 - 認証トークンは、コンソールに再度表示されないため、後で取得できるセキュアな場所にすぐにコピーします。
- 「トークンの生成」ダイアログ・ボックスを閉じます。
詳細は、認証トークンの作業を参照してください。
ビルド・ソースの統合
OCIコード・リポジトリをGitHub、GitLab、Visual Builder Studioなどのサードパーティ・コード・リポジトリと統合する方法について学習します。
- 次のようにサードパーティ・コード・リポジトリのホスティング・サービスから個人アクセス・トークン(PAT)を取得します:
- GitHubについては、GitHub PATの生成を参照してください。
- GitLabについては、GitLab PATの生成を参照してください。
- Visual Builder Studioについては、トークンベース認証の設定を参照してください。
- 取得したPATをOCIボールトにセキュアに格納します。 テナンシ内の既存のボールトを再利用することも、ボールト、マスター暗号化キーおよびシークレットを作成することもできます。手順は、ボールトへのPATの格納を参照してください。ノート
各テナンシには10個のボールトの制限があり、各ボールトには複数のシークレットを格納できます。ボールト変数は動的に置換できません。ボールト・シークレットのOracle Cloud ID (OCID)のみがサポートされています。
- ルート・コンパートメントにボールト・シークレット・ポリシーを作成して、動的グループがシークレットを管理できるようにします。ボールトの概要およびシークレットの管理を参照してください。例:
Allow dynamic-group <dynamic_group_name> to manage secret-family in tenancy
ノート
このプロセスは、サードパーティ・コード・リポジトリとの統合にのみ必要であり、OCI DevOpsコード・リポジトリとの統合には必要ありません。
GitHub PATの生成
GitLab PATの生成
Bitbucketクラウドのアプリケーション・パスワードの生成
Bitbucketクラウドと統合し、ビルド・パイプラインでBitbucketリポジトリを使用するための接続を確立する方法について学習します。
Oracle Cloud Infrastructure (OCI)ボールトにアプリケーション・パスワードを格納する必要があります。OCIボールトはマネージド・サービスであり、リソースに安全にアクセスするために使用するデータおよびシークレット資格証明を保護する暗号化キーを集中管理できます。
各テナンシには10個のボールトの制限があり、各ボールトには複数のシークレットを格納できます。
ボールトへのPATの格納
DevOpsサービスの使用
前提条件の完了後、次のステップを実行して、OCIコンピュート・プラットフォームへのソフトウェアの継続的インテグレーション、デリバリおよびデプロイメントのためにDevOpsサービスを使用します:
- 継続的インテグレーションおよびデプロイメント(CI/CD)・アプリケーションの実装に必要なリソースをグループ化するためのDevOpsプロジェクトを作成します。
- OCIコード・リポジトリを作成するか、GitHub、GitLab、Bitbucketクラウドなどの外部コード・リポジトリと統合します。リポジトリのミラー化を参照してください。
- デプロイメント前にソフトウェア・アプリケーションを正常にコンパイル、テストおよび実行するためのビルド・プロセスを定義するステージを含むビルド・パイプラインを作成します。
- ビルド・パイプラインに「マネージド・ビルド」ステージを追加して、ソフトウェア・アプリケーションをテストします。
ビルドのプライマリ・コード・リポジトリとして、OCIコード・リポジトリまたは外部コード・リポジトリ(GitHub、GitLab、Bitbucketクラウド、BitbucketサーバーおよびGitLabサーバー)を選択します。
- 「マネージド・ビルド」ステージの出力を格納するには、OCIコンテナ・レジストリ・リポジトリまたはアーティファクト・レジストリ・リポジトリが必要です。
DevOpsは、OCIコンテナ・レジストリ・リポジトリとアーティファクト・レジストリ・リポジトリに格納されているアプリケーションをサポートします。コンテナ・レジストリ・リポジトリにはDockerイメージとHelmチャートが格納され、アーティファクト・レジストリ・リポジトリには汎用ソフトウェア・パッケージを格納できます。
- ビルド出力を含むリポジトリの場所を指し示すDevOpsアーティファクトを作成します。
アーティファクトURIのパラメータは、OCIコード・リポジトリにデリバリされるソフトウェア・アプリケーション・バージョンを定義します。
- 「マネージド・ビルド」ステージを追加した後、ビルド・パイプラインに「アーティファクトの配信」ステージを追加します。
「アーティファクトの配信」ステージでは、「マネージド・ビルド」ステージからのビルド出力がバージョンとともにマップされ、DevOpsアーティファクト・リソースに、その後OCIコード・リポジトリにデリバリされます。
- DevOpsビルド・パイプラインの実行を手動で行うことで、ビルド・プロセスを開始します。
手動実行では、ビルドに追加されたコード・リポジトリに対する最新のコミットが使用されます。特定のコミットに基づいてビルドを実行するには、コミットの詳細を指定します。
コード・リポジトリに変更をコミットしたときに、自動的にビルド実行をトリガーすることもできます。
- DevOpsでサポートされるターゲット環境を作成します(Oracle Cloudコンソールに存在しない場合)。サポートされる環境は、Kubernetesエンジン・クラスタ、コンピュート・インスタンス(Oracle LinuxおよびCentOSのみ)、およびファンクション・アプリケーションです。
- デプロイメント用のターゲット環境への参照を作成します。
- ターゲット環境にビルド出力をデリバリするデプロイメント・パイプラインを作成します。
DevOpsでは、Kubernetesクラスタ、インスタンス・グループおよびファンクションへのデプロイメントがサポートされます。
- 「デプロイメントのトリガー」ステージを追加して、ビルド・パイプラインからデプロイメントを自動的にトリガーするか、デプロイメント・パイプラインを実行します。