reverse_uuid() { echo $1 | head -c 8 | tail -c 2 echo $1 | head -c 6 | tail -c 2 echo $1 | head -c 4 | tail -c 2 echo $1 | head -c 2 | tail -c 2 echo $1 | head -c 13 | tail -c 2 echo $1 | head -c 11 | tail -c 2 echo $1 | head -c 18 | tail -c 2 echo $1 | head -c 16 | tail -c 2 echo $1 | tail -c 18 | sed -e s/-// } dhuuid=$(reverse_uuid $(cat /sys/devices/virtual/dmi/id/product_uuid)) dhcpid=$(mktemp) mkdir -p /etc/confluent cp /tls/* /etc/ssl/certs/ for nic in $(ip link | grep mtu|grep -v LOOPBACK|cut -d: -f 2|sed -e 's/ //'); do ip link set $nic up done for nic in $(ip link | grep mtu|grep -v LOOPBACK|grep LOWER_UP|cut -d: -f 2|sed -e 's/ //'); do if udhcpc -i $nic -p $dhcpid -t 2 -T 2 -n -x 93:0007 -x 97:00$dhuuid -q; then /opt/confluent/bin/copernicus > /etc/confluent/confluent.info if grep ^MANAGER:.*\\. /etc/confluent/confluent.info ; then break fi fi ip -4 flush dev $nic done mgr=$(grep ^MANAGER:.*\\. /etc/confluent/confluent.info|head -n 1|cut -d: -f 2|sed -e 's/ //') nodename=$(grep ^NODENAME: /etc/confluent/confluent.info|head -n 1|cut -d: -f 2|sed -e 's/ //') /opt/confluent/bin/clortho $nodename $mgr > /etc/confluent/confluent.apikey apikey=$(cat /etc/confluent/confluent.apikey) cd /etc/confluent wget --header="CONFLUENT_NODENAME: $nodename" --header="CONFLUENT_APIKEY: $apikey" https://$mgr/confluent-api/self/deploycfg cd - predir=$(mktemp -d) cd $predir profile=$(grep ^profile: /etc/confluent/deploycfg|cut -d ' ' -f 2) wget https://$mgr/confluent-public/os/$profile/scripts/pre.sh chmod u+x pre.sh debconf-set preseed/early_command $predir/pre.sh wget https://$mgr/confluent-public/os/$profile/preseed.cfg mv preseed.cfg / debconf-set auto-install/enable true cd - ip -4 a flush dev $nic debconf-set netcfg/choose_interface $nic debconf-set netcfg/get_hostanme $nodename v4cfgmeth=$(grep ipv4_method: /etc/confluent/deploycfg |cut -d: -f 2|sed -e 's/ //') if [ "$v4cfgmeth" = "static" ]; then debconf-set netcfg/disable_dhcp true v4addr=$(grep ^ipv4_address: /etc/confluent/deploycfg|cut -d: -f 2|sed -e 's/ //') v4gw=$(grep ^ipv4_gateway: /etc/confluent/deploycfg|cut -d: -f 2| sed -e 's/ //') if [ "$v4gw" = "null" ]; then v4gw="" fi v4nm=$(grep ^ipv4_netmask: /etc/confluent/deploycfg|cut -d: -f 2|sed -e 's/ //') debconf-set netcfg/get_netmask $v4nm debconf-set netcfg/get_ipaddress $v4addr debconf-set netcfg/confirm_static true if [ ! -z "$v4gw" ]; then debconf-set netcfg/get_gateway $v4gw fi namesrvs=$(sed -n '/^nameservers:/,/^[^-]/p' /etc/confluent/deploycfg|grep ^- | cut -d ' ' -f 2|sed -e 's/ //') for namesrv in "$namesrvs"; do debconf-set netcfg/get_nameservers $namesrv done elif [ "$vpcfgmeth" = "dhcp" ]; then debconf-set netcfg/disable_dhcp false debconf-set netcfg/confirm_static false fi rootpass=$(grep ^rootpassword: /etc/confluent/deploycfg|cut -d ' ' -f 2|sed -e 's/ //') if [ "$rootpass" = null ] || [ -z "$rootpass" ]; then debconf-set passwd/root-login false else debconf-set passwd/root-login true debconf-set passwd/root-password-crypted $rootpass fi debconf-set time/zone $(grep ^timezone: /etc/confluent/deploycfg|cut -d ' ' -f 2|sed -e 's/ //') ntpsrvs=$(sed -n '/^ntpservers:/,/^[^-]/p' /etc/confluent/deploycfg|grep ^- | cut -d ' ' -f 2|sed -e 's/ //') for ntpsrv in "$ntpsrvs"; do debconf-set clock-setup/ntp true debconf-set clock-setup/ntep-server $ntpsrv done debconf-set console-setup/layoutcode $(grep ^keymap: /etc/confluent/deploycfg|cut -d ' ' -f 2) debconf-set debian-installer/locale $(grep ^locale: /etc/confluent/deploycfg|cut -d ' ' -f 2) domainname=$(grep ^dnsdomain: /etc/confluent/deploycfg|cut -d ' ' -f 2) if [ ! -z "$domainname" ] && [ "$domainname" != "null" ]; then debconf-set netcfg/get_domain $domainname fi