Skip to content

Commit

Permalink
add role to manage folders
Browse files Browse the repository at this point in the history
  • Loading branch information
mikemorency committed Jun 3, 2024
1 parent cfc8460 commit 4759946
Show file tree
Hide file tree
Showing 29 changed files with 411 additions and 90 deletions.
2 changes: 1 addition & 1 deletion .ansible-lint
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ skip_list:

exclude_paths:
- tests/integration
- changelogs/fragments
- changelogs/**
47 changes: 44 additions & 3 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,46 @@
Will be updated by antsibull-changelog. Do not edit this manually!
===============================
Cloud.VMware\_Ops Release Notes
===============================

See https://github.com/ansible-community/antsibull-changelog/blob/main/docs/changelogs.rst for information on how to use antsibull-changelog.
.. contents:: Topics

Check out ``changelogs/config.yaml`` for its configuration. You need to change at least the ``title`` field in there.
v1.2.0
======

Minor Changes
-------------

- Fix the README file of snapshot_management role to be more clear about the parameters `snapshot_management_folder` and `snapshot_management_vm_name`
- add_esxi_host_to_vcenter - Added new playbook to add an ESXi host to a vCenter
- cluster_settings - Added new playbook to modify cluster settings
- cluster_settings - Added new role for managing different cluster settings including DRM, DRS, vCLS, HA, and vSAN. Added integration tests for role
- disable_high_availability - Added playbook to disable high availbility in a vcenter cluster
- disable_maintenance_mode - Added new playbook to disable maintenance mode on an ESXi host
- enable_high_availability - Added playbook to enable and configure high availbility in a vcenter cluster
- enable_maintenance_mode - Added new playbook to enable maintenance mode on an ESXi host
- esxi_maintenance_mode - Added new role for setting an ESXi host's maintenance mode status. Added integration tests for role
- info - Fix creation of temporary files
- info - Fix the incorrect documentation
- manage_all_settings - Renamed and moved ``cluster_settings.yml`` playbook to ``cluster_settings\manage_all_settings.yml``. New location is with other cluster settings related plays
- provision_vcenter - Only use hdiutil to mount ISO on mac instead of hdiutil + mount. The new approach provides more consistent results when reading the ISO content as a file system
- provision_vcenter - Use OS specific binary when deploying the VCSA appliance (mac vs generic linux) instead of always using linux
- provision_vcenter - When running the playbook on MacOS, the `iso9660` file system is not supported. Instead, Macs need to mount the ISO as a block device and then mount it as `cd9660`. Added new tasks to perform these actions when the os family is darwin
- provision_virtual_esxi - Added new role for provisioning a VM and installing ESXi on it. Added integration tests for role
- reconnect_esxi_host_in_vcenter - Added new playbook to reconnect an ESXi host in a vCenter
- remove_esxi_host_from_vcenter - Added new playbook to remove an ESXi host from a vCenter
- snapshot_management - Add a new role and playbooks to manages virtual machines snapshots in vCenter. (https://github.com/redhat-cop/cloud.vmware_ops/pull/24)
- vcenter_host_connection - Added role to manage the connection status of an ESXI host to a vcenter. Included integration tests for the role

Bugfixes
--------

- esxi_maintenance_mode - Fixed typo in the vmware_maintenancemode module's `evacuate`` attribute
- provision_vcenter - Added dedicated complexity check for VM password at beginning of role. Complexity requirements are normally validated by the VCSA installer but the error thrown can be confusing. Update integration test to use proper password
- provision_vcenter - Changed default ISO mount point from /mnt to /tmp, since /tmp is more likely to be writable
- provision_vcenter - Install libnsl if running on rhel flavored OS, since it is not included in OS version 8+ but needed for the vmware ovftool
- provision_vcenter - Remove leading slashes when a user provides a datacenter/target host path to the installer. These values are supposed to be vcenter folder paths (e.g. /cluster01/host01) but a leading slash would break the VCSA installer config
- provision_vcenter - missing parameters in the validate_inputs tasks. Added them so the user will be alerted sooner if required parameters are missing
- provision_vcenter - the vcsa deploy config was invalid json if dhcp was used. Re-ordered the network section of the config template to fix
- provision_vcenter - vcenter vm names containing a string marked for no_log no longer trigger an unexpected error when checking if the vm already exists
- provision_virtual_esxi - Added missing variable documentation
- provision_virtual_esxi - Role had redundant variable `provision_virtual_esxi_iso_path` that was left from a name refactor. It was updated to match the new name. The new variable name `provision_virtual_esxi_datastore_iso_path` is already mandatory
91 changes: 90 additions & 1 deletion changelogs/changelog.yaml
Original file line number Diff line number Diff line change
@@ -1 +1,90 @@
releases: {}
ancestor: null
releases:
1.2.0:
changes:
bugfixes:
- esxi_maintenance_mode - Fixed typo in the vmware_maintenancemode module's
`evacuate`` attribute
- provision_vcenter - Added dedicated complexity check for VM password at beginning
of role. Complexity requirements are normally validated by the VCSA installer
but the error thrown can be confusing. Update integration test to use proper
password
- provision_vcenter - Changed default ISO mount point from /mnt to /tmp, since
/tmp is more likely to be writable
- provision_vcenter - Install libnsl if running on rhel flavored OS, since it
is not included in OS version 8+ but needed for the vmware ovftool
- provision_vcenter - Remove leading slashes when a user provides a datacenter/target
host path to the installer. These values are supposed to be vcenter folder
paths (e.g. /cluster01/host01) but a leading slash would break the VCSA installer
config
- provision_vcenter - missing parameters in the validate_inputs tasks. Added
them so the user will be alerted sooner if required parameters are missing
- provision_vcenter - the vcsa deploy config was invalid json if dhcp was used.
Re-ordered the network section of the config template to fix
- provision_vcenter - vcenter vm names containing a string marked for no_log
no longer trigger an unexpected error when checking if the vm already exists
- provision_virtual_esxi - Added missing variable documentation
- provision_virtual_esxi - Role had redundant variable `provision_virtual_esxi_iso_path`
that was left from a name refactor. It was updated to match the new name.
The new variable name `provision_virtual_esxi_datastore_iso_path` is already
mandatory
minor_changes:
- Fix the README file of snapshot_management role to be more clear about the
parameters `snapshot_management_folder` and `snapshot_management_vm_name`
- add_esxi_host_to_vcenter - Added new playbook to add an ESXi host to a vCenter
- cluster_settings - Added new playbook to modify cluster settings
- cluster_settings - Added new role for managing different cluster settings
including DRM, DRS, vCLS, HA, and vSAN. Added integration tests for role
- disable_high_availability - Added playbook to disable high availbility in a
vcenter cluster
- disable_maintenance_mode - Added new playbook to disable maintenance mode
on an ESXi host
- enable_high_availability - Added playbook to enable and configure high availbility
in a vcenter cluster
- enable_maintenance_mode - Added new playbook to enable maintenance mode on
an ESXi host
- esxi_maintenance_mode - Added new role for setting an ESXi host's maintenance
mode status. Added integration tests for role
- info - Fix creation of temporary files
- info - Fix the incorrect documentation
- manage_all_settings - Renamed and moved ``cluster_settings.yml`` playbook
to ``cluster_settings\manage_all_settings.yml``. New location is with other
cluster settings related plays
- provision_vcenter - Only use hdiutil to mount ISO on mac instead of hdiutil
+ mount. The new approach provides more consistent results when reading the
ISO content as a file system
- provision_vcenter - Use OS specific binary when deploying the VCSA appliance
(mac vs generic linux) instead of always using linux
- provision_vcenter - When running the playbook on MacOS, the `iso9660` file
system is not supported. Instead, Macs need to mount the ISO as a block device
and then mount it as `cd9660`. Added new tasks to perform these actions when
the os family is darwin
- provision_virtual_esxi - Added new role for provisioning a VM and installing
ESXi on it. Added integration tests for role
- reconnect_esxi_host_in_vcenter - Added new playbook to reconnect an ESXi host
in a vCenter
- remove_esxi_host_from_vcenter - Added new playbook to remove an ESXi host
from a vCenter
- snapshot_management - Add a new role and playbooks to manages virtual machines
snapshots in vCenter. (https://github.com/redhat-cop/cloud.vmware_ops/pull/24)
- vcenter_host_connection - Added role to manage the connection status of an
ESXI host to a vcenter. Included integration tests for the role
fragments:
- 20__mm-feature__add-provision-virtual-esxi.yml
- 21__mm-feature__add-vcenter-host-connection.yml
- 23__e2e-manage-vm-tests.yml
- 24-snapshot_management.yml
- 27__mm-feature__add-esxi-maintenance-mode.yml
- 28-fix-temp-file-creation.yml
- 28__mm-bugfix__provision-vcenter.yml
- 30__mm-bugfix__provision-vcenter-mac-support.yml
- 32__mm-bugfix__provision_virtual_esxi.yml
- 33__mm-bugfix__esxi-maintenance-mode.yml
- 34__info_fix_doc.yml
- 38__mm-bugfix__provision-vcenter-use-mac-bin-to-deploy.yml
- 39__mm-feature__cluster-settings.yml
- 40__mm-bugfix__provision-vcenter-missing-rhel-lib.yml
- 41-fix-readme-of-snapshot-management-role.yml
- 43-mm-feature__add-ha-playbooks.yml
- mm-feature__provision_vcenter_tests.yml
release_date: '2024-06-02'

This file was deleted.

This file was deleted.

3 changes: 0 additions & 3 deletions changelogs/fragments/23__e2e-manage-vm-tests.yml

This file was deleted.

3 changes: 0 additions & 3 deletions changelogs/fragments/24-snapshot_management.yml

This file was deleted.

This file was deleted.

3 changes: 0 additions & 3 deletions changelogs/fragments/28-fix-temp-file-creation.yml

This file was deleted.

11 changes: 0 additions & 11 deletions changelogs/fragments/28__mm-bugfix__provision-vcenter.yml

This file was deleted.

This file was deleted.

This file was deleted.

3 changes: 0 additions & 3 deletions changelogs/fragments/33__mm-bugfix__esxi-maintenance-mode.yml

This file was deleted.

3 changes: 0 additions & 3 deletions changelogs/fragments/34__info_fix_doc.yml

This file was deleted.

This file was deleted.

4 changes: 0 additions & 4 deletions changelogs/fragments/39__mm-feature__cluster-settings.yml

This file was deleted.

This file was deleted.

This file was deleted.

7 changes: 0 additions & 7 deletions changelogs/fragments/43-mm-feature__add-ha-playbooks.yml

This file was deleted.

8 changes: 0 additions & 8 deletions changelogs/fragments/mm-feature__provision_vcenter_tests.yml

This file was deleted.

2 changes: 1 addition & 1 deletion galaxy.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace: cloud
name: vmware_ops
version: 1.0.0
version: 1.2.0
readme: README.md
authors:
- Ansible Cloud Content Team (@redhat-cop)
Expand Down
138 changes: 138 additions & 0 deletions roles/manage_folder/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# Cluster settings role

A role to define cluster settings in vCenter.

## Requirements

pyvmomi < 7.0.3

In some cases, the vCLS cluster settings will fail to apply when using pyvmomi version 7.0.3 or greater. If this feature is required, using an earlier version will work.
Support for version 7.0.3 and higher is planned for the next release of community.vmware (>4.4.0), at which point this restriction will be removed.

## Role Variables
### Auth
- **manage_folder_username**:
- The vSphere vCenter username.

- **manage_folder_password**:
- The vSphere vCenter password.

- **manage_folder_hostname**:
- The hostname or IP address of the vSphere vCenter.

- **manage_folder_validate_certs**
- Allows connection when SSL certificates are not valid. Set to false when certificates are not trusted.

- **manage_folder_datacenter_name**:
- The name of the datacenter in vSphere vCenter which contains the cluster to configure.

- **manage_folder_port**:
- str or int, The port to use to authenticate to the vSphere vCenter which contains the cluster to configure.

### Cluster settings


### Placement
- **manage_folder_datacenter_name**:
- enter your description here

### Other
- **manage_folder_folder_name**:
- str, required, The name of folder to manage. It can be a single name like `foo` or a path like `foo/bar/buzz`.

- **manage_folder_parse_name_as_path**:
- bool, If true then `manage_folder_folder_name` is treated as a path. All folders along the path will be managed.
If false, the name is treated as a literal string. Default is true.

- **manage_folder_folder_type**:
- str, The type of folder to manage. Can be `datacenter`, `host`, `vm`, or `network`. The default is `vm`.

- **manage_folder_parent_folder**:
- >-
str, Set the folder path where the new folder(s) should be managed. This path must already exist.
For example, for the folder `foo/bizz/buzz` the parent is `foo/bizz/buzz`

- **manage_folder_state**:
- str, optional, Choose if the folder should be 'present' or 'absent'. Default value is 'present'

### Other
- **manage_folder_proxy_host**:
- str, The hostname of a proxy host that should be used for all HTTPs communication by the role. Optional

- **manage_folder_proxy_port**:
- str, The port of a proxy host that should be used for all HTTPs communication by the role. Optional

## Dependencies

- community.vmware

## Example Playbook
```yaml
---
- name: Manage VMWare Folders
hosts: all
gather_facts: false
vars:
manage_folder_username: <>
manage_folder_password: <>
manage_folder_hostname: <>
manage_folder_datacenter: DC01
manage_folder_type: host

roles:
- role: cloud.vmware_ops.manage_folder
manage_folder_folder_name: my/folder
manage_folder_state: present

- role: cloud.vmware_ops.manage_folder
manage_folder_folder_name: my/folder
manage_folder_state: absent

tasks:
- name: Create Folder Trees
ansible.builtin.include_role:
name: manage_folder
vars:
manage_folder_state: present
manage_folder_folder_name: "{{ item }}"
loop:
- production/foo/web
- uat/foo/web
- development/foo/web

- name: Create Folders Without Managing Full Tree
ansible.builtin.include_role:
name: manage_folder
vars:
manage_folder_state: present
manage_folder_folder_name: "{{ item }}"
manage_folder_parent_folder: production/foo
loop:
- backend
- db

- name: Create A Folder With A Slash In It
ansible.builtin.include_role:
name: manage_folder
vars:
manage_folder_state: present
manage_folder_folder_name: security/syseng
manage_folder_parent_folder: production/foo
manage_folder_parse_name_as_path: false

- name: Delete The Whole Tree
ansible.builtin.include_role:
name: manage_folder
vars:
manage_folder_state: absent
manage_folder_folder_name: production
```
## License
GNU General Public License v3.0 or later
See [LICENCE](https://github.com/ansible-collections/cloud.aws_troubleshooting/blob/main/LICENSE) to see the full text.
## Author Information
- Ansible Cloud Content Team
Loading

0 comments on commit 4759946

Please sign in to comment.