3.4. 必要な Ansible Playbook の作成


Ansible は、障害復旧フェイルオーバーとフェイルバックの開始および管理に使用されます。したがって、これを容易にするために Ansible Playbook を作成する必要があります。Ansible Playbook の作成に関する詳細は、Ansible ドキュメント を参照してください。

前提条件

  • プライマリーサイトで完全に機能する Red Hat Virtualization 環境。
  • プライマリー環境と同じデータセンターとクラスターの互換性レベルを持つセカンダリーサイトのバックアップ環境。バックアップ環境には以下が必要です。

    • Red Hat Virtualization Manager。
    • 仮想マシンを実行し、レプリケートされたストレージドメインに接続できるアクティブホスト。
    • クラスターのあるデータセンター。
    • プライマリーサイトと同じ一般的な接続を持つネットワーク。
  • レプリケートされたストレージ。詳細は、ストレージに関する考慮事項 を参照してください。

    注記

    仮想マシンとテンプレートを含むレプリケートされたストレージは、セカンダリーサイトにアタッチしないでください。

  • oVirt.disaster-recovery パッケージが、フェイルオーバーおよびフェイルバックを自動化する高可用性 Red Hat Ansible Engine マシンにインストールされている必要があります。
  • Red Hat Ansible Engine を実行しているマシンは、SSH を使用してプライマリーおよびセカンダリーサイトの Manager に接続できる必要があります。

また、アフィニティーグループ、アフィニティーラベル、ユーザーなど、プライマリーサイトに存在する環境プロパティーをセカンダリーサイトに作成することが推奨されます。

注記

Ansible Playbook のデフォルト動作は、/usr/share/ansible/roles/oVirt.disaster-recovery/defaults/main.yml ファイルで設定できます。

次の Playbook を作成する必要があります。

  • プライマリーサイトとセカンダリーサイトのエンティティーをマップするファイルを作成する Playbook。
  • フェイルオーバー Playbook。
  • フェイルバック Playbook。

フェイルバックする前にプライマリーサイトをクリーンアップする Playbook もオプションで作成できます。

フェイルオーバーおよびフェイルバックを管理している Ansible マシンの /usr/share/ansible/roles/oVirt.disaster-recovery/ に Playbook と関連ファイルを作成します。それを管理できる複数の Ansible マシンがある場合は、それらすべてにファイルをコピーするようにしてください。

Testing the Active-Passive Configuration のテスト手順を 1 つ以上使用して、設定をテストできます。

3.4.1. Ansible タスク用の ovirt-dr スクリプト

ovirt-dr スクリプトは、次の Ansible タスクを簡素化します。

  • プライマリーサイトおよびセカンダリーサイトのフェイルオーバーおよびフェイルバック用 var マッピングファイルの生成
  • var マッピングファイルの検証
  • ターゲットサイトでのフェイルオーバーの実行
  • ターゲットサイトからソースサイトへのフェイルバックの実行

このスクリプトは、/usr/share/ansible/roles/oVirt.disaster-recovery/files にあります。

使用方法

# ./ovirt-dr generate/validate/failover/failback
              [--conf-file=dr.conf]
              [--log-file=ovirt-dr-log_number.log]
              [--log-level=DEBUG/INFO/WARNING/ERROR]

スクリプトの動作のパラメーターは、設定ファイル /usr/share/ansible/roles/oVirt.disaster-recovery/files/dr.conf に設定できます。

--conf-file オプションを使用して、設定ファイルの場所を変更できます。

--log-file および --log-level オプションを使用して、ログの詳細の場所とレベルを設定できます。

3.4.2. マッピングファイルを生成する Playbook の作成

マッピングファイルの生成に使用する Ansible Playbook は、ターゲット (プライマリー) サイトのエンティティーをファイルに事前入力します。次に、IP アドレス、クラスター、アフィニティーグループ、アフィニティーラベル、外部 LUN ディスク、承認ドメイン、ロール、vNIC プロファイルなどのバックアップサイトのエンティティーを、ファイルに手動で追加する必要があります。

重要

