リソース検出
Oracle Cloud Infrastructure (OCI)リソース・マネージャを使用して、コンパートメント内のデプロイ済リソースを検索し、Terraform構成および状態ファイルにエクスポートできます。
リソース検出により、手動管理インフラストラクチャからTerraform管理インフラストラクチャへの移行が簡略化されます。1つのコマンドを使用して、既存のコンパートメントのベースライン構成および状態を取得するファイルを生成できます。
リソース検出は移行ツールではありません。リソースをクローニングまたは移行する場合、リソース検出によって生成される構成が開始点になります。これらは変更が必要な場合があります。
Terraformの新しい構成ファイルおよび状態ファイルの一般的なユースケースは次のとおりです:
- TerraformがHashiCorp Configuration Language (HCL)構文を使用してOracle Cloud Infrastructureリソースを表す方法を学習します。
- 新しいテナンシまたはリージョンでの既存のインフラストラクチャ・アーキテクチャの複製または再構築。
- 状態ドリフトの検出。レポートを実行して、Terraform管理リソースの状態が変更され、基本構成と異なっているかどうかを確認します。
リソースを検出するには、Terraformがリソースをどのように表しているかを確認するにはのステップに従います。作成されたスタックには、生成されたTerraformの構成および状態ファイルが含まれます。これらはソース・コンパートメントでサポートされているリソースに対応しています。
コンパートメントから作成されたスタックは、コンパートメント全体のサポートされているリソースすべてを適切なスコープで表します。テナンシのルート・コンパートメントを選択すると、スコープはユーザーやグループなどのテナンシ・レベルになります。ルート以外のコンパートメントを選択すると、スコープはコンピュート・インスタンスなどのコンパートメント・レベルになります。
スタックの作成がサポートされるのは、単一のコンパートメントからのみです。ネストされたコンパートメントからスタックを作成することはできません。
コンソールの使用
TerraformがHashiCorp Configuration Language (HCL)構文を使用してOracle Cloud Infrastructureリソースを表す方法を学習します。
-
コンパートメントからスタックを作成することで、既存のインフラストラクチャを取得します。
「スタックの作成」ページの主要なステップ:
-
「Terraformの構成のオリジンを選択します」で、「既存のコンパートメント」を選択します。
-
「リソース検出のコンパートメント」(取得しようとするリソースを含むコンパートメント)を選択します。
リスト範囲のコンパートメントはデフォルトで設定されています。
- 「リソース検出のリージョン」(取得しようとするリソースを含むリージョン)を選択します。
-
リソース検出でサポートされている特定のサービスをフィルタするには、「選択済」を選択し、目的のサービスを選択します。
ノート
この設定は、スタックを後で編集するときは変更できません。 - 「次へ」を2回クリックし、「作成」をクリックしてスタックを作成します。
新しいスタックのスタック詳細ページが表示されます。作業リクエストがスタックで実行されます。作業リクエストが終了すると、スタックのTerraform構成ファイルを生成するジョブが実行されます。ジョブが終了すると、選択したコンパートメントのリソースが、生成された構成に取得されます。
-
- 生成されたTerraform構成ファイルをダウンロードします: スタック詳細ページの「スタック情報」タブで、「ダウンロード」をクリックします。
-
コンパートメントからスタックを作成することで、既存のインフラストラクチャを取得します。
新しいスタックのスタック詳細ページが表示されます。作業リクエストがスタックで実行されます。作業リクエストが終了すると、スタックのTerraform構成を生成するジョブが実行されます。ジョブが終了すると、選択したコンパートメントのリソースが、生成された構成に取得されます。
- 生成されたTerraform構成ファイルをダウンロードします: スタック詳細ページの「スタック情報」タブで、「ダウンロード」をクリックします。
-
vars.tfファイル(ダウンロードしたTerraform構成ファイル内の変数)を編集して、宛先の
compartment_ocid
およびregion
を指定します。例:
variable "compartment_ocid" { default = "ocid1.compartment.oc1..uniqueid" } variable "region" { default = "us-phoenix-1" }
-
宛先リージョンの可用性ドメインがソース・リージョンより多いか少ない場合は、vars.tfファイルを編集して、可用性ドメインの正しい数を指定します。
たとえば、可用性ドメインが3つあるリージョンからクローニングし、可用性ドメインが1つのみのリージョンにインフラストラクチャを再作成する場合は、2つ目と3つ目の可用性ドメインへの参照を削除します。
3つの可用性ドメインを示す例:
data oci_identity_availability_domain export_NzDH-EU-FRANKFURT-1-AD-1 { compartment_id = var.compartment_ocid ad_number = "1" } data oci_identity_availability_domain export_NzDH-EU-FRANKFURT-1-AD-2 { compartment_id = var.compartment_ocid ad_number = "2" } data oci_identity_availability_domain export_NzDH-EU-FRANKFURT-1-AD-3 { compartment_id = var.compartment_ocid ad_number = "3" }
1つの可用性ドメインを示す例:
data oci_identity_availability_domain export_NzDH-EU-FRANKFURT-1-AD-1 { compartment_id = var.compartment_ocid ad_number = "1" }
-
編集した構成ファイルを使用して2つ目のスタックを作成します。
-
-
作業権限を持つコンパートメントを(ページの左側で)選択します。ページが更新されて、そのコンパートメントのリソースのみが表示されます。使用するコンパートメントが不明な場合は、管理者に問い合せてください。
- 「スタックの作成」をクリックします。
- 「スタックの作成」ダイアログで、「マイ構成」をクリックします。
-
ダウンロードしたTerraform構成(.zip)ファイルを追加します。
ここでは、他のフィールドはそのままにしておくことができます。スタックを作成するにはを参照してください。
- 「Terraformバージョン」で、リソース検出でサポートされているバージョンを選択します。
- 「次」をクリックして、「変数の構成」パネルを表示します。
compartment_ocid
変数を更新して、クローニングされたリソースの宛先コンパートメントを指定します。- 別のリージョンにリソースをクローニングする場合は、
region
変数を更新します。 - 「次」をクリックして、「確認」パネルを表示します。
-
スタックの作成時にリソースを自動的にプロビジョニングするには、「適用の実行」を選択します。
-
「作成」をクリックしてスタックを作成します。
2つ目のスタックのスタック詳細ページが表示されます。
「適用の実行」を選択した場合、リソース・マネージャは新しいスタックで「適用」アクションを実行します。
リソースは、指定されたコンパートメントおよびリージョンにクローニングされます。
-
- 新しいスタックに対して「適用の実行」を選択しなかった場合は、「今すぐ適用」を実行します(オプションで「プラン」を実行した後)。
CLIの使用
コマンド・プロンプトを開き、oci resource-manager stack create-from-compartment
を実行して、指定したコンパートメントおよびリージョンでスタックを作成します:
oci resource-manager stack create-from-compartment --config-source-compartment-id <source_compartment_OCID> --config-source-region <source_region> --config-source-services-to-discover [<services>] –-compartment-id <compartment_OCID> --terraform-version <version --display-name "<friendly_name>" --description "<description>"
例(core
およびdatabase
サービスからサポートされているリソースを検出します。ソース・コンパートメントはルート・コンパートメントではありません):
oci resource-manager stack create-from-compartment --config-source-compartment-id ocid1.tenancy.oc1..uniqueid1 --config-source-region PHX --config-source-services-to-discover [core,database] –-compartment-id ocid1.tenancy.oc1..uniqueid2 --terraform-version 0.13.X --display-name "Stack From Compartment ABC" --description "List of Resources to Duplicate"
{
"data": {
"config-source": {
"config-source-type": "COMPARTMENT_CONFIG_SOURCE"
},
"defined-tags": {},
"display-name": "Stack from Compartment ABC",
"freeform-tags": {},
"id": "ocid1.ormstack.oc1..uniqueid",
"lifecycle-state": "CREATING",
"time-created": "2019-04-03T18:26:56.299000+00:00",
"variables": {
"compartment_ocid": "ocid1.compartment.oc1..uniqueid1",
"region": "us-phoenix-1"
}
}
}
{
"data": {
"compartment-id": "ocid1.compartment.oc1..uniqueid2",
"config-source": {
"compartment-id": "ocid1.compartment.oc1..uniqueid1",
"config-source-type": "COMPARTMENT_CONFIG_SOURCE",
"region": "PHX",
"working-directory": null
},
"defined-tags": {},
"description": "List of Resources to Duplicate",
"display-name": "Stack From Compartment ABC",
"freeform-tags": {},
"id": "ocid1.ormstack.oc1.phx.uniqueid",
"lifecycle-state": "CREATING",
"stack-drift-status": "NOT_CHECKED",
"terraform-version": "0.12.x",
"time-created": "2020-06-01T18:25:56.102000+00:00",
"time-drift-last-checked": null,
"variables": {}
},
"etag": "009010cb57f5162655c6a34f5ef8834f204a734df81e4baa696a7d830488ea25",
"opc-work-request-id": "ocid1.ormworkrequest.oc1.phx.uniqueid"
}
この項では、特定のコンパートメントOCIDからのリソース検出でサポートされているサービスを確認する方法について説明します。
コンパートメントからスタックを作成すると、スタックは、コンパートメント全体のサポートされているリソースすべてを適切なスコープで表します。テナンシのルート・コンパートメントを選択すると、スコープはユーザーやグループなどのテナンシ・レベルになります。ルート以外のコンパートメントを選択すると、スコープはComputeインスタンスなどのコンパートメント・レベルになります。
コマンド・プロンプトを開き、oci resource-manager stack list-resource-discovery-services
を実行して、リソース検出でサポートされているサービスのリストを取得します(コンパートメントOCIDは認可にのみ使用されます):
oci resource-manager stack list-resource-discovery-services --compartment-id <compartment_OCID>
APIの使用
リソースを検出(コンパートメントからスタックを作成)するには、configSourceType
をCOMPARTMENT_CONFIG_SOURCE
に設定して、CreateStack操作を使用します。
出力ファイルの内容
リソース検出では、アクティブまたは使用可能な状態のリソースが検出されます。終了したか非アクティブにされたリソースは、通常、生成される構成から除外されます。
デフォルトでは、検出されたリソースのTerraform名は、そのリソースの表示名と同じ名前を共有します(存在する場合)。
リソースの属性には、OCIサービスによって返された値が移入されます。
場合によっては、必須またはオプションの属性がOCIサービスから検出できず、生成されたTerraform構成から除外されることがあります。この省略は、このサービスで想定された動作の可能性があります。これにより、特定の機密属性またはシークレットの検出を妨げることができます。このような場合、プレースホルダ値が次のようなコメントとともに設定されます:
admin_password = "<placeholder for missing required attribute>" #Required attribute not found in discovery, placeholder value set to avoid plan failure
欠落している必須属性もライフサイクルignore_changes
に追加されます。この追加は、手動管理インフラストラクチャをTerraform管理インフラストラクチャに移行する際のTerraformプランの失敗を回避するために行われます。このようなフィールドに変更を加えても、Terraformプランに反映されません。このようなフィールドを更新する場合は、それらをignore_changes
から削除します。
可用性ドメインに依存するリソースが、availability_domain.tfファイルの下に生成されます。次のものが含まれます。
oci_core_boot_volume
oci_file_storage_file_system
oci_file_storage_mount_target
oci_file_storage_snapshot
サポートされるリソース
サポートされている各サービスには、1つ以上の検出可能なリソースがあります。
アダム
- oci_adm_vulnerability_audit
- oci_adm_knowledge_base
ai_anomaly_detection
- oci_ai_anomaly_detection_data_asset
- oci_ai_anomaly_detection_model
- oci_ai_anomaly_detection_project
- oci_ai_anomaly_detection_ai_private_endpoint
ai_vision
- oci_ai_vision_document_job
- oci_ai_vision_image_job
- oci_ai_vision_project
- oci_ai_vision_model
analytics
- oci_analytics_analytics_instance
apigateway
- oci_apigateway_api
- oci_apigateway_gateway
- oci_apigateway_deployment
- oci_apigateway_certificate
apm
- oci_apm_apm_domain
apm_config
- oci_apm_config_config
apm_synthetics
- oci_apm_synthetics_script
- oci_apm_synthetics_monitor
- oci_apm_synthetics_dedicated_vantage_point
アーティファクト
- oci_artifacts_container_repository
- oci_artifacts_container_image_signature
- oci_artifacts_repository
auto_scaling
- oci_autoscaling_auto_scaling_configuration
要塞
- oci_bastion_bastion
- oci_bastion_session
bds
- oci_bds_bds_instance
- oci_bds_auto_scaling_configuration
- oci_bds_bds_instance_api_key
- oci_bds_bds_instance_metastore_config
ブロックチェーン
- oci_blockchain_blockchain_platform
- oci_blockchain_peer
- oci_blockchain_osn
予算
- oci_budget_budget
- oci_budget_alert_rule
certificates_management
- oci_certificates_management_ca_bundle
- oci_certificates_management_certificate_authority
- oci_certificates_management_certificate
cloud_guard
- oci_cloud_guard_target
- oci_cloud_guard_managed_list
- oci_cloud_guard_responder_recipe
- oci_cloud_guard_data_mask_rule
- oci_cloud_guard_detector_recipe
containerengine
- oci_containerengine_cluster
- oci_containerengine_node_pool
コア
- oci_core_boot_volume_backup
- oci_core_boot_volume
- oci_core_console_history
- oci_core_cluster_network
- oci_core_compute_image_capability_schema
- oci_core_cpe
- oci_core_cross_connect_group
- oci_core_cross_connect
- oci_core_dhcp_options
- oci_core_drg_attachment
- oci_core_drg
- oci_core_dedicated_vm_host
- oci_core_image
- oci_core_instance_configuration
- oci_core_instance_console_connection
- oci_core_instance_pool_instance
- oci_core_instance_pool
- oci_core_instance
- oci_core_internet_gateway
- oci_core_ipsec
- oci_core_local_peering_gateway
- oci_core_nat_gateway
- oci_core_network_security_group
- oci_core_network_security_group_security_rule
- oci_core_private_ip
- oci_core_public_ip
- oci_core_remote_peering_connection
- oci_core_route_table
- oci_core_security_list
- oci_core_service_gateway
- oci_core_subnet
- oci_core_vcn
- oci_core_vlan
- oci_core_virtual_circuit
- oci_core_vnic_attachment
- oci_core_volume_attachment
- oci_core_volume_backup
- oci_core_volume_backup_policy
- oci_core_volume_backup_policy_assignment
- oci_core_volume_group
- oci_core_volume_group_backup
- oci_core_volume
- oci_core_public_ip_pool
- oci_core_ipv6
- oci_core_drg_route_table
- oci_core_drg_route_distribution
- oci_core_drg_route_table_route_rule
- oci_core_capture_filter
- oci_core_vtap
data_connectivity
- oci_data_connectivity_registry
- oci_data_connectivity_registry_connection
- oci_data_connectivity_registry_data_asset
- oci_data_connectivity_registry_folder
data_labeling_service
- oci_data_labeling_service_dataset
data_safe
- oci_data_safe_data_safe_private_endpoint
- oci_data_safe_on_prem_connector
- oci_data_safe_target_database
- oci_data_safe_security_assessment
- oci_data_safe_user_assessment
- oci_data_safe_unset_security_assessment_baseline
- oci_data_safe_report_definition
- oci_data_safe_audit_trail
- oci_data_safe_alert
- oci_data_safe_audit_archive_retrieval
- oci_data_safe_audit_profile
- oci_data_safe_audit_policy
- oci_data_safe_target_alert_policy_association
- oci_data_safe_sensitive_type
- oci_data_safe_masking_policy
- oci_data_safe_masking_policies_masking_column
- oci_data_safe_library_masking_format
- oci_data_safe_sensitive_data_model
- oci_data_safe_sensitive_data_models_sensitive_column
- oci_data_safe_discovery_jobs_result
- oci_data_safe_discovery_job
database
- oci_database_autonomous_container_database
- oci_database_autonomous_container_database_dataguard_association
- oci_database_autonomous_database
- oci_database_autonomous_exadata_infrastructure
- oci_database_autonomous_vm_cluster
- oci_database_backup_destination
- oci_database_backup
- oci_database_database
- oci_database_db_home
- oci_database_db_system
- oci_database_exadata_infrastructure
- oci_database_vm_cluster_network
- oci_database_vm_cluster
- oci_database_database_software_image
- oci_database_cloud_exadata_infrastructure
- oci_database_cloud_vm_cluster
- oci_database_key_store
- oci_database_external_container_database
- oci_database_external_pluggable_database
- oci_database_external_non_container_database
- oci_database_external_database_connector
- oci_database_pluggable_database
- oci_database_vm_cluster_add_virtual_machine
- oci_database_vm_cluster_remove_virtual_machine
- oci_database_cloud_autonomous_vm_cluster
database_migration
- oci_database_migration_connection
- oci_database_migration_migration
database_tools
- oci_database_tools_database_tools_private_endpoint
- oci_database_tools_database_tools_connection
datacatalog
- oci_datacatalog_catalog
- oci_datacatalog_data_asset
- oci_datacatalog_connection
- oci_datacatalog_catalog_private_endpoint
- oci_datacatalog_metastore
dataflow
- oci_dataflow_application
- oci_dataflow_private_endpoint
dataintegration
- oci_dataintegration_workspace
datascience
- oci_datascience_project
- oci_datascience_notebook_session
- oci_datascience_model
- oci_datascience_model_provenance
- oci_datascience_model_deployment
- oci_datascience_job
- oci_datascience_job_run
devops
- oci_devops_project
- oci_devops_deploy_environment
- oci_devops_deploy_artifact
- oci_devops_deploy_pipeline
- oci_devops_deploy_stage
- oci_devops_deployment
- oci_devops_repository
- oci_devops_repository_ref
- oci_devops_build_pipeline
- oci_devops_build_run
- oci_devops_connection
- oci_devops_build_pipeline_stage
- oci_devops_trigger
- oci_devops_repository_mirror
dns
- oci_dns_zone
- oci_dns_steering_policy
- oci_dns_steering_policy_attachment
- oci_dns_tsig_key
- oci_dns_rrset
- oci_email_suppression
- oci_email_sender
- oci_email_email_domain
- oci_email_dkim
イベント
- oci_events_rule
file_storage
- oci_file_storage_file_system
- oci_file_storage_mount_target
- oci_file_storage_export
- oci_file_storage_snapshot
functions
- oci_functions_application
- oci_functions_function
golden_gate
- oci_golden_gate_database_registration
- oci_golden_gate_deployment
- oci_golden_gate_deployment_backup
health_checks
- oci_health_checks_http_monitor
- oci_health_checks_ping_monitor
identity
- oci_identity_api_key
- oci_identity_authentication_policy
- oci_identity_auth_token
- oci_identity_compartment
- oci_identity_customer_secret_key
- oci_identity_dynamic_group
- oci_identity_group
- oci_identity_identity_provider
- oci_identity_idp_group_mapping
- oci_identity_policy
- oci_identity_smtp_credential
- oci_identity_swift_password
- oci_identity_ui_password
- oci_identity_user_group_membership
- oci_identity_user
- oci_identity_tag_default
- oci_identity_tag_namespace
- oci_identity_tag
- oci_identity_network_source
- oci_identity_domain
- oci_identity_db_credential
- oci_identity_import_standard_tags_management
identity_data_plane
- oci_identity_data_plane_generate_scoped_access_token
統合
- oci_integration_integration_instance
jms
- oci_jms_fleet
キロ
- oci_kms_key
- oci_kms_key_version
- oci_kms_vault
- oci_kms_sign
- oci_kms_verify
制限
- oci_limits_quota
load_balancer
- oci_load_balancer_backend
- oci_load_balancer_backend_set
- oci_load_balancer_certificate
- oci_load_balancer_hostname
- oci_load_balancer_listener
- oci_load_balancer_load_balancer
- oci_load_balancer_path_route_set
- oci_load_balancer_load_balancer_routing_policy
- oci_load_balancer_rule_set
log_analytics
- oci_log_analytics_log_analytics_object_collection_rule
- oci_log_analytics_log_analytics_import_custom_content
- oci_log_analytics_namespace_scheduled_task
- oci_log_analytics_log_analytics_preferences_management
- oci_log_analytics_log_analytics_unprocessed_data_bucket_management
- oci_log_analytics_log_analytics_resource_categories_management
logging
- oci_logging_log_group
- oci_logging_log
- oci_logging_unified_agent_configuration
management_agent
- oci_management_agent_management_agent
- oci_management_agent_management_agent_install_key
マーケットプレイス
- oci_marketplace_accepted_agreement
- oci_marketplace_publication
metering_computation
- oci_metering_computation_query
- oci_metering_computation_custom_table
- oci_metering_computation_schedule
monitoring
- oci_monitoring_alarm
mysql
- oci_mysql_heat_wave_cluster
- oci_mysql_mysql_backup
- oci_mysql_mysql_db_system
- oci_mysql_channel
network_load_balancer
- oci_network_load_balancer_network_load_balancer
- oci_network_load_balancer_backend_set
- oci_network_load_balancer_backend_sets_health_checker
- oci_network_load_balancer_backend
- oci_network_load_balancer_listener
nosql
- oci_nosql_table
- oci_nosql_index
object_storage
- oci_objectstorage_bucket
- oci_objectstorage_object_lifecycle_policy
- oci_objectstorage_object
- oci_objectstorage_preauthrequest
- oci_objectstorage_replication_policy
oce
- oci_oce_oce_instance
ocvp
- oci_ocvp_sddc
- oci_ocvp_esxi_host
oda
- oci_oda_oda_instance
ons
- oci_ons_notification_topic
- oci_ons_subscription
operator_access_control
- oci_operator_access_control_operator_control
- oci_operator_access_control_operator_control_assignment
opsi
- oci_opsi_enterprise_manager_bridge
- oci_opsi_database_insight
- oci_opsi_host_insight
- oci_opsi_exadata_insight
- oci_opsi_awr_hub
- oci_opsi_operations_insights_warehouse_user
- oci_opsi_operations_insights_warehouse
- oci_opsi_operations_insights_warehouse_download_warehouse_wallet
- oci_opsi_operations_insights_warehouse_rotate_warehouse_wallet
- oci_opsi_operations_insights_private_endpoint
オプティマイザ
- oci_optimizer_profile
osmanagement
- oci_osmanagement_managed_instance
- oci_osmanagement_managed_instance_group
- oci_osmanagement_software_source
osp_gateway
- oci_osp_gateway_subscription
sch
- oci_sch_service_connector
stack_monitoring
- oci_stack_monitoring_monitored_resource
- oci_stack_monitoring_discovery_job
- oci_stack_monitoring_monitored_resources_list_member
- oci_stack_monitoring_monitored_resources_search_association
- oci_stack_monitoring_monitored_resources_search
- oci_stack_monitoring_monitored_resources_associate_monitored_resource
ストリーミング
- oci_streaming_connect_harness
- oci_streaming_stream_pool
- oci_streaming_stream
usage_proxy
- oci_usage_proxy_subscription_redeemable_user
Vault
- oci_vault_secret
visual_builder
- oci_visual_builder_vb_instance
vulnerability_scanning
- oci_vulnerability_scanning_host_scan_recipe
- oci_vulnerability_scanning_host_scan_target
- oci_vulnerability_scanning_container_scan_recipe
- oci_vulnerability_scanning_container_scan_target
waas
- oci_waas_address_list
- oci_waas_custom_protection_rule
- oci_waas_http_redirect
- oci_waas_waas_policy
えぇー
- oci_waf_web_app_firewall_policy
- oci_waf_web_app_firewall
- oci_waf_network_address_list