How to Update Cloud-Init User Data on a Vultr Bare Metal Instance
-
by Blog Admin
- 14
How to Update Cloud-Init User Data on a Vultr Bare Metal Instance
A guide for modifying the automated initialization data on Vultr Bare Metal servers after deployment.
Cloud-Init enables the automatic initialization and configuration of instances during the initial boot phase. Cloud-Init user data runs a specific script’s contents to automate the instance customization, software installation and configuration of specific packages or services.
Follow this guide to update Cloud-Init user data on a Vultr Bare Metal instance using the Vultr Customer Portal, API, CLI, or Terraform.
Vultr Customer Portal
- Navigate to Products and click Compute.
- Click your target instance to open its management page.
- Navigate to the User-Data tab.
- Enter a script or cloud config in the Cloud-Init User-Data field.
- Click Update to apply changes.
Vultr API
- Send a
GET
request to the List Bare Metal Instances endpoint and note your target instance’s ID.$ curl "https://api.vultr.com/v2/bare-metals" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
- Send a
PATCH
request to the Update Bare Metal endpoint to update the Cloud-Init user data on the instance.console$ curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}" \ -X PATCH \ -H "Authorization: Bearer ${VULTR_API_KEY}" \ -H "Content-Type: application/json" \ --data '{ "user_data" : "<cloud-init-data>" }'
Vultr CLI
- List all Bare Metal instances available in your Vultr account and note the target instance’s ID.
console
$ vultr-cli bare-metal list
- Upload new Cloud-Init user data to the instance using a file on your workstation.
console
$ vultr-cli bare-metal user-data set <instance-id> --userdata "<script-path>"
Terraform
Cloud-Init user data can only be set during instance creation in Terraform and cannot be updated on an existing Bare Metal instance without recreating it.
- Open your Terraform configuration for the new Bare Metal instance.
- Add the
user_data
argument to the Bare Metal resource to run a script at first boot.terraformresource "vultr_bare_metal_server" "bm" { # ...existing fields (region, plan, label, etc.) user_data = <<-EOT #cloud-config packages: - nginx runcmd: - systemctl enable --now nginx EOT }
- Apply the configuration and observe the following output:
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
How to Update Cloud-Init User Data on a Vultr Bare Metal Instance A guide for modifying the automated initialization data on Vultr Bare Metal servers after deployment. Cloud-Init enables the automatic initialization and configuration of instances during the initial boot phase. Cloud-Init user data runs a specific script’s contents to…
How to Update Cloud-Init User Data on a Vultr Bare Metal Instance A guide for modifying the automated initialization data on Vultr Bare Metal servers after deployment. Cloud-Init enables the automatic initialization and configuration of instances during the initial boot phase. Cloud-Init user data runs a specific script’s contents to…