Я развернул некоторые ОС с низкой поддержкой, такие как Debian 9, Debian 8, Rehhat 6,7, Centos 7.
Конфигурация IP не поддерживается во время загрузки, поэтому я добавляю только интерфейс VLAN / виртуальной сети,затем я использую vmware_vm_shell
для пошаговой настройки ОС.
Мне нужен трюк, чтобы дождаться события, подобного /proc/net/dev
, на удаленной виртуальной машине , чтобы продолжитьдругие шаги
Что я пробовал до сих пор:
- hosts: localhost
tasks:
- name: Create a virtual machine "{{ vm_name }}"
vmware_guest:
datacenter: '{{ datacenter }}'
hostname: '{{ vcenter }}'
username: "{{ login }}"
password: "{{ passwd }}"
folder: "{{ folder }}"
name: "{{ vm_name }}"
template: '{{ template }}'
cluster: "{{ cluster }}"
state: poweredon
disk:
- size_gb: "{{ disksizeGB }}"
datastore: '{{ datastore }}'
hardware:
memory_mb: '{{ ramsizeMB }}'
num_cpus: '{{ vcpu_num }}'
hotadd_cpu: True
hotremove_cpu: True
hotadd_memory: True
networks: '{{ vlans }}'
#wait_for_ip_address: yes # ERR there's ifaces, but not ip at this time
register: deploy
- name: Wait for server to start
local_action:
module: wait_for
timeout=15
when: deploy.changed
Последний блок кода ожидания отстой (ожидание N секунд), я хотел бы что-нибудь умнее.
Есть идеи?
Если я не жду, иногда я получаю сообщение об ошибке: fatal: [localhost]: FAILED! => {"changed": false, "msg": "VMWareTools is not installed or is not running in the guest. VMware Tools are necessary to run this module."}
, потому что виртуальная машина не загружается.Шаблон имеет vmware-tools.
https://docs.ansible.com/ansible/2.6/modules/vmware_guest_module.html#vmware-guest-module https://docs.ansible.com/ansible/latest/modules/vmware_vm_shell_module.html