استقرار خوشه با دردسترس بودن بالای AlloyDB Omni در ماشین‌های مجازی GCE بااستفاده از RPM Orchestrator

۱. مقدمه

این codelab استقرار خوشه با دردسترس بودن بالای (HA) AlloyDB Omni را در «ماشین‌های مجازی» (VM) در Google Compute Engine‏ (GCE) نشان می‌دهد. در پایان این codelab، معماری مرجع «دسترسی بالا» متشکل از ۳ گره «پایگاه داده» و ۲ گره HAProxy را به‌همراه گره کنترل برای عملیات مدیریت آماده خواهید کرد.

پیش‌نیازها

  • دسترسی به «پروژه ابری Google» و Cloud Shell از «کنسول Cloud».
  • «کیت توسعه نرم‌افزار Google Cloud» (gcloud) نصب و پیکربندی شد. برای جزئیات نصب gcloud، به gcloud-install مراجعه کنید
  • ‫Terraform v1.9.8 نصب شد.

آنچه خواهید آموخت

  • نحوه ایجاد و آماده‌سازی ماشین‌های مجازی GCE برای AlloyDB Omni.
  • نحوه نصب و اجرای AlloyDB Omni RPM Orchestrator.
  • نحوه نصب و پیکربندی AlloyDB Omni RPM برای معماری مرجع HA.

آنچه نیاز خواهید داشت

  • پیوند نشانی وب را برای RPMهای AlloyDB Omni و هماهنگ‌کننده RPM دریافت کنید. برای این کار، باید فرم ثبت‌نام omni alloydb را تکمیل کنید. پیوندها به ایمیل سرور نشانی وب مخزن شما ارسال می‌شود. متغیرهای محیطی زیر را مقداردهی اولیه کنید تا نشانی‌های وبی که درطول codelab استفاده می‌شوند دردسترس باشند.
    export ORCHESTRATOR_ANSIBLE_COLLECTION_PATH="..."
    export ALLOYDB_OMNI_REPOSITORY_URL="..."
    export ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL="..."
    export ALLOYDB_OMNI_COMMON_REPOSITORY_URL="..."
    export ETCD_REPOSITORY_URL="..."
    
  • ترمینال کاری با دسترسی به پشته استقرار AlloyDB Omni. می‌توانید از cloud shell برای این منظور استفاده کنید.

۲. راه‌اندازی و الزامات

راه‌اندازی پروژه

ایجاد پروژه Google Cloud

  1. در کنسول Google Cloud، در صفحه انتخابگر پروژه، پروژه Google Cloud را انتخاب یا ایجاد کنید.
  2. مطمئن شوید که صورت‌حساب برای پروژه Cloud شما فعال است. با نحوه بررسی فعال بودن صورت‌حساب در یک پروژه آشنا شوید.

شروع Cloud Shell

اگرچه می‌توان Google Cloud را ازطریق رایانه کیفی از دور اداره کرد، در این codelab از Google Cloud Shell استفاده خواهید کرد، محیط خط فرمانی که در Cloud اجرا می‌شود.

از کنسول Google Cloud، روی نماد Cloud Shell در نوارابزار بالا سمت چپ کلیک کنید:

نماد فعال کردن Cloud Shell

یا می‌توانید G و سپس S را فشار دهید. اگر در Google Cloud Console هستید یا از این پیوند استفاده می‌کنید، این توالی Cloud Shell را فعال می‌کند.

تأمین و اتصال به محیط فقط چند ثانیه طول می‌کشد. وقتی تمام شد، باید چیزی شبیه به این ببینید:

ترمینال Google Cloud Shell که نشان می‌دهد محیط متصل شده است

این ماشین مجازی با همه ابزارهای توسعه‌ای که نیاز دارید بارگذاری شده است. این سرویس یک دایرکتوری خانه دائمی ۵ گیگابایتی ارائه می‌دهد و در Google Cloud اجرا می‌شود که عملکرد شبکه و اصالت‌سنجی را به‌طور قابل‌توجهی بهبود می‌بخشد. تمام کارهای این کدآزمایی را می‌توانید در مرورگر انجام دهید. نیازی به نصب چیزی نیست.

۳. ایجاد ماشین‌های مجازی Google Cloud Compute Engine

آماده کردن متن‌های Terraform

  1. متغیرهای محیطی را برای شناسه پروژه و نام خوشه موردنظرتان تعریف کنید. در سراسر این آزمایش کد از این موارد استفاده خواهید کرد.
    export PROJECT="your-project-id"
    export CLUSTER="your-cluster-name"
    
    توجه: شناسه پروژه Google Cloud باید فقط بین ۶ تا ۳۰ نویسه باشد. برای کسب اطلاعات بیشتر، به https://docs.cloud.google.com/resource-manager/docs/creating-managing-projects#before_you_begin مراجعه کنید
  2. مطمئن شوید که با کاربر حساب Google Cloud به سیستم وارد شده‌اید.
    gcloud auth login
    
  3. یک دایرکتوری کاری برای استقرار خود ایجاد کنید و فایل‌های پیکربندی Terraform موردنیاز را از منبع مخزن خود کپی کنید.
    mkdir -p ~/alloydb-omni/$PROJECT/$CLUSTER
    cd ~/alloydb-omni/$PROJECT/$CLUSTER
    gcloud storage cp gs://alloydb-omni-install/rpm-orchestrator/gce/terraform/*.tf .
    
  4. فایل terraform.tfvars را برای مشخص کردن پارامترهای موردنیاز طبق معماری مرجع طبق محتوای زیر ایجاد کنید:
    cat > terraform.tfvars <<EOF
    # Required instance counts for reference architecture
    db_instance_count      = 3
    haproxy_instance_count = 2
    control_instance_count = 1
    
    # Optional: Customize if needed with the below variables
    # os_image             = "rocky-linux-cloud/rocky-linux-9"
    # zone                 = "us-west4-c"
    # region_1             = "us-west4"
    # db_instance_type     = "c4-highmem-4"
    # db_disk_type         = "hyperdisk-balanced"
    # db_data_size         =  "50" # GB
    # data_dir             =  "/data"
    EOF
    

اجرای دستورگان‌های Terraform و «اعتبارسنجی»

  1. اکنون می‌توانید ماشین‌های مجازی را آماده کنید.
    terraform init
    
  2. قبل‌از ایجاد ماشین‌های مجازی، مطمئن شوید که دسترسی لازم برای ایجاد ماشین‌های مجازی و منابع دیگر را دارید. به‌طور خلاصه، به اجازه‌های زیر نیاز دارید.
    roles/compute.admin
    roles/iam.roleAdmin
    roles/compute.osAdminLogin
    roles/iam.serviceAccountCreator
    roles/iam.serviceAccountUser
    roles/artifactregistry.repoAdmin
    roles/storage.objectUser
    roles/resourcemanager.projectIamAdmin
    roles/serviceusage.serviceUsageAdmin
    
  3. پیکربندی را اعتبارسنجی کنید و پیکربندی را برای آماده‌سازی منابع اعمال کنید.
    terraform validate
    terraform apply --auto-approve
    
    توجه: مطمئن شوید که از Terraform v1.9.8 استفاده می‌کنید، همان‌طور که پیکربندی استقرار انتظار دارد.
  4. پس‌از تکمیل Terraform، با فهرست کردن نمونه‌های ایجادشده بااستفاده از gcloud، بررسی کنید که ماشین‌های مجازی باموفقیت ایجاد شده باشند.
    gcloud compute instances list --filter="name~$CLUSTER" --project=$PROJECT
    
    باید نمونه‌های متناظر با ۳ گره DB،‏ ۲ گره HAProxy، و ماشین مجازی کنترل و مناطق مربوطه را ببینید. ‫ZONE را برای گره کنترل ضبط کنید. بعداً در این کدآزمایی به آن نیاز خواهیم داشت.
    export ZONE=$(gcloud compute instances list \
      --filter="name=$CLUSTER-control"          \
      --format="value(zone)" --project=$PROJECT)
    

۴. آماده کردن ماشین‌های مجازی برای استقرار

باید جلسه SSH را برای گره کنترل ایجاد کنید و مراحل فعال کردن دسترسی SSH به همه ماشین‌های مجازی (که گره نیز نامیده می‌شوند) را انجام دهید.

  1. مطمئن شوید که متغیرهای محیطی برای پروژه و خوشه‌تان تعریف شده است.
    export PROJECT="your-project-id"
    export CLUSTER="your-cluster-name"
    
  2. کلید SSH ایجاد کنید و همان را برای ورود به سیستم ماشین مجازی کنترل اضافه کنید.
    # Replace values with your specific GCP project, cluster and zone details
    ssh-keygen -t ed25519 -f $HOME/.ssh/google_compute_engine
    gcloud compute os-login ssh-keys add --key-file=$HOME/.ssh/google_compute_engine.pub --project=$PROJECT
    
  3. قانون دیوار آتش را برای مجاز کردن اتصال‌های «پوسته ایمن» ایجاد کنید و ترافیک VRRP را نیز مجاز کنید.
    gcloud compute config-ssh --project=$PROJECT
    gcloud compute firewall-rules create $CLUSTER-allow-ssh --network=$CLUSTER --project=$PROJECT --direction=INGRESS --action=allow --rules=tcp:22 --source-ranges="0.0.0.0/0"
    gcloud compute firewall-rules create $CLUSTER-allow-vrrp --network=$CLUSTER --project=$PROJECT --allow=112 --source-ranges="0.0.0.0/0"
    
  4. ازطریق «پوسته ایمن» به ماشین مجازی کنترل متصل شوید:
    gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECT
    
  5. گروه Linux را در گره کنترل با همان نام نام کاربری ایجاد کنید:
    sudo groupadd -f $(id -un)
    sudo usermod -aG $(id -un) $(id -un)
    
  6. راه‌اندازی Terraform چند دستورگان پیکربندی ایجاد می‌کند و آن‌ها را در پوشه /tmp/ ماشین مجازی کنترل قرار می‌دهد که شامل مواردی مثل نام خوشه، حساب سرویس، نام پروژه، و غیره می‌شود.بااستفاده از دستورگان‌های راه‌اندازی در گره کنترل، دسترسی ssh بدون گذرواژه از گره‌های کنترل به همه گره‌های خوشه ایجاد کنید.
    /tmp/setup-ssh-for-cluster.sh
    
    مهم: کاربر service_account را یادداشت کنید. بعداً در این codelab از این به‌عنوان SSH_USER استفاده خواهیم کرد.
  7. برای این codelab، می‌توانیم SELinux را در همه گره‌ها غیرفعال کنیم. دستورگان Terraform «tmp/run-all.sh/» را اضافه می‌کند که می‌تواند برای این هدف استفاده شود.
    /tmp/run-all.sh sudo setenforce 0
    
  8. اگر برای AlloyDB Omni ثبت‌نام کرده‌اید و پیوندها را دریافت کرده‌اید، اکنون زمان آن است که آن نشانی‌های وب را به متغیرهای محیطی نیز اضافه کنید.
    cat >> ~/.codelab.env <<EOF
    export ORCHESTRATOR_ANSIBLE_COLLECTION_PATH="..."
    export ALLOYDB_OMNI_REPOSITORY_URL="..."
    export ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL="..."
    export ALLOYDB_OMNI_COMMON_REPOSITORY_URL="..."
    export ETCD_REPOSITORY_URL="..."
    EOF
    
    از متغیر ورودی cidr_range در فایل terraform/variables.tf، برای محیطتان یک IP مجازی انتخاب کنید به‌طوری که با گره‌های دیگر تداخل نداشته باشد، همان‌طور که در مثال زیر نشان داده شده است:
    cat >> ~/.codelab.env <<EOF
    export VIRTUAL_IP="10.1.0.50"
    EOF
    

۵. نصب عناصر نرم‌افزاری موردنیاز در همه ماشین‌های مجازی

