Provides a Packet device resource. This can be used to create, modify, and delete devices.
Note: All arguments including the root_password and user_data will be stored in the raw state as plain-text. Read more about sensitive data in state.
# Create a device and add it to cool_project
resource "packet_device" "web1" {
hostname = "tf.coreos2"
plan = "baremetal_1"
facility = "ewr1"
operating_system = "coreos_stable"
billing_cycle = "hourly"
project_id = "${packet_project.cool_project.id}"
}
# Same as above, but boot via iPXE initially, using the Ignition Provider for provisioning
resource "packet_device" "pxe1" {
hostname = "tf.coreos2-pxe"
plan = "baremetal_1"
facility = "ewr1"
operating_system = "custom_ipxe"
billing_cycle = "hourly"
project_id = "${packet_project.cool_project.id}"
ipxe_script_url = "https://rawgit.com/cloudnativelabs/pxe/master/packet/coreos-stable-packet.ipxe"
always_pxe = "false"
user_data = "${data.ignition_config.example.rendered}"
}
# Deploy device on next-available reserved hardware and do custom partitioning.
resource "packet_device" "web1" {
hostname = "tftest"
plan = "baremetal_0"
facility = "sjc1"
operating_system = "ubuntu_16_04"
billing_cycle = "hourly"
project_id = "${packet_project.cool_project.id}"
hardware_reservation_id = "next-available"
storage = <<EOS
{
"disks": [
{
"device": "/dev/sda",
"wipeTable": true,
"partitions": [
{
"label": "BIOS",
"number": 1,
"size": 4096
},
{
"label": "SWAP",
"number": 2,
"size": "3993600"
},
{
"label": "ROOT",
"number": 3,
"size": 0
}
]
}
],
"filesystems": [
{
"mount": {
"device": "/dev/sda3",
"format": "ext4",
"point": "/",
"create": {
"options": [
"-L",
"ROOT"
]
}
}
},
{
"mount": {
"device": "/dev/sda2",
"format": "swap",
"point": "none",
"create": {
"options": [
"-L",
"SWAP"
]
}
}
}
]
}
EOS
}
The following arguments are supported:
hostname - (Required) The device name project_id - (Required) The id of the project in which to create the device operating_system - (Required) The operating system slug facility - (Required) The facility in which to create the device plan - (Required) The hardware config slug billing_cycle - (Required) monthly or hourly user_data (Optional) - A string of the desired User Data for the device. public_ipv4_subnet_size (Optional) - Size of allocated subnet, more information is in the Custom Subnet Size doc. ipxe_script_url (Optional) - URL pointing to a hosted iPXE script. More information is in the Custom iPXE doc. always_pxe (Optional) - If true, a device with OS custom_ipxe will continue to boot via iPXE on reboots. hardware_reservation_id (Optional) - The id of hardware reservation where you want this device deployed, or next-available if you want to pick your next available reservation automatically. storage (Optional) - JSON for custom partitioning. Only usable on reserved hardware. More information in in the Custom Partitioning and RAID doc. tags - Tags attached to the device description - Description string for the device The following attributes are exported:
id - The ID of the device hostname- The hostname of the device project_id- The ID of the project the device belongs to facility - The facility the device is in plan - The hardware config of the device network - The device's private and public IP (v4 and v6) network details access_public_ipv6 - The ipv6 maintenance IP assigned to the device access_public_ipv4 - The ipv4 maintenance IP assigned to the device access_private_ipv4 - The ipv4 private IP assigned to the device locked - Whether the device is locked billing_cycle - The billing cycle of the device (monthly or hourly) operating_system - The operating system running on the device state - The status of the device created - The timestamp for when the device was created updated - The timestamp for the last time the device was updated tags - Tags attached to the device description - Description string for the device hardware_reservation_id - The id of hardware reservation which this device occupies root_password - Root password to the server (disabled after 24 hours)
© 2018 HashiCorpLicensed under the MPL 2.0 License.
https://www.terraform.io/docs/providers/packet/r/device.html