more stuff
This commit is contained in:
parent
6a43132bc8
commit
79e6a1a543
18 changed files with 426 additions and 144 deletions
|
|
@ -114,29 +114,63 @@ check_layer_0_complete() {
|
|||
}
|
||||
|
||||
get_hosts_from_inventory() {
|
||||
local group="$1"
|
||||
local target="$1"
|
||||
cd "$ANSIBLE_DIR"
|
||||
ansible-inventory -i inventory.ini --list | \
|
||||
python3 -c "import sys, json; data=json.load(sys.stdin); print(' '.join(data.get('$group', {}).get('hosts', [])))" 2>/dev/null || echo ""
|
||||
|
||||
# Parse inventory.ini directly - more reliable than ansible-inventory
|
||||
if [ -f "$ANSIBLE_DIR/inventory.ini" ]; then
|
||||
# Look for the group section [target]
|
||||
local in_section=false
|
||||
local hosts=""
|
||||
while IFS= read -r line; do
|
||||
# Remove comments and whitespace
|
||||
line=$(echo "$line" | sed 's/#.*$//' | xargs)
|
||||
[ -z "$line" ] && continue
|
||||
|
||||
# Check if we're entering the target section
|
||||
if [[ "$line" =~ ^\[$target\]$ ]]; then
|
||||
in_section=true
|
||||
continue
|
||||
fi
|
||||
|
||||
# Check if we're entering a different section
|
||||
if [[ "$line" =~ ^\[.*\]$ ]]; then
|
||||
in_section=false
|
||||
continue
|
||||
fi
|
||||
|
||||
# If we're in the target section, extract hostname
|
||||
if [ "$in_section" = true ]; then
|
||||
local hostname=$(echo "$line" | awk '{print $1}')
|
||||
if [ -n "$hostname" ]; then
|
||||
hosts="$hosts $hostname"
|
||||
fi
|
||||
fi
|
||||
done < "$ANSIBLE_DIR/inventory.ini"
|
||||
echo "$hosts" | xargs
|
||||
fi
|
||||
}
|
||||
|
||||
check_vps_configured() {
|
||||
print_header "Checking VPS Configuration"
|
||||
|
||||
# Get all hosts from the vps group
|
||||
local vps_hosts=$(get_hosts_from_inventory "vps")
|
||||
local has_vps=false
|
||||
for group in vipy watchtower spacey; do
|
||||
local hosts=$(get_hosts_from_inventory "$group")
|
||||
if [ -n "$hosts" ]; then
|
||||
print_success "$group configured: $hosts"
|
||||
|
||||
# Check for expected VPS hostnames
|
||||
for expected_host in vipy watchtower spacey; do
|
||||
if echo "$vps_hosts" | grep -q "\b$expected_host\b"; then
|
||||
print_success "$expected_host configured"
|
||||
has_vps=true
|
||||
else
|
||||
print_info "$group not configured (skipping)"
|
||||
print_info "$expected_host not configured (skipping)"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$has_vps" = false ]; then
|
||||
print_error "No VPSs configured in inventory.ini"
|
||||
print_info "Add at least one VPS (vipy, watchtower, or spacey) to proceed"
|
||||
print_info "Add at least one VPS (vipy, watchtower, or spacey) to the [vps] group to proceed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
|
@ -154,20 +188,20 @@ check_ssh_connectivity() {
|
|||
|
||||
local all_good=true
|
||||
|
||||
# Get all hosts from the vps group
|
||||
local vps_hosts=$(get_hosts_from_inventory "vps")
|
||||
|
||||
# Test VPSs (vipy, watchtower, spacey)
|
||||
for group in vipy watchtower spacey; do
|
||||
local hosts=$(get_hosts_from_inventory "$group")
|
||||
if [ -n "$hosts" ]; then
|
||||
for host in $hosts; do
|
||||
print_info "Testing SSH to $host as root..."
|
||||
if timeout 10 ssh -i "$ssh_key" -o StrictHostKeyChecking=no -o BatchMode=yes root@$host "echo 'SSH OK'" &>/dev/null; then
|
||||
print_success "SSH to $host as root: OK"
|
||||
else
|
||||
print_error "Cannot SSH to $host as root"
|
||||
print_warning "Make sure your SSH key is added to root on $host"
|
||||
all_good=false
|
||||
fi
|
||||
done
|
||||
for expected_host in vipy watchtower spacey; do
|
||||
if echo "$vps_hosts" | grep -q "\b$expected_host\b"; then
|
||||
print_info "Testing SSH to $expected_host as root..."
|
||||
if timeout 10 ssh -i "$ssh_key" -o StrictHostKeyChecking=no -o BatchMode=yes root@$expected_host "echo 'SSH OK'" &>/dev/null; then
|
||||
print_success "SSH to $expected_host as root: OK"
|
||||
else
|
||||
print_error "Cannot SSH to $expected_host as root"
|
||||
print_warning "Make sure your SSH key is added to root on $expected_host"
|
||||
all_good=false
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
|
|
@ -265,17 +299,17 @@ verify_layer_1a() {
|
|||
|
||||
local all_good=true
|
||||
|
||||
for group in vipy watchtower spacey; do
|
||||
local hosts=$(get_hosts_from_inventory "$group")
|
||||
if [ -n "$hosts" ]; then
|
||||
for host in $hosts; do
|
||||
if timeout 10 ssh -i "$ssh_key" -o StrictHostKeyChecking=no -o BatchMode=yes counterweight@$host "echo 'SSH OK'" &>/dev/null; then
|
||||
print_success "SSH to $host as counterweight: OK"
|
||||
else
|
||||
print_error "Cannot SSH to $host as counterweight"
|
||||
all_good=false
|
||||
fi
|
||||
done
|
||||
# Get all hosts from the vps group
|
||||
local vps_hosts=$(get_hosts_from_inventory "vps")
|
||||
|
||||
for expected_host in vipy watchtower spacey; do
|
||||
if echo "$vps_hosts" | grep -q "\b$expected_host\b"; then
|
||||
if timeout 10 ssh -i "$ssh_key" -o StrictHostKeyChecking=no -o BatchMode=yes counterweight@$expected_host "echo 'SSH OK'" &>/dev/null; then
|
||||
print_success "SSH to $expected_host as counterweight: OK"
|
||||
else
|
||||
print_error "Cannot SSH to $expected_host as counterweight"
|
||||
all_good=false
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue