Skip to content

Error while provisioning EC2 instance #1

@rioastamal

Description

@rioastamal

Issue

CloudFormation always fail when provisioning EC2 instance.

Expected

CloudFormation should be able to provision all the resources.

Details

I've tried the steps found at https://aws.amazon.com/blogs/opensource/fully-automated-deployment-of-an-open-source-mail-server-on-aws/.

It turn out caused by the installation script issuing sudo command which took long and caused CloudFormation to timed-out. The sudo trying to resolve the hostname but it does not written on /etc/hosts. So to execute a singgle command it took ages to complete and gives warning:

sudo: unable to resolve host (MY_HOST_NAME)

Several script such as setup/nextcloud.sh uses sudo to run several commands.

Fixes

My fix is simple, I modify EC2 userdata on CloudFormation template and write the hostname to /etc/hosts file.

          # ...cut...
          export PRIMARY_HOSTNAME="${InstanceDns}.${MailInABoxDomain}"
          if [[ -z "${InstanceEIP}" ]]; then
            export PUBLIC_IP=$(ec2metadata --public-ipv4)
          else
            export PUBLIC_IP="${InstanceEIP}"
          fi

          echo "$PUBLIC_IP $PRIMARY_HOSTNAME" >> /etc/hosts
          # ...cut...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions