ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときに、これらの値をクラウド環境に固有の値に置き換えます。
Oracle Cloud Infrastructureリソースを作成およびエクスポートするためのJenkinsでのCD3の構成
イントロダクション
クラウド・デプロイメント設計成果物(CD3)の自動化ツールキットを使用すると、Microsoft Excelテンプレートを完全に機能するTerraformモジュールに簡単に変換することで、Oracle Cloud Infrastructure (OCI)リソースを容易に構築、エクスポートおよび管理できます。
このツールキットでは、OCI DevOps GitサービスおよびJenkinsパイプラインを使用したシームレスなリソース管理もサポートされています。
目的
- 1回のクリックでCD3コンテナを起動し、Jenkinsパイプラインを使用してOCIアイデンティティ、ネットワークおよびコンピュート・リソースを作成、エクスポートします。
前提条件
-
Oracle Cloud Infrastructure Identity and Access Management (OCI IAM)ポリシー。ユーザーまたはインスタンス・プリンシパルが、ツールキットを使用して作成またはエクスポートするために必要なサービスを管理できるようにします。
-
スタックをデプロイするユーザーは、OCI Resource Managerスタック、コンピュート・インスタンスおよびネットワーク・リソースを起動するためのアクセス権を持っている必要があります。
タスク1: Toolkitコンテナの設定
-
「Oracle Cloudへのデプロイ」をクリックして、CD3 WorkVMを作成するOCIリソース・マネージャ・スタックを起動します。
-
契約条項に同意します。作成するworkVMのネットワーク、コンパートメント、VM名、シェイプなどを入力します。
ノート:セキュアな環境を維持するには、VMにアクセスするための特定のソースCIDR範囲を指定します。
0.0.0.0/0
を使用しないでください。 -
下部の「適用の実行」セクションを選択し、「作成」をクリックします。
-
適用ジョブが成功したら、ジョブをクリックし、ログの最後まで下にスクロールします。
作成されたVMの詳細と、ツールキット・コンテナにログインするために実行するコマンドを見つけます。次のイメージに示す出力例。
コンテナにログインしたら、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の拡張パラメータ」で、
use_oci_devops_git
パラメータにyes
を選択します。これにより、生成されたterraformファイルのOCI DevOps Gitリポジトリ、状態ファイルのOCIオブジェクト・ストレージ・バケットおよびDevOpsリポジトリの変更を通知するOCI通知トピックが作成されます。
-
ファイルを保存し、
createTenancyConfig.py
を実行して環境を初期化し、CD3の使用を開始します。python createTenancyConfig.py tenancyconfig.properties
-
出力を確認します。
-
次に、OCIでリソースを作成するには、タスク3に従うか、リソースをエクスポートするには、タスク4に従います。
タスク3: OCIでのリソースの作成
タスク3.1: Excelおよび変数ファイルの準備
-
このチュートリアルでは、cd3quickstart.xlsxから事前入力されたExcelテンプレートをダウンロードします。環境に基づいてリージョン、コンパートメント値を変更し、コンテナに切り替えます。
-
コンテナから
/cd3user/tenancies/<prefix>/terraform_files/<region>/compute/variables_<region>.tf
を開きます。instance_ssh_keys
変数の下に、Excelシートで指定されたSSHキーの変数名(ssh_public_key)を、対応する値(キー・コンテンツ)とともに追加します。 -
instance_source_ocids
変数の下に、ソース・イメージmyimageocid
のExcelシートで指定された変数名を含めて、そのOCIDを対応する値として割り当てます。次のスクリーンショットは参考用です。 -
次のコマンドを順番に実行して、前述のローカル変更をDevOps Gitリポジトリと同期します。
cd /cd3user/tenancies/<prefix>/terraform_files git status git add -A . git commit -m "msg" git push
タスク3.2: Jenkinsへのログインおよびsetupociパイプラインの実行
-
Jenkinsを起動し、コンテナから次のコマンドを使用してアクセスします。
-
Jenkinsを起動するには、
/usr/share/jenkins/jenkins.sh &
コマンドを使用します。 -
Jenkinsにアクセスするには、このURL
https://<IP Address of the machine hosting docker container>:8443
を使用します。
-
-
Jenkinsにログインします。ダッシュボードには、
<prefix>
名を持つフォルダが存在します。作業中の<prefix>
名をクリックします。対応するsetupociパイプラインおよびterraform_files
フォルダがあります。「setupoci pipeline」および「Build with Parameters」をクリックします。ノート: JenkinsのURLに初めてアクセスする場合は、ログイン資格証明を設定します。
-
「Excelテンプレート」セクションで、タスク3.1でフェッチされたExcelファイルをアップロードします。
-
「ワークフロー」で、「OCIでの新規リソースの作成(グリーンフィールド・ワークフロー)」を選択します。
-
MainOptionsで、「アイデンティティ」、「ネットワーク」および「コンピュート」を選択します。
-
SubOptionsで、「グループの追加/変更/削除」、「ポリシーの追加/変更/削除」、「ネットワークの作成」、「インスタンスの追加/変更/削除/ブート・バックアップ・ポリシー」を選択します。
-
ビルドをクリックします。setupociパイプライン・ステージは順番に実行されます。
タスク3.3: 各サービス・プランの承認の提供
-
ログのアイデンティティ・ステージをクリックし、アイデンティティ適用パイプライン・ビルドへのリンクをクリックします。「承認の取得」ステージで、ログをクリックし、「続行」を選択します。「適用」ステージのログをチェックして、作成されたアイデンティティ・リソースを確認します。
-
同様に、setupociパイプラインのネットワーク・ステージから、「ログ」をクリックし、ネットワーク適用パイプライン・ビルドのリンクをクリックします。「承認の取得」ステージで、ログをクリックし、「続行」を選択します。「適用」ステージのログをチェックして、作成されたネットワーク・リソースを確認します。
-
コンピュート・ステージ・ログをクリックします。リンクをクリックして、適用パイプライン・ビルドを計算します。
ノート:コンピュートterraformパイプラインが失敗したことがわかります。これは、コンピュート・リソースが準備するネットワークに依存しているためです。これを解決するには、ネットワーク適用パイプラインが成功した後に、コンピュートterraformパイプラインを手動でトリガーします。次の手順では、これを実行する方法を示します。
-
コンピュート適用パイプラインの「今すぐビルド」をクリックします。パイプライン・ステージの実行を開始した後、「承認の取得」ステージでログをクリックし、「続行」を選択します。「適用」ステージのログをチェックして、作成されたコンピュート・リソースを確認します。
-
「ネットワークの作成」を実行すると、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)
-
コンパートメント名を指定します。「ビルド」をクリックすると、setupoci Pipelineステージの実行が開始されます。
-
Excelシートには、セキュリティ・ルール、ルート・ルール、DRGルート・ルール・データが移入されます。これらのサービスに対してTerraform
tfvars
ファイルが生成されます。 -
OCIからエクスポートされたデータを含む更新済Excelファイルは、特定のsetupociビルドの「アーティファクトの構築」の下にあります。Excelファイルは、
/cd3user/tenancies/<prefix>
の下のコンテナ内にも存在します。 -
「ネットワーク」ステージ・ログをクリックし、ネットワーク適用パイプライン・ビルドへのリンクをクリックします。terraformプランには、OCIでこれらのサービスを推測する「変更なし」が表示され、CD3が同期しています。
-
これで、OCIでのリソース作成プロセスは完了です。OCIコンソールで作成されたリソースを確認します。
タスク4: OCIからのリソースのエクスポート
タスク4.1: CD3-Blank-template.xlsx
ファイルのダウンロード
エクスポート・ワークフローの場合、ツールキットは特定のサービス・シート内の既存のデータを上書きします。そのため、デフォルトではデータがないCD3-Blank-template.xlsx
を使用することをお薦めします。
CD3-Blank-template.xlsxからCD3空白テンプレートをダウンロードします。
タスク4.2: Jenkinsへのログイン
-
Jenkinsを起動し、コンテナから次のコマンドを使用してアクセスします。
-
Jenkinsを起動するには、
/usr/share/jenkins/jenkins.sh &
コマンドを使用します。 -
Jenkinsにアクセスするには、このURL
https://<IP Address of the machine hosting docker container>:8443
を使用します。
-
-
Jenkinsにログインします。
ノート: JenkinsのURLに初めてアクセスする場合は、ログイン資格証明を設定します。
タスク4.3: setupociパイプラインの実行
-
Jenkinsダッシュボードには、
<prefix>
名を持つフォルダがあります。作業中の<prefix>
名をクリックします。対応するsetupociパイプラインおよびterraform_files
フォルダがあります。「setupoci pipeline」および「Build with Parameters」をクリックします。 -
「Excelテンプレート」セクションで、タスク4.1でフェッチしたExcelファイルをアップロードします。
-
「ワークフロー」で、「OCIからの既存のリソースのエクスポート(非グリーンフィールド・ワークフロー)」を選択します。
-
MainOptionsで、「アイデンティティのエクスポート」、「ネットワークのエクスポート」および「コンピュートのエクスポート」を選択します。
-
SubOptionsで、アイデンティティとして「コンパートメント/グループ/ポリシーのエクスポート」を選択し、ネットワーク用に「すべてのネットワーク・コンポーネントのエクスポート」を選択し、コンピュート用に「インスタンスのエクスポート(OKEによって起動されたインスタンスは除外)」を選択します。
ノート:必要に応じて、AdditionalFiltersの下に詳細を追加して、リソースをフィルタします。
-
「ビルド」をクリックします。setupociパイプライン・ステージは、各サービスに対して実行されます。
-
「インポート・コマンドの実行」ステージでログを確認します。正常に表示された場合は、トリガーされた各terraformパイプラインの「計画」ステージが「変更なし」と表示されます。
ノート:プランに変更が見つかった場合は、レビューして必要に応じて適用します。
-
OCIからエクスポートされたデータを含む更新済Excelファイルは、特定のsetupociビルドの「アーティファクトの構築」の下にあります。Excelファイルは、
/cd3user/tenancies/<prefix>
の下のコンテナ内にも存在します。
関連リンク
確認
- 著者 - Lasya Vadavalli (シニア・クラウド・エンジニア)、Dipesh Kumar Rathod (マスター・プリンシパル・クラウド・アーキテクト、インフラストラクチャ)
その他の学習リソース
docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントは、Oracle Help Centerを参照してください。
Configure CD3 with Jenkins to Create and Export Oracle Cloud Infrastructure Resources
F95146-04
October 2024