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Список IP-адресов или имен хостов мониторов Ceph. (толькоrbd)usernameИмя пользователя, используемое для аутентификации RADOS. (толькоrbd)passphraseПароль, используемый для аутентификации RADOS. (толькоrbd)
libvirt_host_networks — это список сетей для определения и запуска. Каждый элемент должен быть словарем, содержащим следующие элементы:
nameИмя сети.modeРежим пересылки сети, поддерживаютсяbridge,route,openиnat. Оставьте пустым для изолированного сетевого режима.bridgeИмя интерфейса моста для этой сети.ipIP-адрес виртуального моста, обязательный для режимовroute,openиnat.netmaskМаска подсети виртуального моста, обязательная для режимовroute,openиnat.domainDNS-домен для режимовroute,openиnat, по умолчанию соответствует имени сети (необязательно).dhcp_startПервый IP в диапазоне DHCP в режимахroute,openилиnat(необязательно).dhcp_endПоследний IP в диапазоне DHCP в режимахroute,openилиnat(необязательно).routesНеобязательный список дополнительных маршрутов, определенных следующим образом:addressАдрес маршрута, требуется.prefixПрефикс маршрута, требуется.gatewayШлюз маршрута, требуется.metricМетрика маршрута (необязательно).
ipv6IPv6-адрес виртуального моста (необязательно).ipv6_prefixПрефикс IPv6 виртуального моста (необязательно).routesv6Необязательный список дополнительных маршрутов IPv6, определенных следующим образом:addressIPv6-адрес маршрута, требуется.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.libvirt-host