ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントに例の値を使用します。演習を終える際は、これらの値をクラウド環境に固有の値に置き換えてください。
Oracle Cloud Infrastructureリソースを作成およびエクスポートするためのCLIを使用したCD3 Toolkitの構成
イントロダクション
クラウド・デプロイメント設計成果物(CD3)自動化ツールキットを使用すると、Excelテンプレートを完全に機能するTerraformモジュールに簡単に変換することで、Oracle Cloud Infrastructure (OCI)リソースを容易に構築、エクスポートおよび管理できます。
このツールキットは、OCI DevOps GitサービスおよびJenkinsパイプラインを使用したシームレスなリソース管理もサポートしています。
目的
-
ワンクリックでCD3コンテナ・リソース・マネージャ・スタックを起動し、CD3 CLIを使用してOCI NetworkingおよびOCI Computeリソースを作成します。
-
CD3 CLIを使用してOCIネットワーキングおよびOCIコンピュート・リソースをエクスポートします。
前提条件
-
Oracle Cloud Infrastructure Identity and Access Management (OCI IAM)ポリシー: ユーザーまたはインスタンス・プリンシパルが、ツールキットを使用して作成またはエクスポートするために必要なサービスを管理できるようにします。
-
スタックをデプロイするユーザーは、OCIリソース・マネージャ・スタック、OCIコンピュート・インスタンスおよびOCIネットワーキング・リソースを起動できる必要があります。
タスク1: Toolkitコンテナの設定
-
「Oracle Cloudにデプロイ」をクリックして、CD3 workVMを作成するOCI Resource Managerスタックを起動します。
-
契約条項に同意します。workVMの「ネットワーク」、「コンパートメント」、「仮想マシン(VM)名」、「シェイプ」およびその他の詳細を入力します。
ノート:セキュアな環境を維持するには、VMにアクセスするための特定のソースCIDR範囲を指定します。
0.0.0.0/0
を使用しないでください。 -
「適用の実行」セクションを選択し、「作成」をクリックします。
-
適用ジョブが成功したら、ジョブをクリックし、ログの最後まで下にスクロールします。
ツールキット・コンテナにログインするために実行する、作成されたVMおよびコマンドの詳細を検索します。次の図は、サンプル出力を示しています。
コンテナにログインした後、タスク2に従ってOCIテナンシに接続し、OCI APIを実行します。
タスク2: コンテナのOCIテナンシへの接続
-
コンテナ内で、
cd /cd3user/oci_tools/cd3_automation_toolkit/user-scripts/
に移動し、tenancyconfig.properties
ファイルを開きます。 -
「必須パラメータ」および「認証詳細パラメータ」セクションで、必要な構成値を追加します。
ノート:このチュートリアルでは、APIキー認証を使用します。
auth_mechanism
をデフォルト値にします。 -
OCIコンソールの「ユーザー設定」で、公開キーをAPIkeysにアップロードします。秘密キーをコンテナ内に配置します。必要な構成値をコピーし、
tenancyconfig.properties
ファイルの対応するパラメータの下に貼り付けます。 -
outdir_structure_file
パラメータのデフォルト値は維持します。これにより、サービスごとに生成されたauto.tfvars
ファイルがサービス固有のフォルダにグループ化されます。 -
IaCツールの場合、terraformまたはtofuを選択できます。デフォルトはterraformです。OpenTofuを使用するには、tofuを指定します。
ノート: 「DevOpsの拡張パラメータ」セクションはそのままにします。これは、Jenkinsの設定がこのチュートリアルの範囲内にないためです。Jenkinsを使用してツールキットを実行するには、Oracle Cloud Infrastructureリソースを作成およびエクスポートするためのJenkinsでのCD3の構成を参照してください。
-
ファイルを保存し、
createTenancyConfig.py
を実行して環境を初期化し、CD3の使用を開始します。python createTenancyConfig.py tenancyconfig.properties
-
出力を確認します。
次に、OCIでリソースを作成するには、タスク3に従い、リソースをエクスポートするには、タスク4に従います。
タスク3: リソースの作成
タスク3.1: Excelおよび変数ファイルの準備
-
事前入力されたExcelテンプレートは、cd3quickstart.xlsxからダウンロードします。環境に基づいてシートの「リージョン」および「コンパートメント」の値を変更し、コンテナに戻します。
-
次の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
-
コンテナから
/cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/compute/variables_<region>.tf
を開きます。instance_ssh_keys
変数の下で、Excelシートssh_public_key
で指定されたSSHキーの変数名を、対応する値(キー・コンテンツ)とともに追加します。 -
instance_source_ocids
変数の下に、ソース・イメージmyimageocid
のExcelシートで指定された変数名を含めて、そのOCIDを対応する値として割り当てます。
タスク3.2: setUpOCI.py
スクリプトの実行によるリソースTerraformファイルの生成
-
/cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties
ファイルを開き、cd3file
変数の下にCD3 Excelファイル・パスを追加します。workflow_type変数をcreate_resources
に設定し、ファイルを保存します。 -
ディレクトリを
cd /cd3user/oci_tools/cd3_automation_toolkit/
に変更し、setUpOCI.py
スクリプトを実行します。python setUpOCI.py /cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties
ノート:スクリプトを初めて実行する場合は、「コンパートメントOCIDsを変数ファイルにフェッチするためのスクリプトの実行」プロンプトで「y」を選択します。
-
出力メニューからオプション「ネットワーク」および「コンピュート」を選択し、VCNおよびサブネットを作成するためのサブオプション「ネットワークの作成」、インスタンスをプロビジョニングするための「インスタンスの追加/変更/削除/ブート・バックアップ・ポリシー」を選択します。
-
ディレクトリを
/cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/network/
に変更します。Terraformコマンドを実行して、ネットワーク・リソースをプロビジョニングします。terraform init terraform plan -out tfplan terraform apply tfplan
-
ネットワークの作成では、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)
-
正常に完了すると、Excelテンプレートの
DRGRouteRulesinOCI
、RouteRulesinOCI
およびSecRulesinOCI
シートに対応するデータが移入され、cd3_demo_cli_seclists.auto.tfvars
、cd3_demo_cli_routetables.auto.tfvars
およびcd3_demo_cli_drg-routetables.auto.tfvars
ファイルがフォルダ/cd3user/tenancies/cd3_demo_cli/terraform_files/<region_dir>/<service_dir>
の下に生成されます。 -
terraform plan
およびterraform apply
を確認します。terraform applyを実行すると、OCIからのセキュリティ・ルール、ルート・ルールおよびDRGルート・ルールのエクスポートが完了します。これで、terraform状態がOCIと同期している必要があります。 -
コンピュート・リソースをプロビジョニングするには、ディレクトリを
/cd3user/tenancies/cd3_demo_cli/terraform_files/<region>/compute/
に変更し、Terraformコマンドを実行します。terraform init terraform plan -out tfplan terraform apply tfplan
OCIコンソールでプロビジョニングされたリソースを確認します。
タスク4: リソースのエクスポート
タスク4.1: コンテナへのExcelテンプレートの追加
-
CD3-Blank-templateをダウンロードし、
/cd3user/tenancies/cd3_demo_cli/
のコンテナに追加します。ノート: cd3コンテナのtenanciesフォルダは、コンピュートVMの
/cd3user/mount_path
フォルダにマップされます。権限の問題を回避するには、cd3user
でログインします。 -
/cd3user/tenancies/cd3_demo_cli/
フォルダに移動し、cd3_demo_cli_setUpOCI.properties
ファイルを開きます。 -
CD3 Excelファイル・パスを変数
cd3file
の下に追加します。 -
workflow_typeパラメータを
export_resources
に設定し、ファイルを保存します。
タスク4.2: setUpOCI.py
スクリプトの実行
-
ディレクトリを
cd /cd3user/oci_tools/cd3_automation_toolkit/
に変更し、setUpOCI.py
スクリプトを実行します。python setUpOCI.py /cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties
ノート:スクリプトを初めて実行する場合は、「コンパートメントOCIDsを変数ファイルにフェッチするスクリプトの実行」プロンプトで「y」を選択します。
-
複数のリージョンからリソースをエクスポートする必要がある場合は、カンマ区切りの
region
値を指定します。リージョン値を指定しない場合、ツールキットはすべてのサブスクライブ済リージョンからリソースをエクスポートします。 -
エクスポートするリソース・オプション(「ネットワーク」および「コンピュート」)を選択します。リソースは、特定のコンパートメントまたはすべてのコンパートメントからのみエクスポートできます。コンパートメント名が一意でない場合は、階層に基づいて次の形式で指定する必要があります。
Parent Compartment::Child Compartment1::Child Compartment2
-
特定のリソースのみをエクスポートするには、プロンプトが表示されたら、必要なフィルタ値を入力します。
ノート: OCIネットワーキング・リソースおよびOCIコンピュート・リソースのエクスポートの詳細は、OCIネットワーキング・リソースのエクスポートおよびOCIコンピュート・リソースのエクスポートを参照してください。
-
正常に完了すると、エクスポートされたリソース・データが入力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
-
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
ファイルの実行
-
ネットワークおよびコンピュート・サービス・フォルダから、Terraformインポート・コマンドを含む生成された各
.sh
ファイルを実行します。ノート: OCIネットワーキングの場合、他の
.sh
スクリプトを実行する前に、major_objectsの.sh
スクリプトを必ず実行してください:sh import_commands_network_major-objects.sh
-
.sh
スクリプトが正常に完了すると、Terraform状態ファイルが生成され、terraformプランが最新に更新されます。
この生成されたTerraformコードは、OCI Resource Managerとともに使用することも、組織のCI/CDプロセスによって活用してさらなる管理を実現することもできます。
新しいリソースを追加したり、既存のリソースを変更するには、まずリソースをCD3にエクスポートし、エクスポートされたExcelテンプレートで必要な変更を行い、次に/cd3user/tenancies/cd3_demo_cli/cd3_demo_cli_setUpOCI.properties
ファイルでworkflow_typeをcreate_resources
に変更してツールキットを実行します。
関連リンク
承認
- 著者 - Lasya Vadavalli (シニア・クラウド・エンジニア)
その他の学習リソース
docs.oracle.com/learnの他のラボをご覧いただくか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントは、Oracle Help Centerを参照してください。
Configure CD3 Toolkit with CLI to Create and Export Oracle Cloud Infrastructure Resources
F87013-04
September 2024