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 = ["ood"] playbook_file = "./ansible/ood.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 = ["ood", "knightly"] ansible_env_vars = ["ANSIBLE_HOST_KEY_CHECKING=False"] playbook_file = "./CRI_XCBC/ood-packer.yaml" extra_arguments = [ "--extra-vars", "${var.extra_vars}" ] } provisioner "shell" { inline = [ "sudo yum install -y libselinux-python3 python3 python3-pip tmux vim git bash-completion curl wget unzip", "sudo python3 -m pip install --upgrade pip", "sudo pip3 install s3cmd==2.3.0 ansible==4.10.0 python-openstackclient==5.8.0" ] } }