packer { required_plugins { openstack = { version = "~> 1" source = "github.com/hashicorp/openstack" } ansible = { version = "~> 1" source = "github.com/hashicorp/ansible" } } } locals { local_image_name = "${var.image_name}${var.image_date_suffix ? formatdate("-YYYYMMDDHHmm", timestamp()) : ""}" } source "openstack" "image" { skip_create_image = var.skip_create_image image_name = local.local_image_name source_image = var.source_image image_members = var.image_membership image_auto_accept_members = var.auto_accept_members image_tags = var.image_tags image_disk_format = var.image_format volume_size = var.volume_size flavor = var.flavor instance_name = var.build_instance_name use_blockstorage_volume = true floating_ip_network = var.floating_ip_network networks = var.networks security_groups = var.security_groups ssh_username = var.ssh_username } build { sources = ["source.openstack.image"] provisioner "ansible" { use_proxy = false user = var.ssh_username groups = ["base"] playbook_file = "./ansible/base.yml" roles_path = "./ansible/roles" extra_arguments = [ "--extra-vars", "root_ssh_key='${var.root_ssh_key}'" ] } provisioner "ansible" { use_proxy = false user = var.ssh_username groups = ["base"] ansible_env_vars = ["ANSIBLE_HOST_KEY_CHECKING=False"] playbook_file = "./CRI_XCBC/compute-packer.yaml" } }