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)username用于 RADOS 认证的用户名。(仅rbd)passphrase用于 RADOS 认证的密码。(仅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 路由列表,格式如下:addressIPv6 路由的地址,必填。prefixIPv6 路由的前缀,必填。gateway路由的网关,必填。metric路由的度量(可选)。
libvirt_host_require_vt 是是否要求启用 Intel 虚拟化技术(VT)以运行该角色。虽然这提供了更好的虚拟机性能,但在某些环境中可能不可用。默认值为 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 文件的默认名称。如果与默认套接字发生冲突,请覆盖该项,例如它可能被 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_listen 为 true 时,默认值为 ["SCRAM-SHA-256"],否则为 ["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 Goddard (mark@stackhpc.com)
ansible-galaxy install stackhpc.libvirt-host