See my answer on SO https://stackoverflow.com/a/47301671/226174


On 15 November 2017 at 00:02, noisy noisyBits <[email protected]>
wrote:

> Hi all,
>
> I am struggling to run serverspec test on GCP packer instance from local
> machine.
> I have created a packer json config file as follows to create an image on
> GCP (provisioners run shell script to create an user account for sftp on
> packer instance):
> {
>     "variables": {
>         "project": "gcp-project",
>         "image_family": "centos-7",
>         "username": "centos",
>         "sftp_username": "",
>         "sftp_password":"",
>         "zone": "us-central1-c",
>         "version": "latest"
>     },
>
>     "builders": [
>         {
>             "type": "googlecompute",
>             "account_file": "account.json",
>             "project_id": "{{user `project`}}",
>             "zone": "{{user `zone`}}",
>             "source_image":"centos-7-v20171025",
>             "image_name": "sftp-{{user `image_family`}}-{{user
> `version`}}-{{timestamp}}",
>             "image_family": "{{user `image_family`}}",
>             "image_description": "sftp - from packer",
>             "ssh_username": "{{user `username`}}",
>             "machine_type": "g1-small"
>         }
>     ],
>
>     "provisioners": [
>         {
>             "type"  : "shell",
>             "inline": [
>                 "sudo adduser {{user `sftp_username`}}",
>                 "sudo echo -e '{{user `sftp_password`}}\n{{user
> `sftp_password`}}\n' | sudo passwd {{user `sftp_username`}}",
>                 "sudo mkdir -p /var/sftp/upload",
>                 "sudo chown root:root /var/sftp",
>                 "sudo chmod 755 /var/sftp",
>                 "sudo chown {{user `sftp_username`}}:{{user
> `sftp_username`}} /var/sftp/upload"
>             ]
>         },
>         {
>             "type": "shell-local",
>             "command": "rake spec TARGET_HOST=remotehost"
>         }
>     ]
> }
>
> and i am executing rake spec TARGET_HOST=(ip of packer instance) to run
> serverspec test from local machine and spec_helper.rb is configured with
> ssh login as follows:
>
> host = ENV['TARGET_HOST']
>
> options = Net::SSH::Config.for(host)
>
> options[:user] = 'centos'
>
> set :host, options[:host_name] || host
> set :ssh_options, options
>
> and Rakefile is configured to run test from specific folder.
>
> after running packer build command "packer build -var-file=variables.json
> sftp.json| tee build.log"
>
> it fails with
> Net::SSH::AuthenticationFailed:
> Authentication failed for user [email protected]
>
> Details packer build log
> ==> googlecompute: Checking image does not exist...
> ==> googlecompute: Creating temporary SSH key for instance...
> ==> googlecompute: Using image: centos-7-v20171025
> ==> googlecompute: Creating instance...
>     googlecompute: Loading zone: us-central1-c
>     googlecompute: Loading machine type: g1-small
>     googlecompute: Loading network: default
>     googlecompute: Requesting instance creation...
>     googlecompute: Waiting for creation operation to complete...
>     googlecompute: Instance has been created!
> ==> googlecompute: Waiting for the instance to become running...
>     googlecompute: IP: 1.2.3.4
> ==> googlecompute: Waiting for SSH to become available...
> ==> googlecompute: Connected to SSH!
> ==> googlecompute: Provisioning with shell script: /var/folders/vh/03_
> qyfy91r757mypx3qcgjfh0000gn/T/packer-shell043898698
>     googlecompute: New password: BAD PASSWORD: The password contains the
> user name in some form
>     googlecompute: Changing password for user nifi.
>     googlecompute: passwd: all authentication tokens updated successfully.
>     googlecompute: Retype new password:
> ==> googlecompute: Executing local command: rake spec TARGET_HOST=host
>     googlecompute:
>     googlecompute: An error occurred while loading ./spec/
> 31.2.3.4/sftp_spec.rb.
>     googlecompute: On host `1.2.3.4'
>     googlecompute: Failure/Error:
>     googlecompute:   describe service('sshd'), :if => os[:family] ==
> 'redhat' do
>     googlecompute:     it { should be_enabled }
>     googlecompute:     it { should be_running }
>     googlecompute:   end
>     googlecompute: Net::SSH::AuthenticationFailed:
>     googlecompute:   Authentication failed for user [email protected]
>
>
> I am not able to ssh to this temporary packer instance and serverspec test
> fail to run.
>
> any answer will be appreciated. thanks very much.
>
> Regards
> Nirmal
>
> --
> This mailing list is governed under the HashiCorp Community Guidelines -
> https://www.hashicorp.com/community-guidelines.html. Behavior in
> violation of those guidelines may result in your removal from this mailing
> list.
>
> GitHub Issues: https://github.com/mitchellh/packer/issues
> IRC: #packer-tool on Freenode
> ---
> You received this message because you are subscribed to the Google Groups
> "Packer" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/packer-tool/837f40a5-1759-4d39-a2b0-dd61940a78bc%40googlegroups.com
> <https://groups.google.com/d/msgid/packer-tool/837f40a5-1759-4d39-a2b0-dd61940a78bc%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
This mailing list is governed under the HashiCorp Community Guidelines - 
https://www.hashicorp.com/community-guidelines.html. Behavior in violation of 
those guidelines may result in your removal from this mailing list.

GitHub Issues: https://github.com/mitchellh/packer/issues
IRC: #packer-tool on Freenode
--- 
You received this message because you are subscribed to the Google Groups 
"Packer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/packer-tool/CALz9Rt8QNrncMSX0R%3DucPxweQhSCBhWiGqTcReuBc%3DX_kk%2BXfg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to