stackhpc.libvirt-host
Libvirtホスト
この役割は、ホストをLibvirt/KVMハイパーバイザーとして構成します。ホスト上のストレージプールやネットワークも構成できます。
要件
ホストには、仮想化技術(VT)が有効になっている必要があります。
ロール変数
libvirt_host_poolsは、定義して開始するプールのリストです。各項目は次の要素を含む辞書である必要があります:
nameプールの名前。typeプールのタイプ。現在はdir、logical、およびrbdのみがサポートされています。lvm2はlogicalのエイリアスとしてサポートされていますが、このエイリアスは非推奨であり、将来のリリースで削除される予定です。capacityプールの容量(バイト単位)。(オプション)pathプールのバックディレクトリへの絶対パス。modeプールのアクセスモード。注意:整数を先頭のゼロなしで指定する必要があります。たとえば:mode: 755。(dirのみ)ownerプールの所有者。(dirのみ)groupプールのグループ。(dirのみ)sourceボリュームグループの名前(タイプがlogicalの場合)またはRBDプール(タイプがrbdの場合)。pvsボリュームグループを構成する物理ボリュームのリスト。(タイプがlogicalのときのみ)hostsCephモニターのIPアドレスまたはホスト名のリスト。(rbdのみ)usernameRADOS認証に使用されるユーザー名。(rbdのみ)passphraseRADOS認証に使用されるパスフレーズ。(rbdのみ)
libvirt_host_networksは、定義して開始するネットワークのリストです。各項目は次の要素を含む辞書である必要があります:
nameネットワークの名前。modeネットワークのフォワーディングモード。bridge、route、open、natがサポートされています。孤立ネットワークモードの場合は空にしてください。bridgeこのネットワークのブリッジインターフェースの名前。ipバーチャルブリッジのIPアドレス。route、open、natモードでは必須です。netmaskバーチャルブリッジのネットマスク。route、open、natモードでは必須です。domainroute、open、natモードのDNSドメイン名。デフォルトはネットワーク名です。(オプション)dhcp_startroute、openまたはnatモードにおけるDHCP範囲の最初のIP(オプション)。dhcp_endroute、openまたはnatモードにおけるDHCP範囲の最後のIP(オプション)。routes以下のように定義された追加のルートのオプションリスト:addressルートのアドレス。必須です。prefixルートのプレフィックス。必須です。gatewayルートのゲートウェイ。必須です。metricルートのメトリクス(オプション)。
ipv6バーチャルブリッジのIPv6アドレス(オプション)。ipv6_prefixバーチャルブリッジのIPv6プレフィックス(オプション)。routesv6以下のように定義された追加のIPv6ルートのオプションリスト:addressルートのIPv6アドレス。必須です。prefixルートのIPv6プレフィックス。必須です。gatewayルートのゲートウェイ。必須です。metricルートのメトリクス(オプション)。
libvirt_host_require_vtは、この役割を実行するためにIntel仮想化技術(VT)が有効である必要があるかどうかを示します。これによりVMのパフォーマンスが向上しますが、特定の環境では利用できない場合があります。デフォルト値はtrueです。
libvirt_host_qemu_emulators: QEMUシステムエミュレーターをインストールするためのアーキテクチャのリスト、例えばx86。libvirt_host_require_vtがfalseの場合、デフォルト値は['x86']です。そうでない場合は、デフォルト値は空のリストになります。
libvirt_host_enable_efi_support: EFIサポートを有効にするかどうか。これはデフォルトでfalseであり、追加のパッケージをインストールする必要があります。
libvirt_host_var_prefix: Libvirtが状態を保存するために使用する/var/run以下のディレクトリを決定します。例えば、UNIXドメインソケットやPIDファイルのデフォルト名も含まれます。デフォルトのソケットとの競合がある場合は上書きしてください。デフォルト値は""です。
libvirt_host_socket_dir: libvirtdソケットが作成される場所。libvirt_host_var_prefixが設定されている場合、デフォルトは/var/run/{{ libvirt_host_var_prefix }}です。それ以外の場合は""です。
libvirt_host_pid_path: デーモンの複数インスタンスが生成されるのを防ぐPIDファイルへのパス。libvirt_host_var_prefixが設定されている場合のデフォルトは/var/run/{{ libvirt_host_var_prefix }}.pidです。それ以外の場合は""です。
libvirt_host_libvirtd_args: libvirtdが起動されるときに、initシステムによってlibvirtdに渡されるコマンドライン引数です - 引用符が追加されます。
libvirt_host_uri: libvirt接続URI。libvirt_host_var_prefixが設定されている場合、デフォルトはqemu+unix:///system?socket={{ libvirt_host_socket_dir }}/libvirt-sockです。それ以外の場合は""です。偽値に設定されている場合、virshやvirt_ ansibleモジュールを呼び出すときに明示的な接続URIは設定されません。
libvirt_host_python3: libvirt PythonバインディングのPython3バージョンをインストールするかどうか。falseの場合、Python 2バインディングがインストールされます。
libvirt_host_install_daemon: libvirtデーモンをインストールして有効にするかどうか。デフォルトはtrueです。
libvirt_host_install_client: libvirtクライアントをインストールして有効にするかどうか。デフォルトはtrueです。
libvirt_host_extra_daemon_packages: libvirtデーモンホストにインストールする追加パッケージのリスト。
libvirt_host_extra_client_packages: libvirtクライアントホストにインストールする追加パッケージのリスト。
libvirt_host_libvirtd_conf_enabled:libvirtd.confを構成するかどうか。デフォルトはtrueです。
libvirt_host_libvirtd_conf: libvirtd.confの設定。オプション名と値をマッピングする辞書。デフォルトは空の辞書です。
libvirt_host_qemu_conf_enabled: qemu.confを構成するかどうか。デフォルトはtrueです。
libvirt_host_qemu_conf: qemu.confの設定。オプション名と値をマッピングする辞書。デフォルトは空の辞書です。
libvirt_host_enable_sasl_support: SASL認証サポートを有効にするかどうか。デフォルトはfalseです。
libvirt_host_sasl_conf_enabled: SASL認証を構成するかどうか(/etc/sasl2/libvirt.conf)。デフォルトはlibvirt_host_enable_sasl_supportと同じです。
libvirt_host_sasl_conf: SASL認証の設定(/etc/sasl2/libvirt.conf)。文字列。
libvirt_host_sasl_mech_list: 有効なlibvirt SASL認証メカニズムのリスト。デフォルトは["SCRAM-SHA-256"]で、libvirt_host_tls_listenがtrueの場合、それ以外は["DIGEST-MD5"]です。
libvirt_host_sasl_credentials: 作成するSASL認証情報のリスト。各項目はusernameとpasswordを含む辞書です。デフォルトはlibvirt_host_sasl_authnameとlibvirt_host_sasl_passwordを含む単一項目リストです。
libvirt_host_sasl_authname: SASL認証用のユーザー名。デフォルトはlibvirtです。
libvirt_host_sasl_password: SASL認証用のパスワード。デフォルトは未設定です。
libvirt_host_sasl_auth_conf_enabled: SASL認証情報(/etc/libvirt/auth.conf)を構成するかどうか。デフォルトはlibvirt_host_enable_sasl_supportと同じです。
libvirt_host_sasl_auth_conf: SASL認証情報の設定(/etc/libvirt/auth.conf)。文字列。
libvirt_host_sasl_auth_conf_filename: SASL認証情報を書き込むファイルの名前。デフォルトは"/etc/libvirt/auth.conf"です。
libvirt_host_sasl_auth_conf_owner: SASL認証情報を書き込むファイルの所有者。デフォルトは"root"です。
libvirt_host_sasl_auth_conf_group: SASL認証情報を書き込むファイルのグループ。デフォルトは"root"です。
libvirt_host_sasl_auth_conf_mode: SASL認証情報を書き込むファイルのモード。デフォルトは"0600"です。
libvirt_host_tcp_listen: systemd TCPソケットユニットを有効にするかどうか。デフォルトはfalseです。
libvirt_host_tcp_listen_address: systemd TCPソケットのListenStream。フォーマットについてはman systemd.socketを参照してください。デフォルトは未設定です。
libvirt_host_tls_listen: systemd TLSソケットユニットを有効にするかどうか。デフォルトはfalseです。
libvirt_host_tls_listen_address: systemd TLSソケットのListenStream。フォーマットについてはman systemd.socketを参照してください。デフォルトは未設定です。
libvirt_host_tls_server_cert: TLSサーバー証明書。デフォルトは未設定です。
libvirt_host_tls_server_key: TLSサーバーキー。デフォルトは未設定です。
libvirt_host_tls_client_cert: TLSクライアント証明書。デフォルトは未設定です。
libvirt_host_tls_client_key: TLSクライアントキー。デフォルトは未設定です。
libvirt_host_tls_cacert: TLS CA証明書。デフォルトは未設定です。
libvirt_host_configure_apparmor: ディレクトリストレージプールのためにAppArmorを構成するかどうか。
依存関係
なし
例のプレイブック
---
- name: Libvirtが構成されていることを確認する
hosts: all
roles:
- role: stackhpc.libvirt-host
libvirt_host_pools:
- name: my-pool
type: dir
capacity: 1024
path: /path/to/pool
mode: 755
owner: my-user
group: my-group
- name: lvm_pool
type: logical
source: vg1
target: /dev/vg1
pvs:
- /dev/sda3
- name: rbd-pool
type: rbd
source: rbd
hosts:
- 192.168.42.200
- 192.168.42.204
- 192.168.42.208
username: admin
passphrase: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
libvirt_host_networks:
- name: br-example
mode: bridge
bridge: br-example
- name: brnat-example
mode: nat
bridge: brnat-example
domain: example.local
ip: 192.168.133.254
netmask: 255.255.255.0
dhcp_start: 192.168.133.100
dhcp_end: 192.168.133.200
著者情報
- マーク・ゴダード (mark@stackhpc.com)
Role to install and configure a host as a Libvirt/KVM hypervisor
ansible-galaxy install stackhpc.libvirt-host