Skip to content
Snippets Groups Projects
Forked from rc / hpc-factory
360 commits behind the upstream repository.
nodeimage.pkr.hcl 1.25 KiB
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
  flavor            = var.flavor
  instance_name     = var.build_instance_name

  floating_ip_network = var.floating_ip_network
  networks = var.networks
  security_groups = var.security_groups

  ssh_username = var.ssh_username
}

# regular instance
build {
  sources = ["source.openstack.image"]

  provisioner "ansible" {
    user = var.ssh_username
    groups = ["gpu"]
    playbook_file = "./ansible/gpu.yml"
    ansible_env_vars = [
      "ANSIBLE_SSH_ARGS='-oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=ssh-rsa'",
      "ANSIBLE_HOST_KEY_CHECKING=False"
    ]
    roles_path = "./ansible/roles"
    extra_arguments = [
      "--extra-vars", "root_ssh_key='${var.root_ssh_key}'"
    ]
  }

  provisioner "ansible" {
    user = var.ssh_username
    use_proxy =  false
    groups = ["compute"]
    playbook_file = "./CRI_XCBC/compute-packer.yaml"
  }
}