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.
ansible-galaxy install mbach04/nutanix_vm_provisioner