First commit

This commit is contained in:
Cian Hughes
2023-10-19 17:30:09 +01:00
commit a5632fb373
9 changed files with 1205 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
{
"login": {
"users": [
{
"name": "root",
"hash_type": "bcrypt"
}
]
},
"network": {
"interfaces": [
{
"name": "eth0",
"ipv4": {
"network_type": "DHCP",
"auto_dns_enabled": true
},
"ipv6": {
"network_type": "DHCP",
"auto_dns_enabled": true
}
}
]
},
"systemd": {
"units": [
{
"name": "cockpit.socket.service",
"enabled": "yes"
},
{
"name": "docker.service",
"enabled": "yes"
}
]
},
"package": {
"install": [
"patterns-microos-cockpit, docker, jq"
]
}
}

View File

@@ -0,0 +1,8 @@
[Unit]
Description=Ensure that node joins a swarm on startup
[Service]
ExecStart=/root/join_swarm.sh
[Install]
WantedBy=multi-user.target

16
templates/join_swarm.sh Normal file
View File

@@ -0,0 +1,16 @@
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
# Load the config file into variables
eval "$(jq -r 'to_entries[] | "export \(.key)=\(.value | @sh)"' /root/join_swarm.json)"
if [[ $(docker info | grep Swarm | awk '{print $2}') == "inactive" ]]; then
docker swarm join --token $SWARM_TOKEN [$SWITCH_IP_ADDRESS]:$SWITCH_PORT
else
echo "This node is already part of a swarm"
docker info -f json | jq .Swarm
fi