ノート:

Oracle Cloud Infrastructureリソースを作成およびエクスポートするためのJenkinsでのCD3の構成

イントロダクション

クラウド・デプロイメント設計成果物(CD3)の自動化ツールキットを使用すると、Microsoft Excelテンプレートを完全に機能するTerraformモジュールに簡単に変換することで、Oracle Cloud Infrastructure (OCI)リソースを容易に構築、エクスポートおよび管理できます。

このツールキットでは、OCI DevOps GitサービスおよびJenkinsパイプラインを使用したシームレスなリソース管理もサポートされています。

ワークフロー(workflow)

目的

前提条件

タスク1: Toolkitコンテナの設定

  1. 「Oracle Cloudへのデプロイ」をクリックして、CD3 WorkVMを作成するOCIリソース・マネージャ・スタックを起動します。

    Deploy_To_OCI

  2. 契約条項に同意します。作成するworkVMのネットワーク、コンパートメント、VM名、シェイプなどを入力します。

    ノート:セキュアな環境を維持するには、VMにアクセスするための特定のソースCIDR範囲を指定します。0.0.0.0/0を使用しないでください。

  3. 下部の「適用の実行」セクションを選択し、「作成」をクリックします。

  4. 適用ジョブが成功したら、ジョブをクリックし、ログの最後まで下にスクロールします。

    作成されたVMの詳細と、ツールキット・コンテナにログインするために実行するコマンドを見つけます。次のイメージに示す出力例。

    rmstackoutput

    コンテナにログインしたら、OCIテナンシに接続してOCI APIを実行します。

タスク2: コンテナのOCIテナンシへの接続

  1. cd /cd3user/oci_tools/cd3_automation_toolkit/user-scripts/に移動し、tenancyconfig.propertiesファイルを開きます。

  2. 必要な構成値を「必須パラメータ」および「認証詳細パラメータ」セクションに追加します。

    ノート:このチュートリアルでは、APIキー認証を使用します。auth_mechanismをデフォルト値に保ちます。

  3. OCIコンソールの「ユーザー設定」で、公開キーをAPIkeysにアップロードします。コンテナ内に秘密キーを配置します。必要な構成値をコピーし、tenancyconfig.propertiesファイルの対応するパラメータの下に貼り付けます。

  4. outdir_structure_fileパラメータをデフォルト値のままにして、サービスごとに生成されたauto.tfvarsファイルをグループ化します。

  5. IaCツールの場合、terraformまたはtofuを選択できます。デフォルトはterraformです。OpenTofuを使用するには、tofuを指定します。

  6. 「DevOpsの拡張パラメータ」で、use_oci_devops_gitパラメータにyesを選択します。

    これにより、生成されたterraformファイルのOCI DevOps Gitリポジトリ、状態ファイルのOCIオブジェクト・ストレージ・バケットおよびDevOpsリポジトリの変更を通知するOCI通知トピックが作成されます。

  7. ファイルを保存し、createTenancyConfig.pyを実行して環境を初期化し、CD3の使用を開始します。

    python createTenancyConfig.py tenancyconfig.properties
    
  8. 出力を確認します。

  9. 次に、OCIでリソースを作成するには、タスク3に従うか、リソースをエクスポートするには、タスク4に従います。

タスク3: OCIでのリソースの作成

タスク3.1: Excelおよび変数ファイルの準備

  1. このチュートリアルでは、cd3quickstart.xlsxから事前入力されたExcelテンプレートをダウンロードします。環境に基づいてリージョン、コンパートメント値を変更し、コンテナに切り替えます。

  2. コンテナから/cd3user/tenancies/<prefix>/terraform_files/<region>/compute/variables_<region>.tfを開きます。instance_ssh_keys変数の下に、Excelシートで指定されたSSHキーの変数名(ssh_public_key)を、対応する値(キー・コンテンツ)とともに追加します。

  3. instance_source_ocids変数の下に、ソース・イメージmyimageocidのExcelシートで指定された変数名を含めて、そのOCIDを対応する値として割り当てます。次のスクリーンショットは参考用です。

    ssh_key

     情報源

  4. 次のコマンドを順番に実行して、前述のローカル変更をDevOps Gitリポジトリと同期します。

    cd /cd3user/tenancies/<prefix>/terraform_files
    git status
    git add -A .
    git commit -m "msg"
    git push
    

