Limited Time Offer!

For Less Than the Cost of a Starbucks Coffee, Access All DevOpsSchool Videos on YouTube Unlimitedly.
Master DevOps, SRE, DevSecOps Skills!

Enroll Now

How to overwrite Existing AWS EC2 AMI with Packer?

USING FORCE_DEREGISTER ADDED IN V1.1.2, IT WAS VERIFIED WHETHER AWS EC2 AMI CAN BE OVERWRITTEN. THE PROCESS IS TO DELETE THE AMI WITH THE SAME NAME AND THEN CREATE A NEW AMI. IN THIS VERIFICATION, BY USING FORCE_DELETE_SNAPSHOT TOGETHER, DO NOT LEAVE GARBAGE OF OLD AMI.

Here is the sample programs for overwrite Existing AWS EC2 AMI with Packer

ec2.json file with (force_deregister,force_delete_snapshot)

# cat ec2.json
{
    "variables": {
      "var_ami_name": "centos_ami_20171106"
    },
    "builders":
    [
        {
            "type": "amazon-ebs",
            "ami_name": "{{user `var_ami_name`}}",
            "region": "ap-northeast-1",
            "source_ami": "ami-30ef0556",
            "instance_type": "t2.micro",
            "force_deregister": "true",
            "force_delete_snapshot": "true",
            "ssh_keypair_name": "aws_v2",
            "ssh_private_key_file": "/tmp/aws_v2.pem",
            "ssh_username": "ec2-user",
            "tags": {
               "srv": "packer",
               "name": "base"
            }
        }
    ],
  "provisioners" : [{
    "type" : "ansible",
    "user" : "ec2-user",
    "playbook_file" : "./ansible/packer_base.yml",
    "ansible_env_vars":
    [ 
       "ANSIBLE_HOST_KEY_CHECKING=False",
       "ANSIBLE_SSH_ARGS='-o ForwardAgent=yes -o ControlMaster=auto -o ControlPersist=60s'",
       "ANSIBLE_NOCOLOR=True",
       "AMI_NAME={{user `var_ami_name`}}"
    ]
  }]
}
Rajesh Kumar
Follow me