mirror of
https://github.com/xcat2/confluent.git
synced 2026-09-30 14:55:18 +00:00
b21d8b75e0
Have block devices checked for identity information in a loop with network source search. Block devices may be delayed for various reasons. The previous method could be bypassed by fast block device cutting off slow device enumeration. It also incurred a delay for the network install case.
121 lines
4.7 KiB
Plaintext
Executable File
121 lines
4.7 KiB
Plaintext
Executable File
cp /tls/* /etc/ssl/certs/
|
|
cd /sys/class/net
|
|
for nic in *; do
|
|
ip link set $nic up
|
|
done
|
|
mkdir -p /custom-installation
|
|
cp -a /opt/confluent /custom-installation
|
|
touch /custom-installation/confluent/confluent.info
|
|
MGR=""
|
|
while ! grep NODENAME /custom-installation/confluent/confluent.info; do
|
|
if [ -e /dev/disk/by-label/CNFLNT_IDNT ]; then
|
|
tmnt=/tmp/idntmnt
|
|
mkdir -p /tmp/identdata/
|
|
mkdir -p $tmnt
|
|
tcfg=/tmp/idnttmp
|
|
mount /dev/disk/by-label/CNFLNT_IDNT $tmnt
|
|
cp -a $tmnt/* /tmp/identdata/
|
|
cd $tmnt
|
|
deploysrvs=$(sed -n '/^deploy_servers:/,/^[^-]/p' cnflnt.yml |grep ^-|sed -e 's/^- //'|grep -v :)
|
|
sed -n '/^net_cfgs:/,/^[^- ]/{/^[^- ]/!p}' cnflnt.yml |sed -n '/^-/,/^-/{/^-/!p}'| sed -e 's/^[- ]*//'> $tcfg
|
|
autoconfigmethod=$(grep ^ipv4_method: $tcfg)
|
|
autoconfigmethod=${autoconfigmethod#ipv4_method: }
|
|
. /scripts/functions
|
|
if [ "$autoconfigmethod" = "static" ]; then
|
|
MYIP=$(grep ^ipv4_address: $tcfg | awk '{print $2}'|sed -e s'!/.*!!')
|
|
v4addr=$(grep ^ipv4_address: $tcfg|cut -d: -f 2|sed -e 's/ //')
|
|
MYGW=$(grep ^ipv4_gateway: $tcfg | awk '{print $2}')
|
|
if [ "$MYGW" = "null" ]; then
|
|
MYGW=""
|
|
fi
|
|
MYNM=$(grep ^ipv4_netmask: $tcfg | awk '{print $2}')
|
|
NIC=""
|
|
while [ -z "$NIC" ]; do
|
|
for NICGUESS in $(ip link|grep LOWER_UP|grep -v LOOPBACK|cut -d ' ' -f 2 | sed -e 's/:$//'); do
|
|
ip addr add dev $NICGUESS $v4addr
|
|
if [ ! -z "$MYGW" ]; then
|
|
ip route add default via $MYGW
|
|
fi
|
|
for dsrv in $deploysrvs; do
|
|
if openssl s_client -connect $dsrv:443 > /dev/null 2>&1; then
|
|
deploysrvs=$dsrv
|
|
NIC=$NICGUESS
|
|
break
|
|
fi
|
|
done
|
|
if [ -z "$NIC" ]; then
|
|
ip -4 a flush dev $NICGUESS
|
|
else
|
|
break
|
|
fi
|
|
done
|
|
done
|
|
ipconfig -d $MYIP::$MYGW:$MYNM::$NIC
|
|
echo $NIC > /tmp/autodetectnic
|
|
else
|
|
configure_networking
|
|
for dsrv in $deploysrvs; do
|
|
if openssl s_client -connect $dsrv:443 > /dev/null 2>&1; then
|
|
deploysrvs=$dsrv
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
MGR=$deploysrvs
|
|
NODENAME=$(grep ^nodename: /tmp/idntmnt/cnflnt.yml | awk '{print $2}')
|
|
echo "NODENAME: $NODENAME" >> /custom-installation/confluent/confluent.info
|
|
echo "MANAGER: $MGR" >> /custom-installation/confluent/confluent.info
|
|
echo "EXTMGRINFO: $MGR||1" >> /custom-installation/confluent/confluent.info
|
|
hmackeyfile=/tmp/cnflnthmackeytmp
|
|
echo -n $(grep ^apitoken: cnflnt.yml|awk '{print $2}') > $hmackeyfile
|
|
cd -
|
|
umount $tmnt
|
|
else
|
|
/opt/confluent/bin/copernicus -t > /custom-installation/confluent/confluent.info
|
|
fi
|
|
done
|
|
if [ -z "$MGR" ]; then
|
|
MGR="[$(grep MANAGER: /custom-installation/confluent/confluent.info | head -n 1 | awk '{print $2}')]"
|
|
fi
|
|
osprofile=$(sed -e 's/.*osprofile=//' -e 's/ .*//' /proc/cmdline)
|
|
cat /proc/cmdline > /custom-installation/confluent/cmdline.orig
|
|
if [ -f /custom-installation/autocons.info ]; then
|
|
cons=$(cat /custom-installation/autocons.info)
|
|
fi
|
|
if [ ! -z "$cons" ]; then
|
|
echo "Preparing to deploy $osprofile from $MGR" > ${cons%,*}
|
|
fi
|
|
echo "Preparing to deploy $osprofile from $MGR"
|
|
echo $osprofile > /custom-installation/confluent/osprofile
|
|
. /etc/os-release
|
|
DIRECTISO=$(blkid -t TYPE=iso9660 |grep -Ei ' LABEL="Ubuntu-Server '$VERSION_ID)
|
|
if [ -z "$DIRECTISO" ]; then
|
|
mv /usr/bin/openssl /usr/bin/ossl
|
|
cat > /usr/bin/openssl << 'EOF'
|
|
#!/bin/sh
|
|
AMENDARGS=0
|
|
nargs=""
|
|
for arg in $*; do
|
|
if [ "$arg" == "-servername" -o "$arg" == "-verify" ]; then
|
|
AMENDARGS=1
|
|
fi
|
|
if [ "$AMENDARGS" == "1" ]; then
|
|
arg=$(echo $arg|sed -e 's/:443$//' -e 's/\[//' -e 's/\]//' -e 's/%.*//')
|
|
fi
|
|
nargs="$nargs $arg"
|
|
done
|
|
exec /usr/bin/ossl $nargs
|
|
EOF
|
|
chmod +x /usr/bin/openssl
|
|
echo URL=https://${MGR}:443/confluent-public/os/$osprofile/distribution/install.iso >> /conf/param.conf
|
|
fcmdline="$(cat /custom-installation/confluent/cmdline.orig) url=https://${MGR}:443/confluent-public/os/$osprofile/distribution/install.iso"
|
|
fi
|
|
if [ ! -z "$cons" ]; then
|
|
fcmdline="$fcmdline console=${cons#/dev/}"
|
|
fi
|
|
echo $fcmdline > /custom-installation/confluent/fakecmdline
|
|
mount -o bind /custom-installation/confluent/fakecmdline /proc/cmdline
|
|
echo '/scripts/casper-bottom/99confluent "$@"' >> /scripts/casper-bottom/ORDER
|
|
|
|
|