مرحله بعدی نصب مؤلفه‌های نرم‌افزار موردنیاز در ماشین‌های مجازی است. این کار را می‌توان در گره کنترل هماهنگ کرد. همه فرمان‌های زیر باید در گره کنترل اجرا شوند.

  1. اگر قبلاً در گره کنترل نیستید، ازطریق SSH به ماشین مجازی کنترل متصل شوید.
    gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECT
    
    پس‌از اینکه در پیام‌واره ssh ماشین مجازی کنترل قرار گرفتید، فایل محیط منبع را تهیه کنید.
    source ~/.codelab.env
    
  2. در گره کنترل، Ansible و کتابخانه‌های Python موردنیاز را نصب کنید.
    sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y
    sudo dnf install -y ansible
    sudo dnf install -y python3-grpcio python3-protobuf python3-googleapis-common-protos python3-grpcio-status
    
  3. سپس، فایل tar مجموعه RPM Orchestrator Ansible را بارگیری کنید و آن را نصب کنید.
    gcloud storage cp "gs://${ORCHESTRATOR_ANSIBLE_COLLECTION_PATH#https://storage.googleapis.com/}google-alloydbomni_orchestrator-*.tar.gz" .
    COLLECTION_FILE=$(ls -1 google-alloydbomni_orchestrator-*.tar.gz \
      | sort -V | tail -n 1)
    ansible-galaxy collection install "$COLLECTION_FILE"
    ansible-galaxy collection list | grep alloydbomni_orchestrator
    
    فرمان‌های sort -V و tail -n 1 فایلی را که جدیدترین نسخه است انتخاب می‌کنند. توجه: مطمئن شوید متغیر ORCHESTRATOR_ANSIBLE_COLLECTION_PATH در انتها «/» داشته باشد.
  4. هماهنگ‌کننده از فایل مشخصات استقرار در قالب فهرستگان Ansible برای درک توپولوژی خوشه‌تان استفاده می‌کند. فایلی به‌نام deployment_spec.yaml با جزئیات گره در گره کنترل ایجاد کنید.
    cat > deployment_spec.yaml <<EOF
    alloydbomni:
      vars:
        cluster_manager:
          name: "$CLUSTER"
        etcd:
          setup: true
          config_forcewrite: true
        alloydbomni:
          major_version: "18"
          repo_url: $ALLOYDB_OMNI_REPOSITORY_URL
        alloydbomni_monitor:
          repo_url: $ALLOYDB_OMNI_COMMON_REPOSITORY_URL
        alloydbomni_cluster_manager:
          repo_url: $ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
        alloydbomni_node_manager:
          repo_url: $ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
        pgbouncer:
          repo_url: $ALLOYDB_OMNI_COMMON_REPOSITORY_URL
        pgbackrest:
          repo_url: $ALLOYDB_OMNI_COMMON_REPOSITORY_URL
    
      children:
        primary_instance_nodes:
          hosts:
            $CLUSTER-db1:
            $CLUSTER-db2:
            $CLUSTER-db3:
        load_balancer_nodes:
          hosts:
            $CLUSTER-haproxy1:
            $CLUSTER-haproxy2:
    EOF
    
    توجه: فایل تولیدشده را مرور کنید تا مطمئن شوید به مقادیر معتبر اشاره می‌کند.
  5. کتابچه‌ای با نام install.yaml ایجاد کنید که به نقش نصب از مجموعه هماهنگ‌کننده ارجاع دهد.
    cat > install.yaml <<EOF
    - name: Install AlloyDB Omni cluster components
      hosts: all
      vars:
        ansible_become: true
        ansible_user: $SSH_USER
        ansible_ssh_private_key_file: $HOME/ssh-key-cluster-sa
      roles:
        - role: google.alloydbomni_orchestrator.install
    EOF
    
    توجه: فایل تولیدشده را مرور کنید تا مطمئن شوید به مقادیر معتبر اشاره می‌کند.
  6. بااستفاده از فایل فضای آگهی‌تان، کتابچه نمایشی را اجرا کنید تا «بسته‌های RPM» در همه گره‌های مشخص‌شده بارگیری و نصب شوند.
    ansible-playbook -i deployment_spec.yaml install.yaml
    

‫۶. راه‌اندازی خوشه AlloyDB Omni

