t2d.ansible_role_libvirt_vm

Libvirt VM

この役割はKVMハイパーバイザー上でVMを設定・作成(または破棄)します。

要件

ホストは仮想化技術(VT)が有効になっている必要があり、libvirt/KVMが事前に設定されている必要があります。

役割の変数

  • libvirt_vm_default_console_log_dir: VM専用のログファイルのパスが指定されない場合にVMコンソールログを保存するデフォルトのディレクトリ。デフォルトは"/var/log/libvirt/qemu/"です。

  • libvirt_vm_image_cache_path: ダウンロードしたイメージをキャッシュするディレクトリ。デフォルトは"/tmp/"です。

  • libvirt_volume_default_images_path: インスタンスイメージが保存されるディレクトリ。デフォルトは'/var/lib/libvirt/images'です。

  • libvirt_volume_default_type: インスタンスが使用するバックボリュームのタイプ。デフォルトはvolumeです。

  • libvirt_volume_default_format: この役割で作成されるボリュームのフォーマット。デフォルトはqcow2です。

  • libvirt_volume_default_device: ゲストOSにおけるデバイスの表示方法を制御します。デフォルトはdiskです。

  • libvirt_vm_engine: 仮想化エンジン。設定されていない場合、役割は最適なエンジンを自動検出しようとします。

  • libvirt_vm_emulator: エミュレーターのバイナリへのパス。設定されていない場合、役割は正しいエミュレーターを自動検出しようとします。

  • libvirt_cpu_mode_default: libvirt_cpu_modeまたはvm.cpu_modeが未定義の場合のデフォルトCPUモード。

  • libvirt_vm_arch: CPUアーキテクチャ。デフォルトはx86_64です。

  • libvirt_vm_uri: libvirt接続URIを上書きします。詳細についてはlibvirtのドキュメントを参照してください。

  • libvirt_vm_virsh_default_env: この辞書に含まれる変数は、virshコマンドを実行する際の環境に追加されます。

  • libvirt_vm_clock_offset: 定義されている場合、インスタンスの時計オフセットが提供された値に設定されます。未定義の場合、同期はlocaltimeに設定されます。

  • libvirt_vms: 作成または破棄するVMのリスト。各VMには次の属性があります:

    • state: VMを作成するにはpresent、破棄するにはabsentに設定します。デフォルトはpresentです。

    • name: VMに割り当てる名前。

    • memory_mb: VMに割り当てるメモリ(メガバイト単位)。

    • vcpus: VMに割り当てるVCPUコアの数。

    • machine: 仮想マシンのタイプ。デフォルトは、libvirt_vm_enginekvmの場合はNone、それ以外の場合はpc-1.0です。

    • cpu_mode: 仮想マシンのCPUモード。デフォルトは、libvirt_vm_enginekvmの場合はhost-passthrough、それ以外の場合はhost-modelです。CPUモードを設定しないにはnoneと設定できます。

    • clock_offset: libvirt_vm_clock_offsetで設定されたデフォルトを上書きします。

    • enable_vnc: trueの場合、VirtManagerや同様のツールで使用するためにlocalhostでVNCをリスニングできます。

    • volumes: VMに接続するボリュームのリスト。各ボリュームは次の辞書で定義されます:

      • pool: ボリュームが割り当てられるストレージプールの名前またはUUID。
      • name: 作成されるボリュームに関連付ける名前。fileタイプのボリュームには、拡張子を含めるときがある。
      • file_path: fileタイプのボリュームのイメージを配置する場所。デフォルトはlibvirt_volume_default_images_pathです。
      • device: diskまたはcdrom
      • capacity: ボリュームの容量(M、G、T、またはMB、GB、TBなどの接尾辞が付けられます)(diskタイプのときは必須です)。
      • format: オプションにはrawqcow2vmdkがあります。詳細についてはman virshを参照してください。デフォルトはqcow2です。
      • image: (オプション)ボリュームが初期化されるイメージへのURL(フルコピー)。
      • backing_image: (オプション)同じプールに既に存在するバックボリュームの名前(コピーオン書き込み)。
      • imagebacking_imageは排他的なオプションです。
      • target: (オプション)ボリュームのタイプと順序に手動で影響を与える。
    • interfaces: VMに接続するネットワークインターフェースのリスト。各ネットワークインターフェースは次の辞書で定義されます:

      • type: インターフェースの種類。可能な値:

        • network: 名前付きLibvirt仮想ネットワークにインターフェースを接続します。これはデフォルト値です。
        • direct: macvtapドライバーを使用して、ホストの物理インターフェースの1つにインターフェースを直接接続します。
      • network: インターフェースが接続されるネットワークの名前。インターフェースのtypenetworkの場合、指定する必要があります。

      • mac: 仮想インスタンスの「ハードウェア」アドレス。存在しない場合は作成されます。

      • source: このVMインターフェースが接続されるホストインターフェースを定義する辞書。インターフェースのtypedirectの場合に、指定する必要があります。以下の属性が含まれます:

        • dev: このVMインターフェースが接続されるホストインターフェースの名前。
        • mode: オプションにはvepabridgeprivatepassthroughがあります。詳細についてはman virshを参照してください。デフォルトはvepaです。
    • console_log_enabled: trueの場合、console_log_pathで指定されたパスにコンソール出力をファイルに記録します。PTYに対してではなくfalseの場合、シリアルポート0のPTYに直接端末出力します。デフォルトはfalseです。

    • console_log_path: コンソールログファイルへのパス。デフォルトは{{ libvirt_vm_default_console_log_dir }}/{{ name }}-console.logです。

    • start: 定義後にVMを即時に開始するかどうか。デフォルトはtrueです。

    • autostart: ホストが起動したときにVMを起動するかどうか。デフォルトはtrueです。

    • xml_file: 必要に応じて修正したXMLテンプレートを提供します。デフォルトのvm.xml.j2テンプレートに基づいてカスタマイズし、役割が使用する予想されるjinja式を含めるようにします。

注:以下の変数は非推奨です:libvirt_vm_statelibvirt_vm_namelibvirt_vm_memory_mblibvirt_vm_vcpuslibvirt_vm_enginelibvirt_vm_machinelibvirt_vm_cpu_modelibvirt_vm_volumeslibvirt_vm_interfacesおよびlibvirt_vm_console_log_path。変数libvirt_vmsが未設定の場合、そのデフォルト値はこれらの非推奨変数を使用したVM仕様のシングルトンリストになります。

依存関係

qcow2形式のドライブを使用する場合、qemu-img(qemu-utilsパッケージに含まれています)が必要です。

例のプレイブック

---
- name: VMsを作成
  hosts: hypervisor
  roles:
    - role: stackhpc.libvirt-vm
      libvirt_vms:
        - state: present
          name: 'vm1'
          memory_mb: 512
          vcpus: 2
          volumes:
            - name: 'data1'
              device: 'disk'
              format: 'qcow2'
              capacity: '400GB'
              pool: 'my-pool'
            - name: 'debian-10.2.0-amd64-netinst.iso'
              type: 'file'
              device: 'cdrom'
              format: 'raw'
              target: 'hda'  # ideバスの最初のデバイス
          interfaces:
            - network: 'br-datacentre'

        - state: present
          name: 'vm2'
          memory_mb: 1024
          vcpus: 1
          volumes:
            - name: 'data2'
              device: 'disk'
              format: 'qcow2'
              capacity: '200GB'
              pool: 'my-pool'
            - name: 'filestore'
              type: 'file'
              file_path: '/srv/cloud/images'
              capacity: '900GB'
          interfaces:
            - type: 'direct'
              source:
                dev: 'eth123'
                mode: 'private'
            - type: 'bridge'
              source:
                dev: 'br-datacentre'

著者情報

プロジェクトについて

Role to configure and create VMs on a Libvirt/KVM hypervisor

インストール
ansible-galaxy install t2d.ansible_role_libvirt_vm
ライセンス
Unknown
ダウンロード
83
所有者