セルフホストエンジンのストレージドメインに仮想マシンディスクがある場合は、マッピングファイルの生成に失敗します。また、フェイルオーバーしてはならないため、マッピングファイルにはこのストレージドメインの属性は含まれません。

この例では、Ansible Playbook は dr-rhv-setup.yml という名前で、プライマリーサイトの Manager マシンで実行されます。

手順

  1. Ansible Playbook を作成してマッピングファイルを生成します。以下に例を示します。

    ---
    - name: Generate mapping
      hosts: localhost
      connection: local
    
      vars:
        site: https://example.engine.redhat.com/ovirt-engine/api
        username: admin@internal
        password: my_password
        ca: /etc/pki/ovirt-engine/ca.pem
        var_file: disaster_recovery_vars.yml
    
      roles:
        - oVirt.disaster-recovery
    注記

    セキュリティーを強化するには、.yml ファイルで Manager パスワードを暗号化できます。詳細は、管理ガイドAnsible ロールを使用した Red Hat Virtualization の設定 を参照してください。

  2. Ansible コマンドを実行してマッピングファイルを生成します。プライマリーサイトの設定は事前に入力されます。

    # ansible-playbook dr-rhv-setup.yml --tags "generate_mapping"
  3. バックアップサイトの設定を使用して、マッピングファイル (この場合は disaster_recovery_vars.yml) を設定します。マッピングファイルの属性に関する詳細は、Mapping File Attributes を参照してください。

フェイルオーバーおよびフェイルバックを実行できる Ansible マシンが複数ある場合は、マッピングファイルをすべての関連マシンにコピーします。

3.4.3. フェイルオーバーおよびフェイルバック Playbook の作成

作成および設定したマッピングファイル (この場合は disaster_recovery_vars.yml) があることを確認してください。これは、Playbook に追加する必要があります。

パスワードファイル (passwords.yml など) を定義して、プライマリーおよびセカンダリーサイトの Manager パスワードを保存できます。以下に例を示します。

---
# This file is in plain text, if you want to
# encrypt this file, please execute following command:
#
# $ ansible-vault encrypt passwords.yml
#
# It will ask you for a password, which you must then pass to
# ansible interactively when executing the playbook.
#
# $ ansible-playbook myplaybook.yml --ask-vault-pass
#
dr_sites_primary_password: primary_password
dr_sites_secondary_password: secondary_password
注記

セキュリティーを強化する場合は、パスワードファイルを暗号化できます。ただし、Playbook の実行時に --ask-vault-pass パラメーターを使用する必要があります。詳細は、管理ガイドAnsible ロールを使用した Red Hat Virtualization の設定 を参照してください。

これらの例では、フェイルオーバーおよびフェイルバックする Ansible Playbook の名前は、それぞれ dr-rhv-failover.ymldr-rhv-failback.yml です。

以下の Ansible Playbook を作成して、環境のフェイルオーバーを行います。

---
- name: Failover RHV
  hosts: localhost
  connection: local
  vars:
    dr_target_host: secondary
    dr_source_map: primary
  vars_files:
    - disaster_recovery_vars.yml
    - passwords.yml
  roles:
    - oVirt.disaster-recovery

以下の Ansible Playbook を作成して、環境のフェイルバックを行います。

---
- name: Failback RHV
  hosts: localhost
  connection: local
  vars:
    dr_target_host: primary
    dr_source_map: secondary
  vars_files:
    - disaster_recovery_vars.yml
    - passwords.yml
  roles:
    - oVirt.disaster-recovery

3.4.4. プライマリーサイトをクリーンアップするための Playbook の作成

プライマリーサイトにフェイルバックする前に、インポートするすべてのストレージドメインがプライマリーサイトから削除されていることを確認する必要があります。これは、Manager で手動で行うことも、必要に応じて Ansible Playbook を作成して実行することもできます。

この例では、プライマリーサイトをクリーンアップする Ansible Playbook の名前は dr-cleanup.yml で、別の Ansible Playbook によって生成されたマッピングファイルを使用します。

---
- name: clean RHV
  hosts: localhost
  connection: local
  vars:
    dr_source_map: primary
  vars_files:
    - disaster_recovery_vars.yml
  roles:
    - oVirt.disaster-recovery
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.