blob: 1f4c701cd4325df521e012b9ff3cb9afb3b51fcf [file] [log] [blame]
---
subcategory: "Compute Engine"
description: |-
Get the serial port output from a Compute Instance.
---
# google\_compute\_instance\_serial\_port
Get the serial port output from a Compute Instance. For more information see
the official [API](https://cloud.google.com/compute/docs/instances/viewing-serial-port-output) documentation.
## Example Usage
```hcl
data "google_compute_instance_serial_port" "serial" {
instance = "my-instance"
zone = "us-central1-a"
port = 1
}
output "serial_out" {
value = data.google_compute_instance_serial_port.serial.contents
}
```
Using the serial port output to generate a windows password, derived from the [official guide](https://cloud.google.com/compute/docs/instances/windows/automate-pw-generation):
```hcl
resource "google_compute_instance" "windows" {
name = "windows-instance"
machine_type = "e2-medium"
zone = "us-central1-a"
boot_disk {
initialize_params {
image = "windows-cloud/windows-2019"
}
}
network_interface {
network = "default"
access_config {
// Ephemeral IP
}
}
metadata = {
serial-port-logging-enable = "TRUE"
// Derived from https://cloud.google.com/compute/docs/instances/windows/automate-pw-generation
windows-keys = jsonencode(
{
email = "example.user@example.com"
expireOn = "2020-04-14T01:37:19Z"
exponent = "AQAB"
modulus = "wgsquN4IBNPqIUnu+h/5Za1kujb2YRhX1vCQVQAkBwnWigcCqOBVfRa5JoZfx6KIvEXjWqa77jPvlsxM4WPqnDIM2qiK36up3SKkYwFjff6F2ni/ry8vrwXCX3sGZ1hbIHlK0O012HpA3ISeEswVZmX2X67naOvJXfY5v0hGPWqCADao+xVxrmxsZD4IWnKl1UaZzI5lhAzr8fw6utHwx1EZ/MSgsEki6tujcZfN+GUDRnmJGQSnPTXmsf7Q4DKreTZk49cuyB3prV91S0x3DYjCUpSXrkVy1Ha5XicGD/q+ystuFsJnrrhbNXJbpSjM6sjo/aduAkZJl4FmOt0R7Q=="
userName = "example-user"
}
)
}
service_account {
scopes = ["userinfo-email", "compute-ro", "storage-ro"]
}
}
data "google_compute_instance_serial_port" "serial" {
instance = google_compute_instance.windows.name
zone = google_compute_instance.windows.zone
port = 4
}
output "serial_out" {
value = data.google_compute_instance_serial_port.serial.contents
}
```
## Argument Reference
The following arguments are supported:
* `instance` - (Required) The name of the Compute Instance to read output from.
* `port` - (Required) The number of the serial port to read output from. Possible values are 1-4.
- - -
* `project` - (Optional) The project in which the Compute Instance exists. If it
is not provided, the provider project is used.
* `zone` - (Optional) The zone in which the Compute Instance exists.
If it is not provided, the provider zone is used.
## Attributes Reference
In addition to the arguments listed above, the following computed attributes are
exported:
* `contents` - The output of the serial port. Serial port output is available only when the VM instance is running, and logs are limited to the most recent 1 MB of output per port.