mirror of
https://github.com/KevinMidboe/schleppe-ha-project.git
synced 2026-01-27 19:15:30 +00:00
traefik routes cacheable content to varnish.
Web & varnish IP addresses generated to group vars from pulumi state
This commit is contained in:
43
ansible/scripts/generate-inventory.sh
Executable file
43
ansible/scripts/generate-inventory.sh
Executable file
@@ -0,0 +1,43 @@
|
||||
#!/usr/local/bin/bash
|
||||
#
|
||||
# Usage: ./scripts/generate-inventory.sh | pbcopy
|
||||
|
||||
cd ../hetzner-pulumi
|
||||
pulumi stack output --json | jq -r '
|
||||
# extract dc (nbg / va) positionally from hostname
|
||||
def dc:
|
||||
(.name | capture("-(?<dc>nbg|hel|ash|va)[0-9]*-").dc);
|
||||
|
||||
def region:
|
||||
if dc == "nbg" then "eu" else "us" end;
|
||||
|
||||
def pad($n):
|
||||
tostring as $s
|
||||
| ($n - ($s|length)) as $k
|
||||
| if $k > 0 then ($s + (" " * $k)) else $s end;
|
||||
|
||||
.inventory.vms
|
||||
| map({
|
||||
region: region,
|
||||
role: (.name | split("-")[0]),
|
||||
idx: (.name | capture("-(?<n>[0-9]+)$").n),
|
||||
ip: .publicIpv4,
|
||||
dc: dc
|
||||
})
|
||||
| group_by(.region)
|
||||
| .[]
|
||||
| .[0].region as $r
|
||||
| "[\($r)]",
|
||||
(
|
||||
sort_by(.role, (.idx | tonumber))
|
||||
| .[]
|
||||
| (
|
||||
("\(.role)-\(.dc)-\(.idx)" | pad(15)) +
|
||||
("ansible_host=\(.ip)" | pad(30)) +
|
||||
("ansible_port=22" | pad(18)) +
|
||||
"ansible_user=root"
|
||||
)
|
||||
),
|
||||
""
|
||||
'
|
||||
|
||||
Reference in New Issue
Block a user