در این مرحله، همه عناصر لازم را روی همه گره‌ها نصب کرده‌ایم. آماده‌ایم خوشه AlloyDB Omni را راه‌اندازی کنیم.

  1. اگر قبلاً در گره کنترل نیستید، ازطریق SSH به ماشین مجازی کنترل متصل شوید.
    gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECT
    
    پس‌از اینکه در پیام‌واره ssh ماشین مجازی کنترل قرار گرفتید، فایل محیط منبع را وارد کنید.
    source ~/.codelab.env
    
  2. برای گذرواژه‌تان درهم‌سازی تولید کنید و نسخه پایگاه داده نصب‌شده AlloyDB Omni را واکشی کنید:
    encoded_password=$(echo -n "your unique password" | base64)
    DB_VERSION=$(/tmp/run-all.sh -t db 'rpm -q --qf "%{VERSION}\n" alloydbomni18' | tail -n 1)
    echo "$DB_VERSION"
    
  3. برای ایجاد خوشه، AlloyDB Omni باید بداند چگونه آن را پیکربندی کند. فایل dbcluster.yaml را برای مشخصات خوشه پایگاه داده ایجاد کنید.
    cat > dbcluster.yaml <<EOF
    Secret:
      metadata:
        name: db-pw-$CLUSTER
      spec:
        type: Opaque
        data:
          $CLUSTER: $encoded_password
    ---
    DBCluster:
      metadata:
        name: $CLUSTER
      spec:
        databaseVersion: $DB_VERSION
        mode: ""
        availability:
          numberOfStandbys: 2
          enableAutoFailover: true
          enableAutoHeal: true
          autoFailoverTriggerThreshold: 2
          autoHealTriggerThreshold: 2
          healthcheckPeriodSeconds: 5
          replayReplicationSlotsOnStandbys: false
        primarySpec:
          adminUser:
            passwordRef:
              name: db-pw-$CLUSTER
          resources:
            cpu: 4
            memory: 32Gi
            disks:
            - name: DataDisk
              path: $PGDATA
          dbLoadBalancerOptions:
            gcp:
              loadBalancerIP: "$VIRTUAL_IP"
              loadBalancerType: "internal"
              loadBalancerInterface: "eth0"
    EOF
    
  4. کتابچه‌ای به نام bootstrap.yaml ایجاد کنید که به نقش bootstrap ansible برای ایجاد «خوشه AlloyDB Omni» ارجاع می‌دهد.
    cat > bootstrap.yaml <<EOF
    - name: Create DBCluster
      hosts: localhost
      roles:
      - role: google.alloydbomni_orchestrator.bootstrap
    EOF
    
  5. برای ایجاد خوشه، کتابچه نمایشتان را اجرا کنید
    ansible-playbook bootstrap.yaml -i deployment_spec.yaml -e resource_spec=dbcluster.yaml
    

‫۷. (اختیاری) پیکربندی استخر اتصال PgBouncer

‫AlloyDB Omni از تجمیع اتصال سبک‌وزن بااستفاده از PgBouncer پشتیبانی می‌کند. می‌توانید PgBouncer را بلافاصله پس‌از آماده شدن خوشه‌تان پیکربندی و راه‌اندازی کنید.

  1. فایل مشخصات منبعی با نام pgbouncer.yaml ایجاد کنید که استخر اتصال را با خوشه پایگاه داده شما مرتبط می‌کند:
    cat > pgbouncer.yaml <<EOF
    PgBouncer:
      metadata:
        name: pgbouncer-pooler
      spec:
        dbclusterRef: $CLUSTER
        allowSuperUserAccess: true
        accessMode: "rw"
        port: 6432
    EOF
    
  2. بااستفاده از همان کتابچه نمایشی bootstrap.yaml که قبلاً ساخته شده است، استخر PgBouncer را راه‌اندازی کنید و فایل مشخصات جدید را بگذرانید:
    ansible-playbook bootstrap.yaml -i deployment_spec.yaml -e resource_spec=pgbouncer.yaml
    

‫۸. «خوشه AlloyDB Omni» را درستی‌سنجی کنید

برای تأیید اینکه خوشه‌تان به‌درستی کار می‌کند و بااستفاده از ترازکننده بار دردسترس است، می‌توانید بااستفاده از مشتری استاندارد PostgreSQL از گره کنترل به آن متصل شوید.

  1. مخزن و بسته کارخواه PostgreSQL 18 را در گره کنترل نصب کنید:
    sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    sudo dnf install -y postgresql18
    
  2. بااستفاده از IP مجازی که قبلاً رزرو کرده‌اید به خوشه متصل شوید. گذرواژه‌ای که در dbcluster.yaml کدبندی کرده‌اید از شما درخواست خواهد شد:
    /usr/pgsql-18/bin/psql -h $VIRTUAL_IP -U postgres -W
    
  3. پس‌از اتصال، می‌توانید پُرسمان‌های SQL پایه را برای درستی‌سنجی وضعیت خوشه اجرا کنید، برای مثال، نسخه پایگاه داده را بررسی کنید:
    postgres=# SELECT version();
    
    باید بروندادی‌ای ببینید که نشان دهد PostgreSQL 18 با AlloyDB Omni اجرا می‌شود. برای خروج از پیام‌واره، \q را تایپ کنید.

