Tuesday, August 4, 2015

Provisioning a RHEL GCE machine with packer "sudo: sorry, you must have a tty to run sudo"

RedHat has long had an insane requiretty default for sudo, something that is fixed in later versions. Packer rightly doesn't set a tty by default, so if you provision a RHEL machine you'll likely see this:
sudo: sorry, you must have a tty to run sudo
In fact RHEL is quite the special snowflake, you need to set ssh_pty and also specify a username since root ssh is disabled by default. Here's my working builder:
      "name": "rhel-7.1",
     
"type": "googlecompute",
     
"account_file": "account.json",
     
"project_id": "YOUR_PROJECT_ID",
     
"source_image": "rhel-7-v20150710",
     
"zone": "us-central1-f",
     
"instance_name": "rhel-7",
     
"image_name": "rhel-7-{{timestamp}}",
     
"machine_type": "n1-standard-1",
     
"ssh_pty": "true",
     
"ssh_username": "someuser"