Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- provider "aws" {
- region = "us-east-1"
- }
- data "aws_instances" "jumphosts" {
- filter {
- name = "tag:Name"
- values = ["jumphost_*"]
- }
- filter {
- name = "tag:Project"
- values = ["my_project"]
- }
- }
- data "aws_instances" "databases" {
- filter {
- name = "tag:Name"
- values = ["databases_*"]
- }
- filter {
- name = "tag:Project"
- values = ["my_project"]
- }
- }
- data "aws_instances" "applications" {
- filter {
- name = "tag:Name"
- values = ["applications_*"]
- }
- filter {
- name = "tag:Project"
- values = ["my_project"]
- }
- }
- resource "local_file" "ansible_inventory" {
- filename = "inventory.yaml"
- content = <<EOT
- all:
- children:
- jumphosts:
- hosts:
- %{for instance in data.aws_instances.jumphosts.public_ips ~}
- ${instance}:
- %{endfor}
- databases:
- hosts:
- %{for instance in data.aws_instances.databases.private_ips ~}
- ${instance}:
- ansible_ssh_common_args: '-o ProxyJump=${data.aws_instances.jumphosts.public_ips[0]}'
- %{endfor}
- applications:
- hosts:
- %{for instance in data.aws_instances.applications.private_ips ~}
- ${instance}:
- ansible_ssh_common_args: '-o ProxyJump=${data.aws_instances.jumphosts.public_ips[0]}'
- %{endfor}
- EOT
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement