DevOpsの開始

DevOpsサービスを開始する方法およびそれを使用するための前提条件について学習します。

前提条件

DevOpsサービスの使用を開始する前に、次の前提条件を満たす必要があります:

  • Oracle Cloud Infrastructureテナンシへのアクセス権が必要です。
  • Oracle Cloud Infrastructure (OCI)の各サービスは、すべてのインタフェース(コンソール、SDKとCLI、およびREST API)で、認証および認可のためにIdentity and Access Management (IAM)と統合されます。アクセス権限は、特定のコンパートメント内のユーザーに付与されます。コンパートメントを作成するか、既存のものを再利用できます。コンパートメントの管理を参照してください。
  • 組織の管理者は、グループ、コンパートメントおよびポリシーを設定して、どのユーザーがどのサービスおよびリソースにアクセスできるかと、そのアクセス権のタイプを制御する必要があります。認証と認可を参照してください。

グループおよびユーザーの設定

  1. グループを作成するか、テナンシの既存のグループを使用します。

    このグループのユーザーは、DevOpsサービスを管理できます。

  2. ユーザーを作成してグループに追加するか、既存のユーザーをグループに追加します。
  3. 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ボールトにセキュアに格納する必要があります。手順は、ビルド・ソースの統合を参照してください。
  • Bitbucketクラウド: Bitbucketユーザー名が必要です。また、アプリケーション・パスワードを作成し、そのアプリケーション・パスワードをOCIボールトに格納する必要があります。Bitbucketクラウドのアプリケーション・パスワードの生成を参照してください。
  • Bitbucketサーバー: HTTPアクセス・トークンを作成し、そのアクセス・トークンをOCIボールトに格納する必要があります。
ノート

このプロセスは、サードパーティ・コード・リポジトリとの統合にのみ必要であり、OCI DevOpsコード・リポジトリとの統合には必要ありません。

通知およびトピックの設定

プロジェクト通知により、重要なイベントおよび最新のDevOpsプロジェクト・ステータスが通知されます。ワークフローの承認など、必要なアクションを実行する必要がある場合もアラートが通知されます。トピックを作成し、そのトピックにサブスクリプションを追加する必要があります。トピックの作成については、トピックの作成を参照してください。トピックは、DevOpsプロジェクトの作成時に必要です。

リポジトリの設定

DevOpsサービスは、完成したビルド・アーティファクト格納するためにOCIコンテナ・レジストリ・リポジトリまたはアーティファクト・レジストリ・リポジトリを使用します。これらのリポジトリのいずれかを作成できます。

認証トークンの作成

認証トークンは、ユーザー資格証明の形式の1つです。これらは、Oracleで生成されるトークン文字列で、Oracle Cloud Infrastructureの署名ベース認証をサポートしないサードパーティAPIで認証するために使用できます。Gitを使用してコード・リポジトリと対話するには、認証トークンが必要です。

Oracle Cloudコンソールを使用して認証トークンを作成する方法について学習します。

  1. 自分で認証トークンを作成する場合:
    • コンソールにサインインします。
    • コンソールの右上隅にある「プロファイル」メニューを開き、「ユーザー設定」をクリックします。
  2. 別のユーザーの認証トークンを作成する管理者の場合:
    • ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。
    • 「アイデンティティ」で、「ユーザー」をクリックします。
    • リストでユーザーを見つけ、ユーザー名をクリックしてその詳細を表示します。
  3. 「リソース」で、「認証トークン」をクリックします。
  4. 「トークンの生成」をクリックします。
  5. このトークンの目的を示す説明を入力します(例: Anne's auth token for use with DevOps code repository)。機密情報を入力しないでください。
  6. 「トークンの生成」をクリックします。

    新しいトークンの文字列が表示されます。たとえば、Dm___________6MqXです。

  7. 認証トークンは、コンソールに再度表示されないため、後で取得できるセキュアな場所にすぐにコピーします。
  8. 「トークンの生成」ダイアログ・ボックスを閉じます。

詳細は、認証トークンの作業を参照してください。

ビルド・ソースの統合

OCIコード・リポジトリをGitHub、GitLab、Visual Builder Studioなどのサードパーティ・コード・リポジトリと統合する方法について学習します。

  1. 次のようにサードパーティ・コード・リポジトリのホスティング・サービスから個人アクセス・トークン(PAT)を取得します:
  2. 取得したPATをOCIボールトにセキュアに格納します。
    テナンシ内の既存のボールトを再利用することも、ボールト、マスター暗号化キーおよびシークレットを作成することもできます。手順は、ボールトへのPATの格納を参照してください。
    ノート

    各テナンシには10個のボールトの制限があり、各ボールトには複数のシークレットを格納できます。

    ボールト変数は動的に置換できません。ボールト・シークレットのOracle Cloud ID (OCID)のみがサポートされています。

  3. ルート・コンパートメントにボールト・シークレット・ポリシーを作成して、動的グループがシークレットを管理できるようにします。ボールトの概要およびシークレットの管理を参照してください。例:
    Allow dynamic-group <dynamic_group_name> to manage secret-family in tenancy
    ノート

    このプロセスは、サードパーティ・コード・リポジトリとの統合にのみ必要であり、OCI DevOpsコード・リポジトリとの統合には必要ありません。

GitHub PATの生成

  1. GitHubホームページで、右上隅のプロファイル画像をクリックし、「Settings」をクリックします。
  2. 左側のメニューで、「Developer settings」をクリックします。
  3. 左側のメニューで、「Personal Access Token」「Tokens (classic)」の順にクリックします。
  4. 「個人アクセス・トークンの生成」リンクをクリックします。
  5. トークンを生成する理由を記載します。
  6. 指定されたオプションからトークンの有効期限を選択します。
  7. スコープでは、DevOpsサービスでプライベート・リポジトリからコードを読み取るために、「Full control of private repositories」を選択します。

    パブリック・リポジトリからのみコードにアクセスするには、public_repoスコープを選択します。

  8. 「Generate token」をクリックします。

    トークンは、ページから移動すると再度取得できないため、セキュアな場所にすぐにコピーしてください。

GitLab PATの生成

  1. GitLabホーム・ページで、右上隅にあるプロファイル画像をクリックし、「Edit profile」をクリックします。
  2. 左側のメニューで、「Access Tokens」をクリックします。
  3. トークンの名前とオプションの有効期限を入力します。
  4. スコープでは、「read_api」を選択します。
  5. 「Create personal access token」をクリックします。

    トークンは、ページから移動すると再度取得できないため、セキュアな場所にすぐにコピーしてください。

Bitbucketクラウドのアプリケーション・パスワードの生成

Bitbucketクラウドと統合し、ビルド・パイプラインでBitbucketリポジトリを使用するための接続を確立する方法について学習します。

  1. Bitbucketホーム・ページで、右上隅にあるプロファイルをクリックし、「Personal settings」をクリックします。
  2. 「Bitbucket profile settings」で、ユーザー名をメモします。
  3. 左側のメニューで、「App passwords」をクリックし、「Create app password」をクリックします。
  4. パスワードのLabel(名前)を入力します。
  5. 「Permissions」で次のチェック・ボックスを選択します:
    • Account: Read
    • Workspace membership: Read
    • Projects: Read
    • Pull requests: Read
    • Webhooks: Read and write
  6. 「作成」をクリックします。

    アプリケーション・パスワードは、ページから移動すると再度取得できないため、セキュアな場所にすぐにコピーしてください。

Oracle Cloud Infrastructure (OCI)ボールトアプリケーション・パスワードを格納する必要があります。OCIボールトはマネージド・サービスであり、リソースに安全にアクセスするために使用するデータおよびシークレット資格証明を保護する暗号化キーを集中管理できます。

テナンシ内の既存のボールトを再利用することも、ボールト、マスター暗号化キーおよびシークレットを作成することもできます。
ノート

各テナンシには10個のボールトの制限があり、各ボールトには複数のシークレットを格納できます。

ボールトへのPATの格納

開始する前に、サードパーティ・コード・リポジトリのホスティング・サービスから個人アクセス・トークン(PAT)を取得します。

  1. Oracle Cloudコンソールのナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックし、次に「ボールト」をクリックします。
  2. 「リスト範囲」「コンパートメント」リストで、ボールトを作成するコンパートメントの名前をクリックします。
  3. 「ボールトの作成」をクリックし、ボールトの表示名を入力します。
  4. 終了したら、「ボールトの作成」をクリックします。
  5. PATの暗号化に使用するマスター暗号化キーを作成するには、ステップ4で作成したボールトの名前をクリックします。
  6. 「マスター暗号化キー」をクリックし、次に「キーの作成」をクリックします。
    すでに保有しているキー・マテリアルおよびキー・バージョンを、ステップ4で作成したボールトにインポートできます。非対称キーではボールト・シークレットを暗号化できないため、キーは対称キーである必要があります。詳細は、キーの管理を参照してください。
  7. PATの格納に使用するシークレットを作成するには、ステップ4で作成したボールトの名前をクリックします。
  8. シークレットの名前を入力します。
  9. シークレット・コンテンツを暗号化するには、ステップ5で作成したマスター暗号化キーを選択します。
  10. 「シークレット・タイプ・テンプレート」リストからテンプレート・タイプを選択して、提供するシークレット・コンテンツのフォーマットを指定します。
    コンソールを使用してボールト・シークレットまたはボールト・シークレット・バージョンを作成する場合、シークレット・コンテンツをプレーン・テキストで提供できますが、シークレット・コンテンツはサービスに送信する前にbase64でエンコードする必要があります。コンソールにより、プレーン・テキストのシークレット・コンテンツが自動的にエンコードされます。詳細は、シークレットの管理を参照してください。
  11. 「シークレット・コンテンツ」をクリックし、PATコンテンツを入力します。
  12. 終了したら、「シークレットの作成」をクリックします。
PATは、OCIボールトにセキュアに格納されます。

DevOpsサービスの使用

前提条件の完了後、次のステップを実行して、OCIコンピュート・プラットフォームへのソフトウェアの継続的インテグレーション、デリバリおよびデプロイメントのためにDevOpsサービスを使用します:

  1. 継続的インテグレーションおよびデプロイメント(CI/CD)・アプリケーションの実装に必要なリソースをグループ化するためのDevOpsプロジェクトを作成します。
  2. OCIコード・リポジトリを作成するか、GitHub、GitLab、Bitbucketクラウドなどの外部コード・リポジトリと統合します。リポジトリのミラー化を参照してください。
  3. デプロイメント前にソフトウェア・アプリケーションを正常にコンパイル、テストおよび実行するためのビルド・プロセスを定義するステージを含むビルド・パイプラインを作成します。
  4. ビルド・パイプラインに「マネージド・ビルド」ステージを追加して、ソフトウェア・アプリケーションをテストします。

    ビルドのプライマリ・コード・リポジトリとして、OCIコード・リポジトリまたは外部コード・リポジトリ(GitHub、GitLab、Bitbucketクラウド、BitbucketサーバーおよびGitLabサーバー)を選択します。

  5. 「マネージド・ビルド」ステージの出力を格納するには、OCIコンテナ・レジストリ・リポジトリまたはアーティファクト・レジストリ・リポジトリが必要です。

    DevOpsは、OCIコンテナ・レジストリ・リポジトリとアーティファクト・レジストリ・リポジトリに格納されているアプリケーションをサポートします。コンテナ・レジストリ・リポジトリにはDockerイメージとHelmチャートが格納され、アーティファクト・レジストリ・リポジトリには汎用ソフトウェア・パッケージを格納できます。

  6. ビルド出力を含むリポジトリの場所を指し示すDevOpsアーティファクトを作成します。

    アーティファクトURIのパラメータは、OCIコード・リポジトリにデリバリされるソフトウェア・アプリケーション・バージョンを定義します。

  7. 「マネージド・ビルド」ステージを追加した後、ビルド・パイプラインに「アーティファクトの配信」ステージを追加します。

    「アーティファクトの配信」ステージでは、「マネージド・ビルド」ステージからのビルド出力がバージョンとともにマップされ、DevOpsアーティファクト・リソースに、その後OCIコード・リポジトリにデリバリされます。

  8. DevOpsビルド・パイプラインの実行を手動で行うことで、ビルド・プロセスを開始します。

    手動実行では、ビルドに追加されたコード・リポジトリに対する最新のコミットが使用されます。特定のコミットに基づいてビルドを実行するには、コミットの詳細を指定します。

    コード・リポジトリに変更をコミットしたときに、自動的にビルド実行をトリガーすることもできます。

  9. DevOpsでサポートされるターゲット環境を作成します(Oracle Cloudコンソールに存在しない場合)。サポートされる環境は、Container Engine for Kubernetesクラスタコンピュート・インスタンス(Oracle LinuxおよびCentOSのみ)、およびファンクション・アプリケーションです。
  10. デプロイメント用のターゲット環境への参照を作成します。
  11. ターゲット環境にビルド出力をデリバリするデプロイメント・パイプラインを作成します。

    DevOpsでは、Kubernetesクラスタインスタンス・グループおよびファンクションへのデプロイメントがサポートされます。

  12. 「デプロイメントのトリガー」ステージを追加して、ビルド・パイプラインからデプロイメントを自動的にトリガーするか、デプロイメント・パイプラインを実行します。