ノート:

Oracle Cloud Infrastructureリソースを作成およびエクスポートするためのCLIを使用したCD3 Toolkitの構成

イントロダクション

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

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

ワークフロー(workflow)

目的

前提条件

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

  1. 「Oracle Cloudにデプロイ」をクリックして、CD3 workVMを作成するOCI Resource Managerスタックを起動します。

    Deploy_To_OCI

  2. 契約条項に同意します。workVMの「ネットワーク」「コンパートメント」「仮想マシン(VM)名」「シェイプ」およびその他の詳細を入力します。

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

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

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

    ツールキット・コンテナにログインするために実行する、作成されたVMおよびコマンドの詳細を検索します。次の図は、サンプル出力を示しています。

    rmstackoutput

    コンテナにログインした後、タスク2に従って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を指定します。

    tenancyconfig_properties

    ノート: 「DevOpsの拡張パラメータ」セクションはそのままにします。これは、Jenkinsの設定がこのチュートリアルの範囲内にないためです。Jenkinsを使用してツールキットを実行するには、Oracle Cloud Infrastructureリソースを作成およびエクスポートするためのJenkinsでのCD3の構成を参照してください。

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

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

    tenancyconfig_output

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

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

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

  1. 事前入力されたExcelテンプレートは、cd3quickstart.xlsxからダウンロードします。環境に基づいてシートの「リージョン」および「コンパートメント」の値を変更し、コンテナに戻します。

  2. 次のscpコマンドを使用して、コンテナ内のExcelファイルを/cd3user/tenancies/cd3_demo_cli/に追加します。

    ノート: CD3コンテナのtenanciesフォルダは、コンピュートVMの/cd3user/mount_pathフォルダにマップされます。権限の問題を回避するには、cd3userでログインします。

    scp -i ~/.ssh/id_rsa /Users/xyz/cd3quickstart.xlsx cd3user@<workvm_ip>:/cd3user/mount_path/cd3_demo_cli/cd3quickstart.xlsx
    
  3. コンテナから/cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/compute/variables_<region>.tfを開きます。instance_ssh_keys変数の下で、Excelシートssh_public_keyで指定されたSSHキーの変数名を、対応する値(キー・コンテンツ)とともに追加します。

    ssh_key

  4. instance_source_ocids変数の下に、ソース・イメージmyimageocidのExcelシートで指定された変数名を含めて、そのOCIDを対応する値として割り当てます。

    ソースコード

タスク3.2: setUpOCI.pyスクリプトの実行によるリソースTerraformファイルの生成

  1. /cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.propertiesファイルを開き、cd3file変数の下にCD3 Excelファイル・パスを追加します。workflow_type変数をcreate_resourcesに設定し、ファイルを保存します。

    イメージ

  2. ディレクトリをcd /cd3user/oci_tools/cd3_automation_toolkit/に変更し、setUpOCI.pyスクリプトを実行します。

    python setUpOCI.py /cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties
    

    ノート:スクリプトを初めて実行する場合は、「コンパートメントOCIDsを変数ファイルにフェッチするためのスクリプトの実行」プロンプトで「y」を選択します。

    イメージ

  3. 出力メニューからオプション「ネットワーク」および「コンピュート」を選択し、VCNおよびサブネットを作成するためのサブオプション「ネットワークの作成」、インスタンスをプロビジョニングするための「インスタンスの追加/変更/削除/ブート・バックアップ・ポリシー」を選択します。

  4. ディレクトリを/cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/network/に変更します。Terraformコマンドを実行して、ネットワーク・リソースをプロビジョニングします。

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

    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. 正常に完了すると、ExcelテンプレートのDRGRouteRulesinOCIRouteRulesinOCIおよびSecRulesinOCIシートに対応するデータが移入され、cd3_demo_cli_seclists.auto.tfvarscd3_demo_cli_routetables.auto.tfvarsおよびcd3_demo_cli_drg-routetables.auto.tfvarsファイルがフォルダ/cd3user/tenancies/cd3_demo_cli/terraform_files/<region_dir>/<service_dir>の下に生成されます。

  7. terraform planおよびterraform applyを確認します。terraform applyを実行すると、OCIからのセキュリティ・ルール、ルート・ルールおよびDRGルート・ルールのエクスポートが完了します。これで、terraform状態がOCIと同期している必要があります。

  8. コンピュート・リソースをプロビジョニングするには、ディレクトリを/cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/compute/に変更し、Terraformコマンドを実行します。

    terraform init
    terraform plan -out tfplan
    terraform apply tfplan
    

    OCIコンソールでプロビジョニングされたリソースを確認します。

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

