You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
216 lines
5.4 KiB
216 lines
5.4 KiB
7 years ago
|
#!/bin/bash
|
||
|
# forksand-sf-proxmox
|
||
|
# GPLv3+
|
||
|
# This script does some initial setup and config
|
||
|
# Sets up Proxmox.
|
||
|
|
||
|
# XXX DRAFT XXX
|
||
|
|
||
|
exit 0
|
||
|
# Run this on workstation:
|
||
|
# ssh -N -C -L 18021:localhost:8006 sf-001
|
||
|
# ssh -N -C -L 18022:localhost:8006 sf-002
|
||
|
# ssh -N -C -L 18023:localhost:8006 sf-003
|
||
|
# ssh -N -C -L 18024:localhost:8006 sf-004
|
||
|
|
||
|
# Only logging into one at a time is possible. Session management :| XXX
|
||
|
# firefox https://localhost:18021
|
||
|
# firefox https://localhost:18022
|
||
|
# firefox https://localhost:18023
|
||
|
# firefox https://localhost:18024
|
||
|
#
|
||
|
# Login as root user via PAM
|
||
|
# Set up Enterprise Key, if used
|
||
|
#
|
||
|
#
|
||
|
cd /etc ; git add . ; git commit -a -m 'Initial Proxmox configuration'
|
||
|
#
|
||
|
#
|
||
|
# XXX Set up vmbr0 via web interface.
|
||
|
#
|
||
|
# Netwok
|
||
|
# sf-004 (host) --> System --> Network
|
||
|
# Fix subnet mask, IP in web gui.
|
||
|
# Create --> Linux Bridge:
|
||
|
# vmbr0
|
||
|
# XXX best way for this server? No subnet.
|
||
|
#
|
||
|
# Set up ethernet ports
|
||
|
# XXX check name Disable enp2s0 (Autostart no)
|
||
|
# set up vmbr0 to the main IP, gateway, etc.
|
||
|
# Create Linux Bridge in web interface
|
||
|
# vmbr0
|
||
|
#XXX THIS ISN'T CORRECT IP
|
||
|
# 174.128.244.192/26
|
||
|
# 255.255.255.192
|
||
|
# Autostart
|
||
|
# VLAN Aware
|
||
|
# Bridge: enp2s0
|
||
|
# Comment Main bridge
|
||
|
#
|
||
|
# Set up 10.3.1.0 and 10.99.1.0 networks statically
|
||
|
# on secondary ethernet interfaces
|
||
|
|
||
|
# Reboot! sf-004 (host) --> Restart
|
||
|
|
||
|
# Configure Corosync
|
||
|
# Set up hosts
|
||
|
# XXX MAKE SURE NEW NODES GET ADDED TO EXISTING SERVER /etc/hosts
|
||
|
cat > /etc/hosts <<EOF
|
||
|
|
||
|
10.3.1.1 sf-001-coro1
|
||
|
10.3.1.2 sf-002-coro1
|
||
|
10.3.1.3 sf-003-coro1
|
||
|
10.3.1.4 sf-004-coro1
|
||
|
|
||
|
10.3.2.1 sf-001-coro2
|
||
|
10.3.2.2 sf-002-coro2
|
||
|
10.3.2.3 sf-003-coro2
|
||
|
10.3.2.4 sf-004-coro2
|
||
|
|
||
|
10.22.22.1 sf-001-dmz
|
||
|
10.22.22.2 sf-002-dmz
|
||
|
10.22.22.3 sf-003-dmz
|
||
|
10.22.22.4 sf-004-dmz
|
||
|
|
||
|
10.68.68.1 sf-001-migrate
|
||
|
10.68.68.2 sf-002-migrate
|
||
|
10.68.68.3 sf-003-migrate
|
||
|
10.68.68.4 sf-004-migrate
|
||
|
|
||
|
10.99.1.1 sf-001-file1
|
||
|
10.99.1.2 sf-002-file1
|
||
|
10.99.1.3 sf-003-file1
|
||
|
10.99.1.4 sf-004-file1
|
||
|
|
||
|
10.99.2.1 sf-001-file2
|
||
|
10.99.2.2 sf-002-file2
|
||
|
10.99.2.3 sf-003-file2
|
||
|
10.99.2.4 sf-004-file2
|
||
|
|
||
|
10.254.254.1 sf-001-admin
|
||
|
10.254.254.2 sf-002-admin
|
||
|
10.254.254.3 sf-003-admin
|
||
|
10.254.254.4 sf-004-admin
|
||
|
EOF
|
||
|
|
||
|
# Test cluster ping
|
||
|
echo "Testing coro1 pings"
|
||
|
for i in sf-001-coro1 sf-002-coro1 sf-003-coro1 sf-004-coro1
|
||
|
do ping -q -c1 $i
|
||
|
done
|
||
|
echo "Testing coro2 pings"
|
||
|
for i in sf-001-coro2 sf-002-coro2 sf-003-coro2 sf-004-coro2
|
||
|
do ping -q -c1 $i
|
||
|
done
|
||
|
echo "Testing file1 pings"
|
||
|
for i in sf-001-file1 sf-002-file1 sf-003-file1 sf-004-file1
|
||
|
do ping -q -c1 $i
|
||
|
done
|
||
|
echo "Testing file2 pings"
|
||
|
for i in sf-001-file2 sf-002-file2 sf-003-file2 sf-004-file2
|
||
|
do ping -q -c1 $i
|
||
|
done
|
||
|
echo "Testing migrate pings"
|
||
|
for i in sf-001-migrate sf-002-migrate sf-003-migrate sf-004-migrate
|
||
|
do ping -q -c1 $i
|
||
|
done
|
||
|
echo "Testing DMZ pings"
|
||
|
for i in sf-001-dmz sf-002-dmz sf-003-dmz sf-004-dmz
|
||
|
do ping -q -c1 $i
|
||
|
done
|
||
|
echo "Testing admin pings"
|
||
|
for i in sf-001-admin sf-002-admin sf-003-admin sf-004-admin
|
||
|
do ping -q -c1 $i
|
||
|
done
|
||
|
|
||
|
# Test ssh
|
||
|
echo "Testing coro1 ssh"
|
||
|
for i in sf-001-coro1 sf-002-coro1 sf-003-coro1 sf-004-coro1
|
||
|
do ssh $i hostname
|
||
|
done
|
||
|
echo "Testing coro2 ssh"
|
||
|
for i in sf-001-coro2 sf-002-coro2 sf-003-coro2 sf-004-coro2
|
||
|
do ssh $i hostname
|
||
|
done
|
||
|
echo "Testing file1 ssh"
|
||
|
for i in sf-001-file1 sf-002-file1 sf-003-file1 sf-004-file1
|
||
|
do ssh $i hostname
|
||
|
done
|
||
|
echo "Testing file2 ssh"
|
||
|
for i in sf-001-file2 sf-002-file2 sf-003-file2 sf-004-file2
|
||
|
do ssh $i hostname
|
||
|
done
|
||
|
echo "Testing migrate ssh"
|
||
|
for i in sf-001-migrate sf-002-migrate sf-003-migrate sf-004-migrate
|
||
|
do ssh $i hostname
|
||
|
done
|
||
|
# ssh via IP
|
||
|
echo "Testing coro1 ssh by IP"
|
||
|
for i in 10.3.1.1 10.3.1.2 10.3.1.3 10.3.1.4
|
||
|
do ssh $i hostname
|
||
|
done
|
||
|
echo "Testing coro2 ssh by IP"
|
||
|
for i in 10.3.2.1 10.3.2.2 10.3.2.3 10.3.2.4
|
||
|
do ssh $i hostname
|
||
|
done
|
||
|
#echo "Testing file1 ssh by IP"
|
||
|
#for i in 10.99.1.1 10.99.1.2 10.99.1.3 10.99.1.4
|
||
|
#do ssh $i hostname
|
||
|
#done
|
||
|
#echo "Testing file2 ssh by IP"
|
||
|
#for i in 10.99.2.1 10.99.2.2 10.99.2.3 10.99.2.4
|
||
|
#do ssh $i hostname
|
||
|
#done
|
||
|
echo "Testing migrate ssh by IP"
|
||
|
for i in 10.68.68.1 10.68.68.2 10.68.68.3 10.68.68.4
|
||
|
do ssh $i hostname
|
||
|
done
|
||
|
|
||
|
# Note this is needed on at least one of the SharkTech servers or
|
||
|
# you get bad UDP checksums
|
||
|
# Also set to correct ethernet device
|
||
|
# XXX CHECK
|
||
|
# ethtool -K enp3s0 gso off
|
||
|
# ethtool --offload enp3s0 rx off tx off
|
||
|
# ethtool -K enp4s0 gso off
|
||
|
# ethtool --offload enp4s0 rx off tx off
|
||
|
|
||
|
# Run this on JUST ONE NODE, sf-001, to get the cluster started:
|
||
|
# XXX add --ring1 ?
|
||
|
pvecm create sharkfork --bindnet0_addr 10.3.1.1 --ring0_addr sf-001-coro1
|
||
|
|
||
|
# Run this on sf-002 sf-003 sf-004
|
||
|
# XXX add --ring1 ?
|
||
|
# XXX which add IP ?
|
||
|
pvecm add 10.3.1.2 --ring0_addr sf-001-coro1
|
||
|
pvecm add 10.3.1.3 --ring0_addr sf-001-coro1
|
||
|
pvecm add 10.3.1.4 --ring0_addr sf-001-coro1
|
||
|
|
||
|
pvecm status
|
||
|
pvecm nodes
|
||
|
|
||
|
# rebootz ?
|
||
|
|
||
|
# After Cluster is Configured
|
||
|
# ===========================
|
||
|
|
||
|
# Now you only have to log into one Proxmox node to control them all.
|
||
|
|
||
|
# Data Center --> Permissions --> Users
|
||
|
# Add user with Realm Proxmox VE authentication server.
|
||
|
# Give user root permissions: Datacenter --> Permissions --> Add --> User permission.
|
||
|
# Path: / User: j Role: Administrator
|
||
|
# XXX Or create admin group, add perms to that...
|
||
|
# Permissions --> Authentication. Set Proxmox VE authentication server to default.
|
||
|
|
||
|
# Storage
|
||
|
# Datacenter --> Storage --> Edit local. Enable all content (add VZDump)
|
||
|
#
|
||
|
# DNS
|
||
|
# sf-003 (host) --> System --> DNS
|
||
|
# Add servers:
|
||
|
# 208.67.222.222 208.67.220.220 37.235.1.174
|
||
|
#
|
||
|
# XXX Ceph
|