mirror of
https://github.com/ansible-collections/hetzner.hcloud.git
synced 2026-02-03 23:51:48 +00:00
feat(server): allow setting user_data for rebuild (#794)
##### SUMMARY `user_data` is now a supported field for rebuilds. See https://docs.hetzner.cloud/changelog#2026-01-16-server-rebuild-with-user-data --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: jo <ljonas@riseup.net>
This commit is contained in:
parent
d52e86d944
commit
98ae62ac94
3 changed files with 14 additions and 3 deletions
2
changelogs/fragments/server-rebuild-user-data.yml
Normal file
2
changelogs/fragments/server-rebuild-user-data.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
minor_changes:
|
||||||
|
- server - Rebuilding a Server now supports the ``user_data`` argument.
|
||||||
|
|
@ -126,7 +126,7 @@ options:
|
||||||
description:
|
description:
|
||||||
- User Data to be passed to the server on creation.
|
- User Data to be passed to the server on creation.
|
||||||
- C(cloud-init), C(ignition) or similar provisioning tools may retrieve user configuration from the Server's C(user_data).
|
- C(cloud-init), C(ignition) or similar provisioning tools may retrieve user configuration from the Server's C(user_data).
|
||||||
- Only used during the server creation.
|
- Used during the server creation or server rebuild.
|
||||||
type: str
|
type: str
|
||||||
rescue_mode:
|
rescue_mode:
|
||||||
description:
|
description:
|
||||||
|
|
@ -930,8 +930,13 @@ class AnsibleHCloudServer(AnsibleHCloud):
|
||||||
self.module.fail_on_missing_params(required_params=["image"])
|
self.module.fail_on_missing_params(required_params=["image"])
|
||||||
try:
|
try:
|
||||||
if not self.module.check_mode:
|
if not self.module.check_mode:
|
||||||
image = self._get_image(self.hcloud_server.server_type)
|
params = {
|
||||||
resp = self.client.servers.rebuild(self.hcloud_server, image)
|
"image": self._get_image(self.hcloud_server.server_type),
|
||||||
|
}
|
||||||
|
if (value := self.module.params.get("user_data")) is not None:
|
||||||
|
params["user_data"] = value
|
||||||
|
|
||||||
|
resp = self.client.servers.rebuild(self.hcloud_server, **params)
|
||||||
# When we rebuild the server progress takes some more time.
|
# When we rebuild the server progress takes some more time.
|
||||||
resp.action.wait_until_finished(max_retries=202) # 202 retries >= 1002 seconds
|
resp.action.wait_until_finished(max_retries=202) # 202 retries >= 1002 seconds
|
||||||
self._mark_as_changed()
|
self._mark_as_changed()
|
||||||
|
|
|
||||||
|
|
@ -257,6 +257,10 @@
|
||||||
hetzner.hcloud.server:
|
hetzner.hcloud.server:
|
||||||
name: "{{ hcloud_server_name }}"
|
name: "{{ hcloud_server_name }}"
|
||||||
image: "{{ hcloud_image_name }}"
|
image: "{{ hcloud_image_name }}"
|
||||||
|
user_data: |
|
||||||
|
#cloud-config
|
||||||
|
packages:
|
||||||
|
- curl
|
||||||
state: rebuild
|
state: rebuild
|
||||||
register: result_after_test
|
register: result_after_test
|
||||||
- name: verify rebuild server
|
- name: verify rebuild server
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue