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
时)hosts
Ceph 监视器的 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
模式下为必填项。domain
route
、open
和nat
模式的 DNS 域名,默认使用网络名称(可选)。dhcp_start
route
、open
或nat
模式下 DHCP 范围的第一个 IP (可选)。dhcp_end
route
、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)以运行该角色。虽然这提供了更好的虚拟机性能,但在某些环境中可能不可用。默认值为 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