Block
Are you looking to get certified in DevOps, SRE and DevSecOps?
DevOps
Get Certified!
SRE
Ahead from others!
DevSecOps
Security is Key
Kubernetes
Tomorow's Platform!

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