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
Список IP-адресов или имен хостов мониторов Ceph. (только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
DNS-домен для режимовroute
,open
иnat
, по умолчанию соответствует имени сети (необязательно).dhcp_start
Первый IP в диапазоне DHCP в режимахroute
,open
илиnat
(необязательно).dhcp_end
Последний IP в диапазоне DHCP в режимахroute
,open
илиnat
(необязательно).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
. Значение по умолчанию — ['x86']
, если
libvirt_host_require_vt
равно false
, иначе значение по умолчанию — пустой список.
libvirt_host_enable_efi_support
: Необходимо ли включить поддержку EFI. По умолчанию это false
, так как нужно установить дополнительные пакеты.
libvirt_host_var_prefix
: Определяет каталог под /var/run, который используется libvirt для хранения состояния, например, UNIX-сокетов, а также имя PID-файла по умолчанию. Переопределите это, если у вас есть конфликт с сокетом по умолчанию, например, он может использоваться контейнером nova_libvirt. По умолчанию — ""
.
libvirt_host_socket_dir
: Где создается сокет libvirtd. По умолчанию — /var/run/{{ libvirt_host_var_prefix }}
, если libvirt_host_var_prefix
установлен, иначе — ""
.
libvirt_host_pid_path
: Путь к PID-файлу, который предотвращает запуск нескольких экземпляров демона. По умолчанию — /var/run/{{ libvirt_host_var_prefix }}.pid
, если libvirt_host_var_prefix
установлен, иначе — ""
.
libvirt_host_libvirtd_args
: Аргументы командной строки, передаваемые libvirtd системой инициализации, когда libvirtd запускается — кавычки будут добавлены.
libvirt_host_uri
: URI подключения libvirt. По умолчанию — qemu+unix:///system?socket={{ libvirt_host_socket_dir }}/libvirt-sock
, если libvirt_host_var_prefix
установлен, иначе — ""
. Если установлено ложное значение, явный URI подключения не будет установлен при вызове virsh или любого из модулей ansible virt_.
libvirt_host_python3
: Нужно ли устанавливать версию python3 привязок libvirt. Если 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
: Список включенных механизмов SASL для аутентификации libvirt. По умолчанию — ["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
: Нужно ли включить единицу TCP-сокета systemd. По умолчанию — false
.
libvirt_host_tcp_listen_address
: ListenStream для TCP-сокета systemd. Смотрите man
systemd.socket для формата. По умолчанию не установлен.
libvirt_host_tls_listen
: Нужно ли включить единицу TLS-сокета systemd. По умолчанию — false
.
libvirt_host_tls_listen_address
: ListenStream для TLS-сокета systemd. Смотрите 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
: Сертификат CA TLS. По умолчанию не установлен.
libvirt_host_configure_apparmor
: Нужно ли настраивать AppArmor для каталогов хранилищ.
Зависимости
Нет
Пример Playbook
---
- 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/ansible-role-libvirt-host