Firstly apologies if this came up already. I was not able to find it with 
Google searches.
This is a packer-vagrant mixed issue, so I know that it could be also in 
vagrant's group.

What I am trying to do is to use packer to create an AWS instance, 
provision it (with ansible), generate an AWS AMI and post-processing would 
generate a vagrant box.
The whole process runs smoothly, but when I try to vagrant up that box I 
get "The box you attempted to add doesn't match the provider you 

Here is the relevant code from packer's json:

  "variables": {
  "builders": [
      "type": "amazon-ebs",
      "access_key": "{{user `aws_access_key`}}",
      "secret_key": "{{user `aws_secret_key`}}",
      "region": "{{user `region`}}",
      "source_ami": "{{user `source_ami`}}",
      "instance_type": "{{user `size`}}",
      "ssh_username": "{{user `user`}}",
      "ami_name": "{{user `temp_box`}}",
      "ami_description": "{{user `ami_desc`}}",
      "ami_regions": [
      "associate_public_ip_address": true,
      "force_deregister": true,
      "run_tags": {
        "type": "packertempinstance"
      "tags": {
        "type": "packerimage",
        "tag2": "stuff"
      "temporary_key_pair_name": "{{user `tmp_keypair`}}"
  "provisioners": [
      "type": "shell",
      "inline": [
        "while [ ! -f /var/lib/cloud/instance/boot-finished ]; do echo 
'Waiting for cloud-init...'; sleep 1; done"
      "type": "shell",
      "execute_command": "echo 'packer' | {{.Vars}} sudo -S -E bash 
      "inline": ["apt install python-minimal aptitude -y"]
      "type": "ansible",
      "playbook_file": "./playbook.yml",
      "groups": ["all", "app"],
      "ssh_host_key_file": "/Users/myuser/.ssh/mykey.pem",
      "extra_arguments": "-v",
      "ansible_env_vars": [ "ANSIBLE_HOST_KEY_CHECKING=False" ]
      "type": "shell",
      "execute_command": "echo 'packer' | {{.Vars}} sudo -S -E bash 
      "script": "cleanup.sh"
  "post-processors": [
      "type": "vagrant",
      "keep_input_artifact": true,
      "output": "modified-xenial.box"

When the modified-xenial.box is generated I'm adding it as a box:
# vagrant box add mybox `pwd`/modified-xenial.box
And then:
# vagrant init mybox -m

At this point I have a Vagrantfile like this:

$ cat Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "mybox"
  config.vm.box_url = ["file:///Users/myuser/Dev/modified-xenial.box"]

However, when I vagrant up it I get this:

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'mybox' could not be found. Attempting to find and 
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Box file was not detected as metadata. Adding it directly...
==> default: Adding box 'mybox' (v0) for provider: virtualbox
    default: Unpacking necessary files from: 
The box you attempted to add doesn't match the provider you specified.

Provider expected: virtualbox
Provider of box: aws

I understand that the original box was built using AWS's builder from 
packer, but the postprocessor should generate a vagrant/Virtualbox friendly 
box, right?

Any help into what I am doing wrong is appreciated.


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 packer-tool+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
For more options, visit https://groups.google.com/d/optout.

Reply via email to