Advertisement
Guest User

Untitled

a guest
Mar 14th, 2025
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.28 KB | Source Code | 0 0
  1. provider "aws" {
  2.   region = "us-east-1"
  3. }
  4.  
  5. data "aws_instances" "jumphosts" {
  6.   filter {
  7.     name   = "tag:Name"
  8.     values = ["jumphost_*"]
  9.   }
  10.   filter {
  11.     name   = "tag:Project"
  12.     values = ["my_project"]
  13.   }
  14. }
  15.  
  16. data "aws_instances" "databases" {
  17.   filter {
  18.     name   = "tag:Name"
  19.     values = ["databases_*"]
  20.   }
  21.   filter {
  22.     name   = "tag:Project"
  23.     values = ["my_project"]
  24.   }
  25. }
  26.  
  27. data "aws_instances" "applications" {
  28.   filter {
  29.     name   = "tag:Name"
  30.     values = ["applications_*"]
  31.   }
  32.   filter {
  33.     name   = "tag:Project"
  34.     values = ["my_project"]
  35.   }
  36. }
  37.  
  38. resource "local_file" "ansible_inventory" {
  39.   filename = "inventory.yaml"
  40.   content  = <<EOT
  41. all:
  42.   children:
  43.     jumphosts:
  44.       hosts:
  45. %{for instance in data.aws_instances.jumphosts.public_ips ~}
  46.         ${instance}:
  47. %{endfor}
  48.     databases:
  49.       hosts:
  50. %{for instance in data.aws_instances.databases.private_ips ~}
  51.         ${instance}:
  52.           ansible_ssh_common_args: '-o ProxyJump=${data.aws_instances.jumphosts.public_ips[0]}'
  53. %{endfor}
  54.     applications:
  55.       hosts:
  56. %{for instance in data.aws_instances.applications.private_ips ~}
  57.         ${instance}:
  58.           ansible_ssh_common_args: '-o ProxyJump=${data.aws_instances.jumphosts.public_ips[0]}'
  59. %{endfor}
  60. EOT
  61. }
  62.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement