Provides an alternative authentication method to the password.
The token validity is only tested during the first request after the
instantiation of `ProxmoxAPI`, thus the presence of a call to
`proxmox.version.get()` in `proxmox_template`.
Example:
- name: Ensure test-vm is created
proxmox_kvm:
api_host: prx-test
api_user: tleguern@pve
api_token_id: api-pve-test
api_token_secret: fad3db3d-b335-ee15-9fb0-ea1bf70128db
node: prx-test-01
name: test-vm
...
(cherry picked from commit 5cc900cfdb)
Co-authored-by: Tristan Le Guern <tristan.leguern-presta@deveryware.com>
The build output is only added during failures, but its useful to
have this available during normal task execution as well.
(cherry picked from commit 33b8d1c57e)
Co-authored-by: Raghu Siddarth Udiyar <raghusiddarth@gmail.com>
* proxmox_kvm: pool parameter not supported by API on update
* added changelog fragment
* format fix and pull request link added
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 726aa5ecf7)
Co-authored-by: thetuxkeeper <thetuxkeeper@gmail.com>
* Add support for StackScripts to Linode v4 module
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* add changelog fragment
* Add stackscript to example
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 637eaa15de)
Co-authored-by: rmcintosh <rmcintosh@users.noreply.github.com>
* fixed validation-modules for plugins/modules/cloud/google/gcdns_record.py
* fixed validation-modules for plugins/modules/cloud/google/gcdns_zone.py
* fixed validation-modules for plugins/modules/cloud/google/gce_eip.py
* fixed validation-modules for plugins/modules/cloud/google/gce_img.py
* fixed validation-modules for plugins/modules/cloud/google/gce_instance_template.py
* fixed validation-modules for plugins/modules/cloud/google/gce_labels.py
* fixed validation-modules for plugins/modules/cloud/google/gce_lb.py
* fixed validation-modules for plugins/modules/cloud/google/gce_mig.py
* fixed validation-modules for plugins/modules/cloud/google/gce_net.py
* fixed validation-modules for plugins/modules/cloud/google/gce_pd.py
* fixed validation-modules for plugins/modules/cloud/google/gce_snapshot.py
* fixed validation-modules for plugins/modules/cloud/google/gce_tag.py
* fixed validation-modules for plugins/modules/cloud/google/gcp_backend_service.py
* fixed validation-modules for plugins/modules/cloud/google/gcp_forwarding_rule.py
* fixed validation-modules for plugins/modules/cloud/google/gcp_healthcheck.py
* fixed validation-modules for plugins/modules/cloud/google/gcp_target_proxy.py
* fixed validation-modules for plugins/modules/cloud/google/gcpubsub_info.py
* fixed validation-modules for plugins/modules/cloud/google/gcpubsub.py
* fixed validation-modules for plugins/modules/cloud/google/gcp_url_map.py
* fixed validation-modules for plugins/modules/cloud/google/gcspanner.py
* fixed validation-modules for plugins/modules/cloud/google/gc_storage.py
* adjust parameter description in gce_eip.py
* fixed validation-modules for plugins/modules/cloud/google/gce.py
* removed extra type definition
* reformatted long lines
* Tidy up validate-modules ignores for cloud/google modules
* gc_storage.py: fixed parameter to be overwrite and alias force, instead of the other way around
* rolled back a number of ignore lines that ansible 2.9 believes to defy sanity
* gce_instance_template.py: the metadata parameter brings no definition whatsoever in argument_spec, causing a number of problems. Rolling back for now.
* Fixes on docs from the PR
(cherry picked from commit 4b26990d8b)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* add a warning when ansible_label is not found on a secret. addresses #30
* Update changelogs/fragments/31-docker-secret.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
Backported from 22ba76b4e9
(cherry picked from commit d9e734d662)
Co-authored-by: Felix Fontein <felix@fontein.de>
* lxc_container: fix the type of the 'container_config' parameter
* lxc_container: specify the type of elements in 'container_config'
* lxc_container: improve the documentation of the container_config option
* lxc_container: add changelogs fragment for PR 216
* lxc_container: update changelogs fragment for PR 216
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 9e51469e01)
Co-authored-by: montag451 <montag451@laposte.net>
* fixed validation-modules for plugins/doc_fragments/rackspace.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_cbs.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_cbs_attachments.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_cdb_database.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_cdb.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_cdb_user.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_clb_nodes.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_clb.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_clb_ssl.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_dns.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_dns_record.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_facts.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_files.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_files_objects.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_identity.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_keypair.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_meta.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_mon_alarm.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_mon_check.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_mon_entity.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_mon_notification_plan.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_mon_notification.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_network.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_queue.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_scaling_group.py
* fixed validation-modules for plugins/modules/cloud/rackspace/rax_scaling_policy.py
* Enabling validation-modules for rackspace modules
* Removed test in rax.py
* Added markup to items in list
* rax_monm_check.py: moved choices doc to description for check_type
As the argument_spec does not contain the "choices" spec, adjusting that in the docs
* rax_monm_check.py: a number of things missing in docs, fixed
(cherry picked from commit af4474efd7)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* proxmox, proxmox_kvm: Deprecate hard-coded defaults (#850)
* Remove hard-coded defaults
* Remove hard-coded defaults in proxmox.py
* Add changelog
* Remove defaults in proxmox docs
* Remove more default values
* Remove defaults in doc proxmox_kvm
* Restore default=True to onboot
* Add unspecified back to format
* correct changelog format and grammar
Co-authored-by: Felix Fontein <felix@fontein.de>
* improve changelog
* Fix changelog formatting
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix changelog formatting
* Deprecate before behaviour change
* Change changelog
* Remove unnecessary ignored sanity tests, fix
* Fix
* Better mention it too often than too little :)
* Deprecate in version 4.0.0 instead of 2.0.0
* Fix changelog
* Fix
* Remove none values
* Improve documentation as suggessted by felixfontein
* fix changelog
Co-authored-by: Felix Fontein <felix@fontein.de>
* Remove default value in force in proxmox_kvm
* Add description to force in proxmox_kvm
Co-authored-by: Felix Fontein <felix@fontein.de>
* Revert the breaking_change
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add support for extra options for terraform init
* Add missing var declaration
* feat: add changelog fragment
* feat: switch from an init_extra_args global option to an init_reconfigure specific option
* Update changelogs/fragments/823-terraform_init_reconfigure.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 282c1d546c)
Co-authored-by: Damien Guihal <dguihal@gmail.com>
* docker_login: fix internal config file storage to handle credentials for more than one registry
* Improve setup for docker registry.
* Add second registry frontend. Add tests for #1118.
* Fix cleanup.
(cherry picked from commit 16baefd167)
Co-authored-by: Felix Fontein <felix@fontein.de>
* Allow setting format to null (None)
* Use string instead of None for consistency
* Add changelog
* Update changelogs/fragments/1028-proxmox-kvm-linked-clone.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/misc/proxmox_kvm.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Substitute 'unspecified' format with None
Co-authored-by: Lukasz Rzasik <lukasz.rzasik@dreamlab.net>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit e3e66a57ec)
Co-authored-by: lukaszrzasik <lukasz.rzasik@gmail.com>
* proxmox_kvm: remove redundant parameters
The functions start_vm() and stop_vm() receive four common parameters:
module, proxmox, vm and vmid.
The last too are redundant so keep only vm.
I also took the opportunity to remove extra API calls to proxmox.nodes()
by assigning its return value to a variable.
* proxmox_kvm: remove extra calls to status.current
The get_vm() function already returns an array of properties containing
the status so remove extra API calls to retrieve this information.
Example:
[{''netin'': 177232, ''name'': ''test-instance'', ''maxcpu'': 1, ''node'': ''prx-01'', ''disk'': 0, ''template'': 0, ''uptime'': 267, ''cpu'': 0.0410680030805531, ''diskread'': 165294744, ''maxdisk'': 10737418240, ''vmid'': 42, ''status'': ''running'', ''id'': ''qemu/42'', ''maxmem'': 536870912, ''diskwrite'': 18528256, ''netout'': 2918, ''type'': ''qemu'', ''mem'': 160284950}]
* proxmox_kvm: kill VZ_TYPE global variable
It reduces readability without providing much values nowadays.
* proxmox_kvm: simplify vmid generation
Forgotten suggestion from Felix Fontein in PR#811.
* proxmox_kvm: add changelog fragment for PR#934
(cherry picked from commit 02e80c610b)
* proxmox_kvm: new function wait_for_task() (#831)
Allows some factorization of redundant code in stop_vm(), start_vm(),
create_vm() and main().
This new function also waits one extra second after a successful task execution as the API can be a bit ahead of Proxmox.
Before:
TASK [ansible-role-proxmox-instance : Ensure test-instance is created]
changed: [localhost]
TASK [ansible-role-proxmox-instance : Ensure test-instance is updated]
fatal: [localhost]: FAILED! => changed=false
msg: VM test-instance does not exist in cluster.
After:
TASK [ansible-role-proxmox-instance : Ensure test-instance is created]
changed: [localhost]
TASK [ansible-role-proxmox-instance : Ensure test-instance is updated]
changed: [localhost]
With suggestions from Felix Fontein <felix@fontein.de>.
(cherry picked from commit 9a5fe4c9af)
* Update plugins/modules/cloud/misc/proxmox_kvm.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
When the `vmid` parameter is not supplied and the module can only rely on
name look-up an early failure can happen if the targeted VM doesn't exist.
In this case a task execution with the parameter `state` set to `absent`
will actually fail instead of being considered ok.
This patch introduces a deferred error-checking for non-existent VMs
by assigning the value -1 to the `vmid` parameter, allowing the actual
verification to be performed in the right code paths.
Is also help to differentiate between a non-existent `vmid` or non-existent
VM `name`.
Previously:
TASK [ansible-role-proxmox-instance : Remove instance-test]
changed: [localhost]
...
TASK [ansible-role-proxmox-instance : Remove instance-test]
fatal: [localhost]: FAILED! => changed=false
msg: VM instance-test does not exist in cluster.
Now:
TASK [ansible-role-proxmox-instance : Remove instance-test]
ok: [localhost]
...
TASK [ansible-role-proxmox-instance : Remove instance-test]
ok: [localhost]
Update changelogs/fragments/811-proxmox-kvm-state-absent.yml
With suggestions from Felix Fontein <felix@fontein.de>.
(cherry picked from commit 73f8338980)
Co-authored-by: Tristan Le Guern <tleguern@bouledef.eu>
* Revert "Remove entries of modules that no longer exist." partially.
This reverts commit c1e1b37da4.
* Revert "The _info module is in google.cloud."
This reverts commit 26f5c84924.
* Revert "Remove modules that were moved to the google.cloud collection according to ansible/ansible's ansible_builtin_runtime.yml."
This reverts commit a1442ccc35.
* Fix FQCNs in examples and module references.
* Add changelog fragment.
* Update ignore.txt.
* Remove bad lines.
* use Config MacAddress by default instead of Networks
* use Config MacAddress by default instead of Networks - fix typo
* #564 docker_container macaddress - add changelog fragment
* dont start the service it parameter stopped is true
* add missing changelog fragment
* fix formatting of the changelog fragment
* add condition to disallow the usage of stopped and restarted at the same time
* fix changelog
* Add vpc_uuid option to droplet creation
* Include new vpc_uuid option digital_ocean_droplet
* Remove required, add type for vpc_uuid
Co-authored-by: Felix Fontein <felix@fontein.de>
* Create changelog fragment file
* Include version_added
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Adjust deprecation versions.
* Remove redirects that are already made in ansible/ansible's ansible_builtin_runtime.yml
* Remove modules that were moved to the google.cloud collection according to ansible/ansible's ansible_builtin_runtime.yml.
* The _info module is in google.cloud.
* The gcp doc_fragment is a copy of the one in google.cloud and is only used by one lookup. Mark as deprecated/internal.
* Remove entries of modules that no longer exist.
* Update ignore.txt.
* Try to fix test.
* Remove debug output.
* Add version_added: 1.0.0 for all new features added before pre-ansible-base.
* Add version_added: 1.0.0 for all new features.
* Next release will be 0.2.0
* Fix error.
* Remove unnecessary warnings.
To remove a scaleway compute node, one needs to stop it first. This is
handled internally within the module by shutting down before removing.
Shutting down the node transitions it to a "stopping" state, which is
not the "stopped" state we expect. We thus need the transition to
complete so that we can put it in the actual target state (absent, i.e.
delete it).
The mechanism for waiting for such transitions today is controlled by
module parameters, with default to not being enabled at all, which
includes the transition from ([running] -(stopping)-> [stopped]).
Without this chage, in case of a running node, we would shut it down
(transition it to "stopping"), not wait for it complete the transition,
realize that it's not yet stopped and issue a second shut down command
to the api. This would fail with a 400 Bad Request error, "already
stopped".
Reference: https://github.com/ansible/ansible/issues/45740
Reported-by: zwindler