Skip to content

SSH connect issues  #253

@fernflower

Description

@fernflower

With v0.2.6 of the plugin and the following template

{
    "variables":
        {
            "apikey": "MY_SECRET_API_KEY",
            "access_key": "MY_SECRET_ACCESS_KEY",
            "secret_key": "MY_SECRET_SECRET_KEY",
            "playbook_file": "",
            "extra_arguments": ""
        },
    "builders":[
        {
            "type": "powervs",
            "account_id": "4207b73c20f249499b08ed2136bb1819",
            "service_instance_id": "3f595cdc-b316-48a6-b6df-d8ac004c6078",
            "api_key": "{{ user `apikey` }}",
            "debug": true,
            "zone": "us-east",
            "source": {
                "name": "rhel-9-6-0-20241209-d-1"
            },
            "instance_name": "packer-build-{{timestamp}}",
            "key_pair_name": "ivasilev",
            "ssh_username": "cloud-user",
            "ssh_timeout": "3m",
            "capture": {
                "name": "target-image-1",
                "cos": {
                    "bucket": "tft-image-import",
                    "region": "us-east",
                    "access_key": "{{user `access_key`}}",
                    "secret_key": "{{user `secret_key`}}"
                }
            }
        }
    ],
    "provisioners":[
        {
            "type": "ansible",
            "playbook_file": "{{user `playbook_file`}}",
            "extra_arguments": [ "-vv", "--extra-vars", "{{user `ansible_extra_vars`}}" ],
            "ansible_env_vars": [ "ANSIBLE_LOAD_CALLBACK_PLUGINS=1", "ANSIBLE_STDOUT_CALLBACK=debug" ],
            "use_proxy": false
        }
    ]
}

I am unfortunately hitting an issue with packit never establishing ssh connection.

The image I'm using requires either login as cloud-user or passing userdata that would allow root ssh auth. Unfortunately specifying ssh_username: cloud-user in the template does not cut it and there looks like no option for supplying userdata to be passed to instance create command (based on what https://github.com/ppc64le-cloud/packer-plugin-powervs/blob/main/builder/powervs/builder.hcl2spec.go#L25 has to offer).

ivasilev@ivasilev-thinkpadp1gen4i:~/projects/ansible-baseos-ci/cli$ packer build -var playbook_file=../images/playbooks/compose/build.yaml ../images/packer/ibmcloud-power-ansible.json 
powervs: output will be in this color.

==> powervs: Importing the Base Image
    powervs: Image found with ID: fe2bd832-1dc3-4fb1-81bd-8fd821745392
==> powervs: Creating network
    powervs: Network Created, Name: public-192_168_5_240-28-VLAN_2063, ID: b3c8b060-fc98-4d97-81d5-fa063283cfce
==> powervs: Creating Instance
    powervs: Creating Instance
    powervs: Instance Created, Name: packer-build-1734382636, ID: 29a6d2f3-657f-4553-b1d3-d5eb25387ffd
    powervs: Fetching IP for machine
    powervs: Machine IP is not yet found, Trying again
    powervs: Machine IP is not yet found, Trying again
==> powervs: Using SSH communicator to connect: 52.116.109.254
==> powervs: Waiting for SSH to become available...
    powervs: Fetching IP for machine
    powervs: Fetching IP for machine
    powervs: Fetching IP for machine
    powervs: Fetching IP for machine
    powervs: Fetching IP for machine
    powervs: Fetching IP for machine
    powervs: Fetching IP for machine
    powervs: Fetching IP for machine
    powervs: Fetching IP for machine
==> powervs: Timeout waiting for SSH.
==> powervs: Deleting the Instance
    powervs: VM still exists, state: ACTIVE
    powervs: VM still exists, state: ACTIVE
    powervs: instance deleted successfully
==> powervs: Deleting the Network
    powervs: Successfully deleted network
Build 'powervs' errored after 6 minutes 8 seconds: Timeout waiting for SSH.

==> Wait completed after 6 minutes 8 seconds

==> Some builds didn't complete successfully and had errors:
--> powervs: Timeout waiting for SSH.

==> Builds finished but no artifacts were created.

At the same time one can totally reach the machine as [email protected] and there is indeed the proper ssh key in ~/.ssh/authorized_keys (the one specified by key_pair_name).

The goal is to achieve the same functionality as the ibmcloud pi plugin instance create call:
ibmcloud pi instance create artemis-pi-manual-boot --image rhel-9-6-0-20241209-d-1 --subnets 969ef856-27e9-4255-ae9e-61b1a7bb6e2f --key-name ivasilev --user-data ~/projects/artemis/server/configuration/userdata_allow_root

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions