VMware REST 模块开发指南

Ansible VMware REST 集合(在 Galaxy <https://galaxy.ansible.com/vmware/vmware_rest> 上,源代码 仓库 <https://github.com/ansible-collections/vmware.vmware_rest>)由 Red Hat 和社区维护。

贡献流程

vmware_rest 集合的模块由另一个名为 content_builder <https://github.com/ansible-community/ansible.content_builder> 的工具自动生成。

如果您想贡献更改,我们希望您在此仓库中打开一个 issue。

要求

您将需要

  • Python 3.6 或更高版本

  • tox <https://tox.readthedocs.io/en/latest/install.html> 命令

模块生成

请参阅此仓库中的 development.md 文件。

使用 ansible-test 进行测试

所有模块都覆盖了功能测试。测试位于 tests/integration/targets/ 中。

要运行测试,您将需要一个 vCenter 实例和一个 ESXi。

black 代码格式化工具

我们遵循 Black <https://github.com/psf/black> 的编码风格。您可以使用以下命令运行代码格式化工具。

tox -e black

健全性测试

这里我们使用 Python 3.8,最低版本为 3.6。

tox -e black
ansible-test sanity --debug --requirements --local --skip-test future-import-boilerplate --skip-test metaclass-boilerplate --python 3.8 -vvv

集成测试

这些测试应该针对您的测试环境运行。

..warning:: 测试套件将删除您测试环境中所有现有的 DC。

首先,准备一个配置文件,在此示例中我们将其称为 /tmp/inventory-vmware_rest

[vmware_rest]
localhost ansible_connection=local ansible_python_interpreter=python

[vmware_rest:vars]
vcenter_hostname=vcenter.test
vcenter_username=administrator@vsphere.local
vcenter_password=kLRy|FXwZSHXW0w?Q:sO
esxi1_hostname=esxi1.test
esxi1_username=zuul
esxi1_password=f6QYNi65k05kv8m56

要运行测试,请使用以下命令。您可能需要调整 Python 版本。

ansible-test network-integration --diff --no-temp-workdir --python 3.8 --inventory /tmp/inventory-vmware_rest zuul/