adapt ansible inventory genearted by terraform to produce multiple domain group

Этот коммит содержится в:
RouxAntoine 2021-01-31 13:19:45 +01:00
родитель 9e06725e0d
Коммит ac33fb466f
5 изменённых файлов: 36 добавлений и 14 удалений

4
.gitignore поставляемый
Просмотреть файл

@ -1,5 +1,5 @@
.terraform
.terraform*
*.tfstate.backup
base/images/*
!base/images/.gitkeep
!base/images/.gitkeep

Просмотреть файл

@ -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'

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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"