stackhpc.libvirt-host

Libvirt 主机

该角色将主机配置为 Libvirt/KVM 虚拟机管理程序。它还可以在主机上配置存储池和网络。

要求

主机应启用虚拟化技术(VT)。

角色变量

libvirt_host_pools 是要定义和启动的池的列表。每个项目应为包含以下条目的字典:

  • name 池的名称。
  • type 池的类型,目前仅支持 dirlogicalrbdlvm2 被支持作为 logical 的别名,但该别名已被弃用,并将在未来版本中移除。
  • capacity 池的容量,以字节为单位。(可选)
  • path 池的底层目录的绝对路径。
  • mode 池的访问模式。注意:这个应该作为没有前导零的整数来指定;例如:mode: 755。(仅 dir
  • owner 池的拥有者。(仅 dir
  • group 池的组。(仅 dir
  • source 体积组的名称(当类型为 logical 时)或 RBD 池(当类型为 rbd 时)。
  • pvs 体积组中包含的物理卷的列表。(仅当类型为 logical 时)
  • hosts Ceph 监视器的 IP 或主机名列表。(仅 rbd
  • username 用于 RADOS 认证的用户名。(仅 rbd
  • passphrase 用于 RADOS 认证的密码。(仅 rbd

libvirt_host_networks 是要定义和启动的网络的列表。每个条目应为包含以下条目的字典:

  • name 网络的名称。
  • mode 网络的转发模式,支持 bridgerouteopennat。留空以使用隔离网络模式。
  • bridge 此网络的桥接接口的名称。
  • ip 虚拟桥的 IP 地址,routeopennat 模式下为必填项。
  • netmask 虚拟桥的子网掩码,routeopennat 模式下为必填项。
  • domain routeopennat 模式的 DNS 域名,默认使用网络名称(可选)。
  • dhcp_start routeopennat 模式下 DHCP 范围的第一个 IP (可选)。
  • dhcp_end routeopennat 模式下 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)以运行该角色。虽然这提供了更好的虚拟机性能,但在某些环境中可能不可用。默认值为 true

libvirt_host_qemu_emulators: 要安装 QEMU 系统仿真器的架构列表,例如 x86。如果 libvirt_host_require_vtfalse,则默认值为 ['x86'],否则默认值为空列表。

libvirt_host_enable_efi_support: 是否启用 EFI 支持。默认值为 false,因为需要安装额外的软件包。

libvirt_host_var_prefix: 此项确定 libvirt 用于存储状态的 /var/run 下的目录,例如 UNIX 域套接字,以及 PID 文件的默认名称。如果与默认套接字发生冲突,请覆盖该项,例如它可能被 nova_libvirt 容器使用。默认值为 ""

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 的命令行参数 - 将添加引号。

libvirt_host_uri: libvirt 连接 URI。如果 libvirt_host_var_prefix 被设置,默认值为 qemu+unix:///system?socket={{ libvirt_host_socket_dir }}/libvirt-sock,否则为 ""。如果设置为 falsey 值,则在调用 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 认证机制列表。当 libvirt_host_tls_listentrue 时,默认值为 ["SCRAM-SHA-256"],否则为 ["DIGEST-MD5"]

libvirt_host_sasl_credentials: 要创建的 SASL 认证凭据列表。每个条目是一个包含 usernamepassword 项目的字典。默认值是一个仅包含 libvirt_host_sasl_authnamelibvirt_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

作者信息

关于项目

Role to install and configure a host as a Libvirt/KVM hypervisor

安装
ansible-galaxy install stackhpc.libvirt-host
许可证
Unknown
下载
393.9k
拥有者
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.