‫۹. (اختیاری) پشتیبان‌گیری از داده‌ها بااستفاده از pgBackRest

‫AlloyDB Omni با pgBackRest ادغام می‌شود تا نسخه‌های پشتیبان را مستقیماً در Cloud Storage مدیریت کند. می‌توانید طرح پشتیبان‌گیری را پیکربندی کنید و پشتیبان‌گیری درخواستی را برای مخزن GCS که با راه‌اندازی Terraform ایجاد شده است راه‌اندازی کنید.

  1. فایل مشخصات طرح پشتیبان‌گیری با نام backup_plan.yaml ایجاد کنید که به مخزن GCS آماده‌شده شما اشاره می‌کند:
    cat > backup_plan.yaml <<EOF
    BackupPlan:
      metadata:
        name: pgb-plan
      spec:
        dbclusterRef: $CLUSTER
        backupLocation:
          type: GCS
          gcsOptions:
            bucket: $CLUSTER-gcs-backups
            key: /backups
    EOF
    
  2. دفترچه Ansible به‌نام backup.yaml ایجاد کنید که به نقش مدیریت پشتیبان‌گیری ارجاع می‌دهد:
    cat > backup.yaml <<EOF
    - name: Manage AlloyDB Omni Backups
      hosts: localhost
      roles:
        - role: google.alloydbomni_orchestrator.backup
    EOF
    
  3. طرح پشتیبان را بااستفاده از کتابچه نمایشی backup.yaml اعمال کنید:
    ansible-playbook backup.yaml -i deployment_spec.yaml -e resource_spec=backup_plan.yaml
    
  4. پس‌از اینکه طرح باموفقیت ایجاد شد، فایل منبع پشتیبان‌گیری درخواستی با نام create_backup.yaml ایجاد کنید.
    cat > create_backup.yaml <<EOF
    Backup:
      metadata:
        name: on-demand-backup
      spec:
        backupPlanRef: pgb-plan
        dbclusterRef: $CLUSTER
    EOF
    
  5. برای شروع پشتیبان‌گیری، کتابچه نمایشی را اجرا کنید:
    ansible-playbook backup.yaml -i deployment_spec.yaml -e resource_spec=create_backup.yaml
    
  6. برای درستی‌سنجی وضعیت پشتیبان‌گیری، یک کتابچه نمایشی status.yaml ایجاد کنید:
cat > status.yaml <<EOF
- name: Fetch AlloyDB Omni Resource Status
  hosts: localhost
  roles:
    - role: google.alloydbomni_orchestrator.status
EOF
  1. کتابچه نمایشی را برای فهرست کردن همه پشتیبان‌گیری‌ها اجرا کنید:
ansible-playbook status.yaml -i deployment_spec.yaml -e resource_type=Backup
  1. یا برای دریافت اطلاعات دقیق درباره پشتیبان‌گیری خاصی که قبلاً ایجاد شده است، -e resource_name=on-demand-backup را ارسال کنید:
ansible-playbook status.yaml -i deployment_spec.yaml \
  -e resource_type=Backup \
  -e resource_name=on-demand-backup

‫۱۰. پاک‌سازی منابع