タスク4.1: コンテナへのExcelテンプレートの追加

  1. CD3-Blank-templateをダウンロードし、/cd3user/tenancies/cd3_demo_cli/のコンテナに追加します。

    ノート: cd3コンテナのtenanciesフォルダは、コンピュートVMの/cd3user/mount_pathフォルダにマップされます。権限の問題を回避するには、cd3userでログインします。

  2. /cd3user/tenancies/cd3_demo_cli/フォルダに移動し、cd3_demo_cli_setUpOCI.propertiesファイルを開きます。

  3. CD3 Excelファイル・パスを変数cd3fileの下に追加します。

  4. workflow_typeパラメータをexport_resourcesに設定し、ファイルを保存します。

タスク4.2: setUpOCI.pyスクリプトの実行

  1. ディレクトリをcd /cd3user/oci_tools/cd3_automation_toolkit/に変更し、setUpOCI.pyスクリプトを実行します。

    python setUpOCI.py /cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties
    

    ノート:スクリプトを初めて実行する場合は、「コンパートメントOCIDsを変数ファイルにフェッチするスクリプトの実行」プロンプトで「y」を選択します。

    イメージ

  2. 複数のリージョンからリソースをエクスポートする必要がある場合は、カンマ区切りのregion値を指定します。リージョン値を指定しない場合、ツールキットはすべてのサブスクライブ済リージョンからリソースをエクスポートします。

  3. エクスポートするリソース・オプション(「ネットワーク」および「コンピュート」)を選択します。リソースは、特定のコンパートメントまたはすべてのコンパートメントからのみエクスポートできます。コンパートメント名が一意でない場合は、階層に基づいて次の形式で指定する必要があります。

    Parent Compartment::Child Compartment1::Child Compartment2
    
  4. 特定のリソースのみをエクスポートするには、プロンプトが表示されたら、必要なフィルタ値を入力します。

    ノート: OCIネットワーキング・リソースおよびOCIコンピュート・リソースのエクスポートの詳細は、OCIネットワーキング・リソースのエクスポートおよびOCIコンピュート・リソースのエクスポートを参照してください。

  5. 正常に完了すると、エクスポートされたリソース・データが入力Excelファイルに移入されます。更新されたExcelシートは、コンテナ内の/cd3user/tenancies/cd3_demo_cliフォルダの下に存在し、scpコマンドを使用してローカル・システムに手動でコピーする必要があります。

    scp -i ~/.ssh/id_rsa cd3user@<workvm_ip>:/cd3user/mount_path/cd3_demo_cli/CD3-Blank-template.xlsx /Users/xyz/CD3-export.xlsx
    
  6. terraformインポート・コマンドを使用したサービス固有の.tfvarsおよび.shファイルは、リージョン・フォルダ内の各サービス・フォルダ内に生成されます。

    • /cd3user/tenancies/cd3_demo_cli/terraform_files/<region_dir>/network/

    • /cd3user/tenancies/cd3_demo_cli/terraform_files/<region_dir>/compute/

    OCI Computeの場合、関連するSSH公開キーはinstance_ssh_keys変数の下のvariables_<region>.tfに配置され、ソースOCIDsはinstance_source_ocid変数の下に配置されます。

タスク4.3: 生成された.shファイルの実行

  1. ネットワークおよびコンピュート・サービス・フォルダから、Terraformインポート・コマンドを含む生成された各.shファイルを実行します。

    ノート: OCIネットワーキングの場合、他の.shスクリプトを実行する前に、major_objectsの.shスクリプトを必ず実行してください: sh import_commands_network_major-objects.sh

  2. .shスクリプトが正常に完了すると、Terraform状態ファイルが生成され、terraformプランが最新に更新されます。

この生成されたTerraformコードは、OCI Resource Managerとともに使用することも、組織のCI/CDプロセスによって活用してさらなる管理を実現することもできます。

新しいリソースを追加したり、既存のリソースを変更するには、まずリソースをCD3にエクスポートし、エクスポートされたExcelテンプレートで必要な変更を行い、次に/cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.propertiesファイルでworkflow_typecreate_resourcesに変更してツールキットを実行します。

承認

その他の学習リソース

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

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