I want to use Packer for provisioning image for amazon ebs using chef.
I am getting the following error message:
sudo: sorry, you must have a tty to run sudo
example.json
{ "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
$ 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:
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.
{ "builders": [{ ... "ssh_pty" : true, ... }], ... }