وقتی استقرار تمام شد، می‌توانید منابع تدارک‌دیده را ازبین ببرید تا هزینه‌ای برایتان ایجاد نشود.

  1. دفترچه‌ای به‌نام teardown.yaml ایجاد کنید:
    cat > teardown.yaml <<EOF
    - name: Tear down AlloyDB Omni cluster
      hosts: localhost
      roles:
      - role: google.alloydbomni_orchestrator.delete
    EOF
    
  2. بااستفاده از ansible-playbook، کتابچه نمایشی را اجرا کنید. اگر پشتیبان‌گیری‌ها را پیکربندی کرده‌اید، ابتدا منابع «پشتیبان‌گیری» و «طرح پشتیبان‌گیری» را حذف کنید:
    ansible-playbook teardown.yaml -i deployment_spec.yaml  -e "resource_type=Backup" -e "resource_name=on-demand-backup"
    ansible-playbook teardown.yaml -i deployment_spec.yaml  -e "resource_type=BackupPlan" -e "resource_name=pgb-plan"
    
    اگر PgBouncer را پیکربندی کرده‌اید، منبع استخر اتصال را در مرحله بعد حذف کنید:
    ansible-playbook teardown.yaml -i deployment_spec.yaml  -e "resource_type=PgBouncer" -e "resource_name=pgbouncer-pooler"
    
    سپس، DBCluster را به‌عنوان resource_type مشخص کنید و خوشه پایگاه داده را حذف کنید:
    ansible-playbook teardown.yaml -i deployment_spec.yaml  -e "resource_type=DBCluster" -e "resource_name=$CLUSTER"
    
  3. پس‌از حذف خوشه، از سیستم گره کنترل خارج شوید، به پایانه خود برگردید و به دایرکتوری کار Terraform خود بروید.
    توجه: اگر به‌تازگی وارد سیستم پوسته ابری شده‌اید، این موارد را تنظیم کنید:
    export PROJECT="your-project-id"
    export CLUSTER="your-cluster-name"
    
  4. قانون دیوار آتش VRRP را حذف کنید و منابع مدیریت‌شده توسط Terraform را ازبین ببرید:
    gcloud compute firewall-rules delete -q "$CLUSTER-allow-vrrp" --project="$PROJECT"
    gcloud compute firewall-rules delete -q "$CLUSTER-allow-ssh" --project="$PROJECT"
    terraform destroy
    
  5. وقتی درخواست شد، نابودی را تأیید کنید. ازآنجایی‌که منابع یا مسیرهای شبکه باقی‌مانده ممکن است گاهی اوقات از برچیدن کامل جلوگیری کنند، دستورات پاک‌سازی ایمن زیر را اجرا کنید تا مطمئن شوید همه قوانین دیوار آتش مرتبط، دروازه‌های NAT، مسیریاب‌ها، مسیرها، زیرشبکه‌ها، و شبکه‌ها به‌طور کامل برداشته می‌شوند. ‫REGION را با منطقه استقرار ویژه خودتان، مثل «us-central1»، جایگزین کنید:
    # Delete any remaining firewall rules associated with the cluster
    gcloud compute firewall-rules list --project=$PROJECT 2> /dev/null | grep ^$CLUSTER- | cut -f1 -d' ' | \
      while read rule; do gcloud compute firewall-rules delete --project=$PROJECT --quiet $rule; done
    
    # Delete the Cloud NAT gateway and router if they still exist
    gcloud compute routers nats describe $CLUSTER-nat-gw --router=$CLUSTER-router --region=REGION --project=$PROJECT 2>/dev/null \
      && gcloud compute routers nats delete $CLUSTER-nat-gw --router=$CLUSTER-router --region=REGION --project=$PROJECT --quiet
    
    gcloud compute routers describe $CLUSTER-router --region=REGION --project=$PROJECT 2>/dev/null \
      && gcloud compute routers delete $CLUSTER-router --region=REGION --project=$PROJECT --quiet
    
    # Delete any remaining custom routes
    gcloud compute routes list --project=$PROJECT --filter="network:$CLUSTER" --format="value(name)" 2>/dev/null | \
      while read route; do gcloud compute routes delete --project=$PROJECT --quiet $route 2>/dev/null || true; done
    
    # Delete the subnet and network if they still exist
    gcloud compute networks subnets describe $CLUSTER --region=REGION --project=$PROJECT 2>/dev/null \
      && gcloud compute networks subnets delete $CLUSTER --region=REGION --project=$PROJECT --quiet
    
    gcloud compute networks describe $CLUSTER --project $PROJECT 2> /dev/null \
      && gcloud compute networks delete $CLUSTER --project $PROJECT --quiet
    

‫۱۱. تبریک می‌گوییم

بابت تکمیل codelab به شما تبریک می‌گوییم.

آنچه پوشش داده‌ایم

  • نحوه ایجاد و آماده‌سازی ماشین‌های مجازی GCE برای AlloyDB Omni.
  • نحوه نصب و اجرای AlloyDB Omni RPM Orchestrator.
  • نحوه نصب و پیکربندی AlloyDB Omni RPM برای معماری مرجع HA.

در اسناد می‌توانید درباره AlloyDB Omni بیشتر بخوانید.

‫۱۲. نظرسنجی

چگونه از این آموزش استفاده خواهید کرد؟

فقط آن را بخوانید آن را بخوانید و تمرین‌ها را تکمیل کنید