Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Triển khai nhiều phiên bản máy tính Oracle bằng cách sử dụng một nhóm cá thể và biểu mẫu địa hình

Chào mừng bạn đến với chương thứ ba của loạt bài dành riêng cho cơ sở hạ tầng đám mây Oracle và địa hình, nếu bạn đã bỏ qua các chương trước tại đây, bạn có thể tìm thấy các liên kết:

  • Thiết lập nhà cung cấp Đám mây Oracle Terraform.
  • Triển khai phiên bản điện toán Đám mây Oracle bằng cách sử dụng terraform

Sau khi khởi chạy thành công phiên bản đầu tiên, chúng tôi đã sẵn sàng cho một ví dụ phức tạp hơn.

Thiết lập môi trường

Trong kho lưu trữ của chúng tôi, hãy thay đổi thư mục và đi vào bên trong thư mục instance-pool:

cd oracle-cloud-terraform-examples/instance-pool/

Sửa đổi vars.tf theo cách tương tự khi đã sửa đổi tệp vars.tf trong ví dụ đơn giản (để thiết lập tệp vars.tf từ đầu, hãy làm theo phần Thiết lập biến)

Các biến phụ

Chúng tôi có một số biến bổ sung trong ví dụ này:

Biến Mặc định Mô tả
fault_domains "FAULT-DOMAIN-1", "FAULT-DOMAIN-2", "FAULT-DOMAIN-3" Biến này là danh sách các miền lỗi nơi nhóm phiên bản của chúng tôi sẽ triển khai các phiên bản của chúng tôi
instance_pool_size 2 Số lượng phiên bản sẽ khởi chạy trong nhóm phiên bản

Tổng quan về cơ sở hạ tầng

Cơ sở hạ tầng giống như ví dụ trường hợp đơn giản nhưng chúng tôi cũng có:

  • một bộ cân bằng tải mạng, sẽ định tuyến lưu lượng truy cập từ internet đến các phiên bản nhóm cá thể của chúng tôi
  • một cấu hình phiên bản được nhóm phiên bản sử dụng
  • một nhóm bản sao
  • hai phiên bản máy tính Oracle được khởi chạy bởi nhóm phiên bản

Bộ cân bằng tải mạng được thực hiện bởi:

  • một người nghe (cổng 80)
  • một tập hợp được hỗ trợ
  • một cái được hỗ trợ cho mỗi phiên bản trong nhóm phiên bản

Ghi chú

Một số lưu ý quan trọng:

  • Theo mặc định, tường lửa trên các phiên bản máy tính bị tắt. Trong một số thử nghiệm, tường lửa đã tạo ra một số vấn đề
  • Nginx sẽ được cài đặt theo mặc định (nginx được sử dụng để kiểm tra các quy tắc danh sách bảo mật và để kiểm tra thiết lập bộ cân bằng tải mạng)
  • Hệ điều hành được sử dụng là Ubuntu 20.04

Triển khai

Bây giờ, hãy tạo tệp terraform.tfvars (phần thiết lập Terraform) và khởi tạo terraform:

terraform init

Initializing the backend...

Initializing provider plugins...
- Finding latest version of hashicorp/oci...
- Installing hashicorp/oci v4.50.0...
- Installed hashicorp/oci v4.50.0 (signed by HashiCorp)

Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

hiện chúng tôi đã sẵn sàng triển khai cơ sở hạ tầng của mình:

terraform plan

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # oci_core_default_route_table.default_oci_core_default_route_table will be created
  + resource "oci_core_default_route_table" "default_oci_core_default_route_table" {
      + compartment_id             = (known after apply)
      + defined_tags               = (known after apply)
      + display_name               = (known after apply)
      + freeform_tags              = (known after apply)
      + id                         = (known after apply)
      + manage_default_resource_id = (known after apply)
      + state                      = (known after apply)
      + time_created               = (known after apply)

      + route_rules {
          + cidr_block        = (known after apply)
          + description       = (known after apply)
          + destination       = "0.0.0.0/0"
          + destination_type  = "CIDR_BLOCK"
          + network_entity_id = (known after apply)
        }
    }


<TRUNCATED OUTPUT>

Plan: 14 to add, 0 to change, 0 to destroy.

Changes to Outputs:
  + instances_ips = [
      + (known after apply),
      + (known after apply),
    ]
  + lb_ip         = (known after apply)

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now.

nếu chúng tôi không có lỗi chạy:

terraform apply

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create
 <= read (data resources)


Terraform will perform the following actions:

  # data.oci_core_instance.ubuntu_instance_pool_instances_ips[0] will be read during apply
  # (config refers to values not yet known)
 <= data "oci_core_instance" "ubuntu_instance_pool_instances_ips"  {
      + agent_config                        = (known after apply)
      + async                               = (known after apply)
      + availability_config                 = (known after apply)
      + availability_domain                 = (known after apply)
      + boot_volume_id                      = (known after apply)
      + capacity_reservation_id             = (known after apply)
      + compartment_id                      = (known after apply)
      + create_vnic_details                 = (known after apply)
      + dedicated_vm_host_id                = (known after apply)
      + defined_tags                        = (known after apply)
      + display_name                        = (known after apply)
      + extended_metadata                   = (known after apply)
      + fault_domain                        = (known after apply)
      + freeform_tags                       = (known after apply)
      + hostname_label                      = (known after apply)
      + id                                  = (known after apply)
      + image                               = (known after apply)
      + instance_id                         = (known after apply)
      + instance_options                    = (known after apply)
      + ipxe_script                         = (known after apply)
      + is_pv_encryption_in_transit_enabled = (known after apply)
      + launch_mode                         = (known after apply)
      + launch_options                      = (known after apply)
      + metadata                            = (known after apply)
      + platform_config                     = (known after apply)
      + preemptible_instance_config         = (known after apply)
      + preserve_boot_volume                = (known after apply)
      + private_ip                          = (known after apply)
      + public_ip                           = (known after apply)
      + region                              = (known after apply)
      + shape                               = (known after apply)
      + shape_config                        = (known after apply)
      + source_details                      = (known after apply)
      + state                               = (known after apply)
      + subnet_id                           = (known after apply)
      + system_tags                         = (known after apply)
      + time_created                        = (known after apply)
      + time_maintenance_reboot_due         = (known after apply)
    }

<TRUNCATED OUTPUT>

oci_network_load_balancer_listener.test_listener: Creation complete after 25s [id=networkLoadBalancers/ocid1.networkloadbalancer.oc1.eu-zurich-1.amaaaaaa5kjm7pyarkfapfnqqxrwaowlnmj5mnd3etmig5nfcwd3m5yb7uha/listeners/LB%20test%20listener]
oci_network_load_balancer_backend.test_backend[1]: Still creating... [31s elapsed]
oci_network_load_balancer_backend.test_backend[0]: Still creating... [31s elapsed]
oci_network_load_balancer_backend.test_backend[0]: Still creating... [41s elapsed]
oci_network_load_balancer_backend.test_backend[1]: Still creating... [41s elapsed]
oci_network_load_balancer_backend.test_backend[0]: Creation complete after 42s [id=networkLoadBalancers/ocid1.networkloadbalancer.oc1.eu-zurich-1.amaaaaaa5kjm7pyarkfapfnqqxrwaowlnmj5mnd3etmig5nfcwd3m5yb7uha/backendSets/Backend%20set%20test/backends/ocid1.instance.oc1.eu-zurich-1.an5heljr5kjm7pycu5exolhnubsq5isqo6nveddlmlsblkz7geb6vbwsvbtq.80]
oci_network_load_balancer_backend.test_backend[1]: Still creating... [51s elapsed]
oci_network_load_balancer_backend.test_backend[1]: Still creating... [1m1s elapsed]
oci_network_load_balancer_backend.test_backend[1]: Still creating... [1m11s elapsed]
oci_network_load_balancer_backend.test_backend[1]: Creation complete after 1m14s [id=networkLoadBalancers/ocid1.networkloadbalancer.oc1.eu-zurich-1.amaaaaaa5kjm7pyarkfapfnqqxrwaowlnmj5mnd3etmig5nfcwd3m5yb7uha/backendSets/Backend%20set%20test/backends/ocid1.instance.oc1.eu-zurich-1.an5heljr5kjm7pycft5ixge6ssknpyb5s6q3eihuccogpqrvv2ntqdlww72a.80]

Apply complete! Resources: 14 added, 0 changed, 0 destroyed.

Outputs:

instances_ips = [
  "132.x.x.x",
  "152.x.x.x",
]
lb_ip = tolist([
  {
    "ip_address" = "140.x.x.x"
    "is_public" = true
    "reserved_ip" = tolist([])
  },
])

Bây giờ chúng ta có thể ssh trong một trong các trường hợp đã triển khai:

ssh [email protected]

...
35 updates can be applied immediately.
25 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable



The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

ubuntu@inst-ikudx-ubuntu-instance-pool:~$

Sau vài phút (ít nhất một chương trình phụ trợ phải ở trạng thái LÀNH MẠNH), trình cân bằng tải mạng cũng sẽ phản hồi các yêu cầu của chúng tôi:

curl -v 140.x.x.x
*   Trying 140.x.x.x:80...
* TCP_NODELAY set
* Connected to 140.x.x.x (140.x.x.x) port 80 (#0)
> GET / HTTP/1.1
> Host: 140.x.x.x
> User-Agent: curl/7.68.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: nginx/1.18.0 (Ubuntu)
< Date: Wed, 27 Oct 2021 15:39:51 GMT
< Content-Type: text/html
< Content-Length: 672
< Last-Modified: Wed, 27 Oct 2021 15:33:26 GMT
< Connection: keep-alive
< ETag: "61797146-2a0"
< Accept-Ranges: bytes
...
...
...

Dọn dẹp

Để dọn dẹp / phá hủy cơ sở hạ tầng của chúng tôi:

terraform destroy

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Liên kết lại cơ sở hạ tầng lưới

  2. Làm sạch cột Ngày của Oracle

  3. sự cố khi sử dụng các tham số Oracle trong SELECT IN

  4. Cần đặt lại giá trị của chuỗi trong Oracle

  5. Cách in nhiều báo cáo có mã vạch \ hoặc nhiều mã vạch trong một báo cáo