I want to use Packer for provisioning image for amazon ebs using chef.
I am getting the following error message:
JavaScript
x
sudo: sorry, you must have a tty to run sudo
example.json
JavaScript
{
"builders": [{
"type": "amazon-ebs",
"access_key": "...",
"secret_key": "...",
"region": "eu-central-1",
"source_ami": "ami-daaeaec7",
"instance_type": "t2.micro",
"ssh_username": "ec2-user",
"ami_name": "packer-example {{timestamp}}"
}],
"provisioners": [{
"type": "chef-solo",
"cookbook_paths": ["cookbooks", "site-cookbooks"],
"run_list": [ ]
}]
}
Output
JavaScript
$ packer build example.json
amazon-ebs output will be in this color.
==> amazon-ebs: Prevalidating AMI Name
==> amazon-ebs: Inspecting the source AMI
==> amazon-ebs: Creating temporary keypair: packer
==> amazon-ebs: Creating temporary security group for this instance
==> amazon-ebs: Authorizing access to port 22 the temporary security group
==> amazon-ebs: Launching a source AWS instance
amazon-ebs: Instance ID: i-
==> amazon-ebs: Waiting for instance (i- ) to become ready
==> amazon-ebs: Waiting for SSH to become available
==> amazon-ebs: Connected to SSH!
==> amazon-ebs: Provisioning with chef-solo
amazon-ebs: Installing Chef
amazon-ebs: % Total % Received % Xferd Average Speed Time Time Time Current
amazon-ebs: Dload Upload Total Spent Left Speed
amazon-ebs: 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0sudo: sorry, you must have a tty to run sudo
amazon-ebs: 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (23) Failed writing body (0 != 16086)
==> amazon-ebs: Terminating the source AWS instance
==> amazon-ebs: No AMIs to cleanup
==> amazon-ebs: Deleting temporary security group
==> amazon-ebs: Deleting temporary keypair
Build 'amazon-ebs' errored: Error installing Chef: Install script exited with non-zero exit status 1
==> Some builds didn't complete successfully and had errors:
--> amazon-ebs: Error installing Chef: Install script exited with non-zero exit status 1
==> Builds finished but no artifacts were created.
I think the relevant error message is:
JavaScript
sudo: sorry, you must have a tty to run sudo
Does anybody have an idea?
Advertisement
Answer
You can use ssh_pty : true
to have a TTY.
JavaScript
{
"builders": [{
"ssh_pty" : true,
}],
}