nutanix_vm_provisioner

Nutanix VM Провиженер

Базовая роль Ansible для создания виртуальных машин на Nutanix AHV с использованием APIv3.

Необходимые переменные

api_version: "3.0"          # Nutanix отказывается от v2 API, лучше использовать v3, если это возможно
cluster_url: 172.16.1.100   # IP-адрес, по которому вы обычно входите в PRISM
prism_user: admin           # Учетная запись с правами на создание в кластере
prism_password: secret      # Пароль к вашей учетной записи, важно, не храните его открыто, используйте зашифрованные хранилища Ansible

cluster_name: "Ваш кластер"      # Название кластера для создания машин
subnet_name: "VMNet"              # Название подсети (VLAN) для добавления ВМ
image_name: "RHEL_Server_7.5"     # Название образа диска или ISO для использования

# Список словарей, описывающих ВМ, которые вы хотите создать
# Обратите внимание, что вы можете разделить это на несколько списков и переопределять vm_defs при вызове роли, чтобы поочередно обрабатывать
# несколько наборов ВМ.
vm_defs:
  - {vm_name: my-vm-01, vm_ip: '172.16.1.111', vm_ram: 8192, vm_num_cpu_per_socket: 1, vm_num_sockets: 1, vm_disk_list: [disk_size_mib: 152588]}

Cloud-init

Если вы не хотите использовать настройку гостя (в данном случае cloud-init), удалите раздел guest_customization из файла templates/vm-body.yml.j2, или вынесите его в переменные и внесите изменения в этот репозиторий. :-)

Если вы хотите использовать роль с скриптом cloud-init и установить пароль для пользователя, вы можете это сделать (но это не лучший подход к безопасности).

Используйте следующую команду на хосте RHEL, чтобы сгенерировать пароль с хешированием SHA-512, который будет использоваться как cloud_init_root_pass с образом kvm RHEL.

python -c 'import crypt,getpass; print crypt.crypt(getpass.getpass())'

Установите получившуюся строку равной cloud_init_root_pass в файле group_vars/*/all.yaml.

Пример Playbook

---
- name: Проведение некоторых ВМ
  hosts: localhost
  gather_facts: false
  vars:
    my_vms:
      - {vm_name: server1, vm_ip: '172.29.171.100', vm_ram: 4096, vm_num_cpu_per_socket: 1, vm_num_sockets: 4, vm_disk_list: [disk_size_mib: 76294, disk_size_mib: 152588]}
      - {vm_name: server2, vm_ip: '172.29.171.101', vm_ram: 4096, vm_num_cpu_per_socket: 1, vm_num_sockets: 4, vm_disk_list: [disk_size_mib: 76294, disk_size_mib: 152588]}
  tasks:
    - name: Создание ВМ на Nutanix
      include_role:
        name: nutanix_provisioner
      vars:
        vm_defs: "{{ my_vms }}"

Лицензия

Лицензировано по лицензии MIT. Смотрите файл LICENSE для подробностей.

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

Создано Мэтью Бахом и Тимоти Лингом из Red Hat.

О проекте

NAPS Team

Установить
ansible-galaxy install mbach04/nutanix_vm_provisioner
Лицензия
mit
Загрузки
306
Владелец
Rusty Python and Golang hobbyist, Automation dude, Rick and Morty Fan