1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
Find a file
Kogelvis 23dda56913
Add proxmox_nic module (#2449)
* Add proxmox_nic module

Add proxmox_nic module to manage NIC's on Qemu(KVM) VM's in a Proxmox VE
cluster.
Update proxmox integration tests and add tests for proxmox_nic module.

This partially solves https://github.com/ansible-collections/community.general/issues/1964#issuecomment-790499397
and allows for adding/updating/deleting network interface cards after
creating/cloning a VM.

The proxmox_nic module will keep MAC-addresses the same when updating a
NIC. It only changes when explicitly setting a MAC-address.

* Apply suggestions from code review

Co-authored-by: Felix Fontein <felix@fontein.de>

* Add check_mode and implement review comments

- check_mode added
- some documentation updates
- when MTU is set, check if the model is virtio, else fail
- trunks can now be provided as list of ints instead of vlanid[;vlanid...]

* Make returns on update_nic and delete_nic more readable

Co-authored-by: Felix Fontein <felix@fontein.de>

* Increase readability on update_nic and delete_nic

* Implement check in get_vmid

- get_vmid will now fail when multiple vmid's are returned as proxmox
  doesn't guarantee uniqueness
- remove an unused import
- fix a typo in an error message

* Add some error checking to get_vmid

- get_vmid will now return the error message when proxmoxer fails
- get_vmid will return the vmid directly instead of a list of one
- Some minor documentation updates

* Warn instead of fail when setting mtu on unsupported nic

- When setting the MTU on an unsupported NIC model (virtio is the only
  supported model) this module will now print a warning instead of
  failing.
- Some minor documentation updates.

* Take advantage of proxmox_auth_argument_spec

Make use of proxmox_auth_argument_spec from plugins/module_utils/proxmox.py
This provides some extra environment fallbacks.

* Add blank line to conform with pep8

Co-authored-by: Felix Fontein <felix@fontein.de>
2021-05-13 21:48:49 +02:00
.azure-pipelines Run unit tests also with Python 3.10. (#2486) 2021-05-11 07:52:57 +02:00
.github module_helper.py Breakdown (#2393) 2021-05-11 19:31:10 +02:00
changelogs linode - docs/validation changes + minor refactorings (#2410) 2021-05-12 17:37:31 +02:00
meta Remove deprecated modules scheduled for removal in 3.0.0 (#1924) 2021-04-13 11:19:25 +00:00
plugins Add proxmox_nic module (#2449) 2021-05-13 21:48:49 +02:00
scripts Make inventory scripts executable (#2337) 2021-04-26 21:24:26 +02:00
tests Add proxmox_nic module (#2449) 2021-05-13 21:48:49 +02:00
.gitignore Initial commit 2020-03-09 09:11:07 +00:00
CHANGELOG.rst Reset changelog. 2021-01-27 13:01:36 +01:00
commit-rights.md [WIP] Committer guidelines (#2077) 2021-04-03 11:46:02 +02:00
COPYING Initial commit 2020-03-09 09:11:07 +00:00
galaxy.yml stable-3 has been created, prepare for next 3.x.y release. 2021-04-26 18:33:30 +02:00
README.md Clarify Windows (non-)support. (#2476) 2021-05-10 13:45:10 +01:00

Community General Collection

Build Status Codecov

This repo contains the community.general Ansible Collection. The collection includes many modules and plugins supported by Ansible community which are not part of more specialized community collections.

You can find documentation for this collection on the Ansible docs site.

Please note that this collection does not support Windows targets. Only connection plugins included in this collection might support Windows targets, and will explicitly mention that in their documentation if they do so.

Tested with Ansible

Tested with the current Ansible 2.9, ansible-base 2.10 and ansible-core 2.11 releases and the current development version of ansible-core. Ansible versions before 2.9.10 are not supported.

External requirements

Some modules and plugins require external libraries. Please check the requirements for each plugin or module you use in the documentation to find out which requirements are needed.

Included content

Please check the included content on the Ansible Galaxy page for this collection or the documentation on the Ansible docs site.

Using this collection

Before using the General community collection, you need to install the collection with the ansible-galaxy CLI:

ansible-galaxy collection install community.general

You can also include it in a requirements.yml file and install it via ansible-galaxy collection install -r requirements.yml using the format:

collections:
- name: community.general

See Ansible Using collections for more details.

Contributing to this collection

If you want to develop new content for this collection or improve what is already here, the easiest way to work on the collection is to clone it into one of the configured COLLECTIONS_PATH, and work on it there.

For example, if you are working in the ~/dev directory:

cd ~/dev
git clone git@github.com:ansible-collections/community.general.git collections/ansible_collections/community/general
export COLLECTIONS_PATH=$(pwd)/collections:$COLLECTIONS_PATH

You can find more information in the developer guide for collections, and in the Ansible Community Guide.

Running tests

See here.

Communication

We have a dedicated Working Group for Ansible development.

You can find other people interested on the following Freenode IRC channels -

  • #ansible - For general use questions and support.
  • #ansible-devel - For discussions on developer topics and code related to features or bugs.
  • #ansible-community - For discussions on community topics and community meetings.

For more information about communities, meetings and agendas see Community Wiki.

For more information about communication

Publishing New Version

Basic instructions without release branches:

  1. Create changelogs/fragments/<version>.yml with release_summary: section (which must be a string, not a list).
  2. Run antsibull-changelog release --collection-flatmap yes
  3. Make sure CHANGELOG.rst and changelogs/changelog.yaml are added to git, and the deleted fragments have been removed.
  4. Tag the commit with <version>. Push changes and tag to the main repository.

Release notes

See the changelog.

Roadmap

See this issue for information on releasing, versioning and deprecation.

In general, we plan to release a major version every six months, and minor versions every two months. Major versions can contain breaking changes, while minor versions only contain new features and bugfixes.

More information

Licensing

GNU General Public License v3.0 or later.

See COPYING to see the full text.