Browse Source

adapt ansible inventory genearted by terraform to produce multiple domain group

master
RouxAntoine 2 months ago
parent
commit
ac33fb466f
5 changed files with 36 additions and 14 deletions
  1. +2
    -2
      .gitignore
  2. +13
    -6
      applications/stack_address.toml
  3. +1
    -0
      stack/cloud_init_user_data.yml
  4. +2
    -2
      stack/computes.tf
  5. +18
    -4
      stack/libvirtd.tf

+ 2
- 2
.gitignore View File

@@ -1,5 +1,5 @@
.terraform
.terraform*
*.tfstate.backup

base/images/*
!base/images/.gitkeep
!base/images/.gitkeep

+ 13
- 6
applications/stack_address.toml View File

@@ -1,7 +1,14 @@
[all]
compute-0 ansible_host=100.64.0.113 index=0
compute-1 ansible_host=100.64.0.251 index=1
compute-2 ansible_host=100.64.0.114 index=2
compute-3 ansible_host=100.64.0.124 index=3
# two first domain is controller domain
[controller]
compute-0 ansible_host=100.64.0.146 index=0
compute-1 ansible_host=100.64.0.214 index=1
# next domain is worker domain
[worker]
compute-2 ansible_host=100.64.0.79 index=0
compute-3 ansible_host=100.64.0.86 index=1

[all:children]
controller
worker
[all:vars]
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
ansible_ssh_extra_args='-o StrictHostKeyChecking=no'

+ 1
- 0
stack/cloud_init_user_data.yml View File

@@ -22,6 +22,7 @@ users:
- name: antoine
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCuLVDINxqYow17v9oovyqG3Ok5mOa36U3f+D7CtY8cS7jZavx7A6h2DAtlNzzJl3AxRtk3JY1rmV2fhwB+lVA1S8WT61/qHZH+smjbt6YCp6/ICMKPR8tKtbFUnXn+o9tAhqa7cryWs2LerJasXaSUUguIb6Lr0teSM6enzmtNShjiUta+6HlN+M91n/tp4pjn+tvNUSFETg1JVX1DIG/6U43N8V+fu6xsN5ceoPNGpBpikP0ZYmKYdcPMqqcWJkkaLGwh/u4R98BUVSPor/OFaMw3IZ6Nr7yCdWPCe/8SvEkbd2iMQm5dQjqEFEJUyPwoE18lfM2VnVwlaKsFN9Cmu2J5H4w9qlkZCSGkLa6eckJ3dOHDf6PZO409jbU7sV5rEspuo4gWqEzx5l2YKnASxhy+hylCj+sYrgMcEo9XMVSSYgj5ynykr3LyxyaFklZEuVxXJUYrOVcVIRdkJu9cVnhj6LvaUHY1JqdbhOAjPpSIVqKLPUYJIMU5nVKOh53Dd/rXdOx6BQXiA44DGuvYvHMohK7rXA92Sau0Hbb30DDMkPSPDXknIB+anELGCCx6j8HC38FzJyqtvtrDsG6sc/D3UQGApAS0+O6FXeH+v2OiPhJjdQMwNl5YMrJt6AUBVZZAZtFgUlhhZXRbyhuUuhmWYmzsNbWX7N5pzgYPyQ== antoine@archlinux
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDfZN6aBxLhNWG/Wc4w/owuCy7wdGeco3fAlpl3EY96Nr3JZlSrKvnE+ioCcnGYqhBqqXsdK0zNhx2RSEMXn27h8Sgfhv+gsJJo4/6xtuoPzSBb2B8NjEML1Mb1mwKxNdsMLXrHbU/a3T6RvUdrNVoQ4J3qg2hZMHosrBQT5C4567EVJeQlL41QkjCBTQ/PNDp8ieuwYLtTGe6Oi9WDPWTGSzW/9h6omDtE0VZ2NYQwqloTCl4ow038KX0AgKO+Cug3YlCPGQ0mg/F/jpWZ9f4wRSWN2ZEWjlbAOPWqt6It8QOF5G2LH9KL+x0dC3iEHx/n2SjDUp6/TAkFkDACwni5DUcgNFyIl6X9W3vMwmi339hCHzoxt6pDdRR4n0VBzntzU/gDtg+DUnViKOV9dO2IO/GpDE+yHGMumavoQBxGF6scre/DSxC+UOM5BKLcnP8FNVmYql13b14dQyZ0fm0oAAOTE/qoUeJena0kQ+nGLpgjscz6THmho4gC3u0x+1wYr8vPdZ0EkO+CFnisZOjltnBEpRPqRf3JEeOaZ/ojcHLnLOKOUl5QvxnydI6TBWK92EDKC9h8hwdkSNuI4HEDtYb0ND0g0RcTP+b1SseKkf1+wCrlmGYpxkQZvE8+rp78Ho0LEAOF+lOPbvBnzhriR6HdgpxTw7q+Oj4o548nlQ== root@MBP-de-Antoine
sudo: ["ALL=(ALL) NOPASSWD:ALL"]
shell: /bin/bash
groups: wheel


+ 2
- 2
stack/computes.tf View File

@@ -22,11 +22,11 @@ resource "libvirt_domain" "domains" {
}

disk {
volume_id = element(libvirt_volume.root_debian.*.id, count.index)
volume_id = libvirt_volume.root_debian[count.index].id
}

disk {
volume_id = element(libvirt_volume.external_disk.*.id, count.index)
volume_id = libvirt_volume.external_disk[count.index].id
}

cloudinit = libvirt_cloudinit_disk.commoninit[count.index].id


+ 18
- 4
stack/libvirtd.tf View File

@@ -52,12 +52,26 @@ output "ip" {
resource "local_file" "write_address" {

content = <<-EOT
[all]
%{ for idx, s in libvirt_domain.domains.*.network_interface.0 ~}
${s.hostname} ansible_host=${s.addresses.0} index=${idx}
# two first domain is controller domain
[controller]
%{ for idx, s in slice(libvirt_domain.domains, 0, 2) ~}
%{ if length(s.network_interface.0.addresses) > 0 ~}
${s.network_interface.0.hostname} ansible_host=${s.network_interface.0.addresses.0} index=${idx}
%{ endif ~}
%{ endfor ~}
# next domain is worker domain
[worker]
%{ for idx, s in slice(libvirt_domain.domains, 2, length(libvirt_domain.domains)) ~}
%{ if length(s.network_interface.0.addresses) > 0 ~}
${s.network_interface.0.hostname} ansible_host=${s.network_interface.0.addresses.0} index=${idx}
%{ endif ~}
%{ endfor ~}

[all:children]
controller
worker
[all:vars]
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
EOT

filename = "../applications/stack_address.toml"


Loading…
Cancel
Save