タスク3.2: Jenkinsへのログインおよびsetupociパイプラインの実行

  1. Jenkinsを起動し、コンテナから次のコマンドを使用してアクセスします。

    • Jenkinsを起動するには、/usr/share/jenkins/jenkins.sh &コマンドを使用します。

    • Jenkinsにアクセスするには、このURL https://<IP Address of the machine hosting docker container>:8443を使用します。

  2. Jenkinsにログインします。ダッシュボードには、<prefix>名を持つフォルダが存在します。作業中の<prefix>名をクリックします。対応するsetupociパイプラインおよびterraform_filesフォルダがあります。「setupoci pipeline」および「Build with Parameters」をクリックします。

    ノート: JenkinsのURLに初めてアクセスする場合は、ログイン資格証明を設定します。

    excel_template

  3. 「Excelテンプレート」セクションで、タスク3.1でフェッチされたExcelファイルをアップロードします。

    excel_template

  4. 「ワークフロー」で、「OCIでの新規リソースの作成(グリーンフィールド・ワークフロー)」を選択します。

  5. MainOptionsで、「アイデンティティ」「ネットワーク」および「コンピュート」を選択します。

  6. SubOptionsで、「グループの追加/変更/削除」「ポリシーの追加/変更/削除」「ネットワークの作成」「インスタンスの追加/変更/削除/ブート・バックアップ・ポリシー」を選択します。

  7. ビルドをクリックします。setupociパイプライン・ステージは順番に実行されます。

タスク3.3: 各サービス・プランの承認の提供

  1. ログのアイデンティティ・ステージをクリックし、アイデンティティ適用パイプライン・ビルドへのリンクをクリックします。「承認の取得」ステージで、ログをクリックし、「続行」を選択します。「適用」ステージのログをチェックして、作成されたアイデンティティ・リソースを確認します。

    テラフォームパイプライン

  2. 同様に、setupociパイプラインのネットワーク・ステージから、「ログ」をクリックし、ネットワーク適用パイプライン・ビルドのリンクをクリックします。「承認の取得」ステージで、ログをクリックし、「続行」を選択します。「適用」ステージのログをチェックして、作成されたネットワーク・リソースを確認します。

  3. コンピュート・ステージ・ログをクリックします。リンクをクリックして、適用パイプライン・ビルドを計算します。

    ノート:コンピュートterraformパイプラインが失敗したことがわかります。これは、コンピュート・リソースが準備するネットワークに依存しているためです。これを解決するには、ネットワーク適用パイプラインが成功した後に、コンピュートterraformパイプラインを手動でトリガーします。次の手順では、これを実行する方法を示します。

  4. コンピュート適用パイプラインの「今すぐビルド」をクリックします。パイプライン・ステージの実行を開始した後、「承認の取得」ステージでログをクリックし、「続行」を選択します。「適用」ステージのログをチェックして、作成されたコンピュート・リソースを確認します。

  5. 「ネットワークの作成」を実行すると、CD3 Excelシートにまだ存在しないVCNにいくつかのルールが作成されます(これらの詳細は最初は「サブネット」タブから取得されるため)。Excelファイルに同期するには、前述と同じExcelシートを使用してsetupoci Pipelineを再度ビルドし、ワークフローを「OCIでのリソースの作成」として設定し、メイン・オプションの下の「ネットワーク」を選択し、次のサブオプションを選択します。

    Security Rules  ---> Export Security Rules (From OCI into SecRulesinOCI sheet), Add/Modify/Delete Security Rules (Reads SecRulesinOCI sheet) 
    
    Route Rules     ---> Export Route Rules (From OCI into RouteRulesinOCI sheet), Add/Modify/Delete Route Rules (Reads RouteRulesinOCI sheet)
    
    DRG Route Rules ---> Export DRG Route Rules (From OCI into DRGRouteRulesinOCI sheet), Add/Modify/Delete DRG Route Rules (Reads DRGRouteRulesinOCI sheet)
    
  6. コンパートメント名を指定します。「ビルド」をクリックすると、setupoci Pipelineステージの実行が開始されます。

  7. Excelシートには、セキュリティ・ルール、ルート・ルール、DRGルート・ルール・データが移入されます。これらのサービスに対してTerraform tfvarsファイルが生成されます。

  8. OCIからエクスポートされたデータを含む更新済Excelファイルは、特定のsetupociビルドの「アーティファクトの構築」の下にあります。Excelファイルは、/cd3user/tenancies/<prefix>の下のコンテナ内にも存在します。

  9. 「ネットワーク」ステージ・ログをクリックし、ネットワーク適用パイプライン・ビルドへのリンクをクリックします。terraformプランには、OCIでこれらのサービスを推測する「変更なし」が表示され、CD3が同期しています。

  10. これで、OCIでのリソース作成プロセスは完了です。OCIコンソールで作成されたリソースを確認します。

