mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
4b99a2ac50
The use of the `hostvars[esxi1].ansible_host` was attempt to use different hostname and IP address. But it's actually the source of more problems. VMware expects to be able to resolvable the host name. This means, that if someone wants to run the test-suite, s/he needs to use a DNS or update the `/etc/hosts` files on the different hosts.
175 lines
5.8 KiB
YAML
175 lines
5.8 KiB
YAML
# Test code for the vmware_host module.
|
|
# Copyright: (c) 2017, Abhijeet Kasurde <akasurde@redhat.com>
|
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
# Testcase: Add Host
|
|
- when: vcsim is not defined
|
|
block:
|
|
|
|
- name: Add first ESXi Host to vCenter
|
|
vmware_host:
|
|
hostname: '{{ vcenter_hostname }}'
|
|
username: '{{ vcenter_username }}'
|
|
password: '{{ vcenter_password }}'
|
|
datacenter_name: '{{ dc1 }}'
|
|
cluster_name: '{{ ccr1 }}'
|
|
esxi_hostname: '{{ esxi1 }}'
|
|
esxi_username: '{{ hostvars[esxi1].ansible_user }}'
|
|
esxi_password: '{{ hostvars[esxi1].ansible_password }}'
|
|
state: present
|
|
validate_certs: no
|
|
register: readd_host_result
|
|
|
|
- name: Add first ESXi Host to vCenter (again)
|
|
vmware_host:
|
|
hostname: '{{ vcenter_hostname }}'
|
|
username: '{{ vcenter_username }}'
|
|
password: '{{ vcenter_password }}'
|
|
datacenter_name: '{{ dc1 }}'
|
|
cluster_name: '{{ ccr1 }}'
|
|
esxi_hostname: '{{ esxi1 }}'
|
|
esxi_username: '{{ hostvars[esxi1].ansible_user }}'
|
|
esxi_password: '{{ hostvars[esxi1].ansible_password }}'
|
|
state: present
|
|
validate_certs: no
|
|
register: readd_host_result
|
|
|
|
- name: ensure precend task didn't changed anything
|
|
assert:
|
|
that:
|
|
- not ( readd_host_result is changed)
|
|
|
|
- name: add second host via add_or_reconnect
|
|
vmware_host:
|
|
hostname: "{{ vcenter_hostname }}"
|
|
username: "{{ vcenter_username }}"
|
|
password: "{{ vcenter_password }}"
|
|
validate_certs: no
|
|
esxi_hostname: '{{ esxi2 }}'
|
|
esxi_username: '{{ hostvars[esxi2].ansible_user }}'
|
|
esxi_password: '{{ hostvars[esxi2].ansible_password }}'
|
|
datacenter_name: "{{ dc1 }}"
|
|
cluster_name: "{{ ccr1 }}"
|
|
fetch_ssl_thumbprint: False
|
|
state: add_or_reconnect
|
|
register: add_or_reconnect_host_result
|
|
- name: ensure host system is present
|
|
assert:
|
|
that:
|
|
- add_or_reconnect_host_result is changed
|
|
|
|
- when: vcsim is not defined
|
|
block:
|
|
- name: disconnect host 2
|
|
vmware_host:
|
|
hostname: "{{ vcenter_hostname }}"
|
|
username: "{{ vcenter_username }}"
|
|
password: "{{ vcenter_password }}"
|
|
validate_certs: no
|
|
esxi_hostname: '{{ esxi2 }}'
|
|
datacenter_name: "{{ dc1 }}"
|
|
cluster_name: "{{ ccr1 }}"
|
|
fetch_ssl_thumbprint: False
|
|
state: absent
|
|
|
|
- name: remove host again
|
|
vmware_host:
|
|
hostname: "{{ vcenter_hostname }}"
|
|
username: "{{ vcenter_username }}"
|
|
password: "{{ vcenter_password }}"
|
|
validate_certs: no
|
|
esxi_hostname: '{{ esxi2 }}'
|
|
datacenter_name: "{{ dc1 }}"
|
|
cluster_name: "{{ ccr1 }}"
|
|
state: absent
|
|
register: reremove_host_result
|
|
- name: ensure precend task didn't changed anything
|
|
assert:
|
|
that:
|
|
- not ( reremove_host_result is changed)
|
|
|
|
|
|
## Testcase: Add Host to folder
|
|
#
|
|
# It's not possible to connect an ESXi host via vcsim.
|
|
- when: vcsim is not defined
|
|
block:
|
|
- name: Create host folder
|
|
vcenter_folder:
|
|
hostname: "{{ vcenter_hostname }}"
|
|
username: "{{ vcenter_username }}"
|
|
password: "{{ vcenter_password }}"
|
|
validate_certs: no
|
|
datacenter: "{{ dc1 }}"
|
|
folder_name: "Staging"
|
|
folder_type: host
|
|
state: present
|
|
register: folder_results
|
|
|
|
- debug: msg="{{ folder_results }}"
|
|
|
|
- name: ensure folder is present
|
|
assert:
|
|
that:
|
|
- folder_results.changed
|
|
|
|
- name: Add host to folder in check mode
|
|
vmware_host:
|
|
hostname: "{{ vcenter_hostname }}"
|
|
username: "{{ vcenter_username }}"
|
|
password: "{{ vcenter_password }}"
|
|
validate_certs: no
|
|
esxi_hostname: '{{ esxi2 }}'
|
|
esxi_username: '{{ hostvars[esxi2].ansible_user }}'
|
|
esxi_password: '{{ hostvars[esxi2].ansible_password }}'
|
|
datacenter_name: "{{ dc1 }}"
|
|
folder_name: "/{{ dc1 }}/host/Staging"
|
|
state: present
|
|
register: add_host_to_folder_result
|
|
check_mode: yes
|
|
|
|
- name: ensure host system is not present
|
|
assert:
|
|
that:
|
|
- add_host_to_folder_result is changed
|
|
|
|
- name: Add host to folder
|
|
vmware_host:
|
|
hostname: "{{ vcenter_hostname }}"
|
|
username: "{{ vcenter_username }}"
|
|
password: "{{ vcenter_password }}"
|
|
validate_certs: no
|
|
esxi_hostname: '{{ esxi2 }}'
|
|
esxi_username: '{{ hostvars[esxi2].ansible_user }}'
|
|
esxi_password: '{{ hostvars[esxi2].ansible_password }}'
|
|
datacenter_name: "{{ dc1 }}"
|
|
folder_name: "/{{ dc1 }}/host/Staging"
|
|
state: present
|
|
register: add_host_to_folder_result
|
|
|
|
- name: ensure host system is present
|
|
assert:
|
|
that:
|
|
- add_host_to_folder_result is changed
|
|
|
|
- name: reconnect host
|
|
vmware_host:
|
|
hostname: "{{ vcenter_hostname }}"
|
|
username: "{{ vcenter_username }}"
|
|
password: "{{ vcenter_password }}"
|
|
validate_certs: no
|
|
esxi_hostname: '{{ esxi2 }}'
|
|
esxi_username: '{{ hostvars[esxi2].ansible_user }}'
|
|
esxi_password: '{{ hostvars[esxi2].ansible_password }}'
|
|
datacenter_name: "{{ dc1 }}"
|
|
cluster_name: "{{ ccr1 }}"
|
|
state: reconnect
|
|
register: reconnect_host_result
|
|
|
|
- name: ensure host system has been reconnected
|
|
assert:
|
|
that:
|
|
- reconnect_host_result is changed
|
|
# it would be a good idea to check the events on the host to see the reconnect
|
|
# https://github.com/vmware/govmomi/blob/master/govc/USAGE.md#events
|
|
# "govc events ..." need to be callable from
|
|
# https://github.com/ansible/vcenter-test-container/flask_control.py
|