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

Информация об авторе

О проекте

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

Установить
ansible-galaxy install stackhpc/ansible-role-libvirt-host
Лицензия
Unknown
Загрузки
347592
Владелец
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.