タスク4: OCIからのリソースのエクスポート

タスク4.1: CD3-Blank-template.xlsxファイルのダウンロード

エクスポート・ワークフローの場合、ツールキットは特定のサービス・シート内の既存のデータを上書きします。そのため、デフォルトではデータがないCD3-Blank-template.xlsxを使用することをお薦めします。

CD3-Blank-template.xlsxからCD3空白テンプレートをダウンロードします。

タスク4.2: Jenkinsへのログイン

  1. Jenkinsを起動し、コンテナから次のコマンドを使用してアクセスします。

    1. Jenkinsを起動するには、/usr/share/jenkins/jenkins.sh &コマンドを使用します。

    2. Jenkinsにアクセスするには、このURL https://<IP Address of the machine hosting docker container>:8443を使用します。

  2. Jenkinsにログインします。

    ノート: JenkinsのURLに初めてアクセスする場合は、ログイン資格証明を設定します。

    excel_template

タスク4.3: setupociパイプラインの実行

  1. Jenkinsダッシュボードには、<prefix>名を持つフォルダがあります。作業中の<prefix>名をクリックします。対応するsetupociパイプラインおよびterraform_filesフォルダがあります。「setupoci pipeline」および「Build with Parameters」をクリックします。

  2. 「Excelテンプレート」セクションで、タスク4.1でフェッチしたExcelファイルをアップロードします。

  3. 「ワークフロー」で、「OCIからの既存のリソースのエクスポート(非グリーンフィールド・ワークフロー)」を選択します。

  4. MainOptionsで、「アイデンティティのエクスポート」「ネットワークのエクスポート」および「コンピュートのエクスポート」を選択します。

  5. SubOptionsで、アイデンティティとして「コンパートメント/グループ/ポリシーのエクスポート」を選択し、ネットワーク用に「すべてのネットワーク・コンポーネントのエクスポート」を選択し、コンピュート用に「インスタンスのエクスポート(OKEによって起動されたインスタンスは除外)」を選択します。

    ノート:必要に応じて、AdditionalFiltersの下に詳細を追加して、リソースをフィルタします。

  6. 「ビルド」をクリックします。setupociパイプライン・ステージは、各サービスに対して実行されます。

    excel_template

  7. 「インポート・コマンドの実行」ステージでログを確認します。正常に表示された場合は、トリガーされた各terraformパイプラインの「計画」ステージが「変更なし」と表示されます。

    ノート:プランに変更が見つかった場合は、レビューして必要に応じて適用します。

  8. OCIからエクスポートされたデータを含む更新済Excelファイルは、特定のsetupociビルドの「アーティファクトの構築」の下にあります。Excelファイルは、/cd3user/tenancies/<prefix>の下のコンテナ内にも存在します。

確認

その他の学習リソース

docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントは、Oracle Help Centerを参照してください。