| # Copyright (c) HashiCorp, Inc. |
| # SPDX-License-Identifier: BUSL-1.1 |
| |
| terraform { |
| required_providers { |
| # We need to specify the provider source in each module until we publish it |
| # to the public registry |
| enos = { |
| source = "app.terraform.io/hashicorp-qti/enos" |
| version = ">= 0.4.0" |
| } |
| } |
| } |
| |
| variable "service_name" { |
| type = string |
| description = "The Vault systemd service name" |
| default = "vault" |
| } |
| |
| variable "target_hosts" { |
| description = "The target machines host addresses to use for the Vault cluster" |
| type = map(object({ |
| private_ip = string |
| public_ip = string |
| })) |
| } |
| |
| resource "enos_remote_exec" "shutdown_multiple_nodes" { |
| for_each = var.target_hosts |
| inline = ["sudo systemctl stop ${var.service_name}.service; sleep 5"] |
| |
| transport = { |
| ssh = { |
| host = each.value.public_ip |
| } |
| } |
| } |