mirror of
https://github.com/xcat2/confluent.git
synced 2025-01-16 12:47:50 +00:00
dba6e7f378
This aims to bring identity image deployment fully to ubuntu 20.0.4.
91 lines
3.6 KiB
Plaintext
Executable File
91 lines
3.6 KiB
Plaintext
Executable File
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
|
|
TRIES=5
|
|
while [ ! -e /dev/disk/by-label ] && [ $TRIES -gt 0 ]; do
|
|
sleep 2
|
|
TRIES=$((TRIES - 1))
|
|
done
|
|
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}')
|
|
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
|
|
ipconfig -d $MYIP::$MYGW:$MYNM::$NIC
|
|
echo $NIC > /tmp/autodetectnic
|
|
else
|
|
configure_networking
|
|
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
|
|
while ! grep NODENAME /custom-installation/confluent/confluent.info; do
|
|
/opt/confluent/bin/copernicus -t > /custom-installation/confluent/confluent.info
|
|
done
|
|
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
|
|
echo URL=http://${MGR}/confluent-public/os/$osprofile/distribution/install.iso >> /conf/param.conf
|
|
fcmdline="$(cat /custom-installation/confluent/cmdline.orig) url=http://${MGR}/confluent-public/os/$osprofile/distribution/install.iso"
|
|
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
|
|
|
|
|