diff --git a/enos/modules/test_smoke/main.tf b/enos/modules/test_smoke/main.tf index 02ca1d6e8..3f903a3d3 100644 --- a/enos/modules/test_smoke/main.tf +++ b/enos/modules/test_smoke/main.tf @@ -93,6 +93,24 @@ resource "enos_local_exec" "add_to_host_set" { inline = ["${var.local_boundary_dir}/boundary host-sets add-hosts -id=${local.host_set_id} -host=${local.host_ids[each.value]} -format=json"] } +resource "enos_local_exec" "create_static_credential_store" { + environment = local.base_environment + inline = ["${var.local_boundary_dir}/boundary credential-stores create static -scope-id=${var.project_scope_id} -format=json"] +} + +locals { + credential_store_id = jsondecode(enos_local_exec.create_static_credential_store.stdout).item.id +} + +resource "enos_local_exec" "create_ssh_private_key_credential" { + environment = local.base_environment + inline = ["${var.local_boundary_dir}/boundary credentials create ssh-private-key -credential-store-id=${local.credential_store_id} -username=ubuntu -private-key=file://${var.aws_ssh_private_key_path} -format=json"] +} + +locals { + credential_id = jsondecode(enos_local_exec.create_ssh_private_key_credential.stdout).item.id +} + resource "enos_local_exec" "create_target" { environment = local.base_environment inline = ["${var.local_boundary_dir}/boundary targets create tcp -name='test target' -description='test target' -default-port=22 -scope-id=${var.project_scope_id} -session-connection-limit='-1' -session-max-seconds=900 -format=json"] @@ -107,13 +125,16 @@ resource "enos_local_exec" "add_hosts_to_target" { inline = ["${var.local_boundary_dir}/boundary targets add-host-sources -id=${local.target_id} -host-source=${local.host_set_id} -format=json"] } +resource "enos_local_exec" "add_credential_to_target" { + environment = local.base_environment + inline = ["${var.local_boundary_dir}/boundary targets add-credential-sources -id=${local.target_id} -brokered-credential-source=${local.credential_id} -format=json"] +} + resource "enos_local_exec" "connect_target" { environment = merge(local.base_environment, { BOUNDARY_PATH = var.local_boundary_dir TARGET_ID = local.target_id - SSH_KEY_PATH = var.aws_ssh_private_key_path - SSH_USER = "ubuntu" }) scripts = ["${path.module}/../../templates/connect-target.sh"] } diff --git a/enos/templates/connect-target.sh b/enos/templates/connect-target.sh index 8ad12ab61..4a59de5cb 100644 --- a/enos/templates/connect-target.sh +++ b/enos/templates/connect-target.sh @@ -21,5 +21,4 @@ function retry { return 0 } -# cannot currently boundary connect ssh -- [args] because port and host key are appended -retry 10 ${BOUNDARY_PATH}/boundary connect -target-id=${TARGET_ID} -exec /usr/bin/ssh -- -i ${SSH_KEY_PATH} -l ${SSH_USER} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p {{boundary.port}} {{boundary.ip}} hostname -I +retry 10 ${BOUNDARY_PATH}/boundary connect ssh -target-id=${TARGET_ID}