quick add preliminary support for netplan
authorAndy Witter <awitter@georgialibraries.org>
Mon, 11 Nov 2019 21:27:50 +0000 (16:27 -0500)
committerAndy Witter <awitter@georgialibraries.org>
Mon, 11 Nov 2019 21:27:50 +0000 (16:27 -0500)
GenaSYS.sh
templates/lvs/netplan/config.yaml [new file with mode: 0644]
templates/netplan/config.yaml [new file with mode: 0644]
templates/setup-drone.sh
templates/setup-functions
templates/setup-head.sh
templates/setup.sh

index 7cae488..411c497 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/bash
+
 
 ##############################################################################
 #   Copyright (c) 2010-2013 Georgia Public Library Service."
@@ -25,8 +25,8 @@
     PURPOSE_="Generate config files needed for Evergreen-ILS Cluster"
    SYNOPSIS_="$NAME_"
    REQUIRES_="standard GNU commands, apt, dpkg"
-    VERSION_="1.99"
-       DATE_="2010-11-23; last update: 2019-07-11"
+    VERSION_="2.00"
+       DATE_="2010-11-23; last update: 2019-11-11"
      AUTHOR_="Andy Witter <awitter@georgialibraries.org>"
         URL_="http://evergreen-ils.org"
    CATEGORY_="devel"
@@ -53,7 +53,7 @@ done
 
 WD=$(dirname $(readlink -f $0))
 CUSTOMDIR="$WD/custom"
-EG_VERSION="3.2.2"
+EG_VERSION="3.4.0"
 UBUNTU_CODENAME="xenial"
 LICENSE="$WD/License.txt"
 TEMPLATEDIR="$WD/templates"
@@ -1956,6 +1956,7 @@ for BRICK in $(seq $BRICKCOUNT)
        eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system
        eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/sudoers.d
        eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/usr/local/bin
+       eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/netplan
        
         ### head gets exports
        if [ "$ROBOTS_TXT" = "y" ] || [ "$ROBOTS_TXT" = "Y" ] ### Copy robots.txt if selected.
@@ -1997,16 +1998,23 @@ for BRICK in $(seq $BRICKCOUNT)
         cd $WD
        eval cd ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-enabled && ln -s ../sites-available/osrf-ws-http-proxy . && cd $WD
         eval cp -f $TEMPLATEDIR/interfaces ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/network
+       eval cp -f $TEMPLATEDIR/netplan/config.yaml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/netplan
         eval cp -f $TMPFOLDER/ntp.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/
         eval cp -f $TMPFOLDER/resolv.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/
        #sed -i "s^# OSRFTranslatorCacheServer 127.0.0.1:11211^OSRFTranslatorCacheServer $MEMCACHE01_IP:11211^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/apache2/eg_vhost.conf
        [ "$CA_FILES_EXIST" = "y" ] &&  sed -i "s^#SSLCACertificateFile ssl/ca.crt^SSLCACertificateFile ssl/ca.crt^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/apache2/sites-available/eg.conf
         eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces
+       eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml
         eval sed -i "s^Priv_NET^$PRIVATENET^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces
+       eval sed -i "s^Priv_NET^$PRIVATENET^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml
        eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces
+       eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml
        eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces
+       eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml
        eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces
+       eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml
        eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces
+       eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml
         #eval cp -f $TEMPLATEDIR/init/eg_opensrf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/init.d/opensrf
         eval cp -f $TEMPLATEDIR/setup-head.sh ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head
        eval cp -f $TEMPLATEDIR/setup-vars ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/setup-vars
@@ -2135,6 +2143,7 @@ for BRICK in $(seq $BRICKCOUNT)
        eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/systemd/system
        eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/sudoers.d
        eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/usr/local/bin
+       eval mkdir -p ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/netplan
        ### head gets exports
        if [ "$ROBOTS_TXT" = "y" ] || [ "$ROBOTS_TXT" = "Y" ] ### Copy robots.txt if selected.
         then
@@ -2174,16 +2183,23 @@ for BRICK in $(seq $BRICKCOUNT)
        cd $WD
        eval cd ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/nginx/sites-enabled && ln -s ../sites-available/osrf-ws-http-proxy . && cd $WD
        eval cp -f $TEMPLATEDIR/interfaces ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/network
+       eval cp -f $TEMPLATEDIR/netplan/config.yaml ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/netplan
        eval cp -f $TMPFOLDER/ntp.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/
        eval cp -f $TMPFOLDER/resolv.conf ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/
        #sed -i "s^# OSRFTranslatorCacheServer 127.0.0.1:11211^OSRFTranslatorCacheServer $MEMCACHE01_IP:11211^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/apache2/eg_vhost.conf
        [ "$CA_FILES_EXIST" = "y" ] &&  sed -i "s^#SSLCACertificateFile ssl/ca.crt^SSLCACertificateFile ssl/ca.crt^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/apache2/sites-available/eg.conf
        eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces
+       eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml
        eval sed -i "s^Priv_NET^$PRIVATENET^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces
+       eval sed -i "s^Priv_NET^$PRIVATENET^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml
        eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces
+       eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml
        eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces
+       eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml
        eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces
+       eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml
        eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/network/interfaces
+       eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/netplan/config.yaml
        eval cp -f $TEMPLATEDIR/exports ${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-head/etc/
        eval echo "/openils/var/data/offline \$BRICKHOSTNAME${BRICK}_HEAD_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports
        eval echo "/openils/var/data/vandelay \$BRICKHOSTNAME${BRICK}_HEAD_IP\(rw,sync,no_subtree_check\)" >> $TMPFOLDER/exports
@@ -2270,12 +2286,14 @@ for BRICK in $(seq $BRICKCOUNT)
                eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/munin"
                eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/var/run/evergreen"
                eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/var/run/munin"
+               eval mkdir -p "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan"
                eval cp -f $TEMPLATEDIR/opensrf_core.xml "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/openils/conf"
                eval sed -i "s^Brick_head_Fqdn^$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE}).$CLUSTERDOMAINNAME^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/openils/conf/opensrf_core.xml"
                #eval sed -i "s^OpenSRF_Password^$OPENSRF_PASSWORD^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/openils/conf/opensrf_core.xml"
                eval sed -i "s^OpenSRF_Password^$(echo $OPENSRF_PASSWORD | sed  -e 's^&^\\\&^g' -e 's/\^/\\\^/g')^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/openils/conf/opensrf_core.xml"
                ### drone gets fstab
                eval cp -f $TEMPLATEDIR/interfaces "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network"
+               eval cp -f $TEMPLATEDIR/netplan/config.yaml "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan"
                eval cp -f $TMPFOLDER/ntp.conf "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc"
                eval cp -f $TMPFOLDER/resolv.conf "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc"
                eval cp -f $TEMPLATEDIR/eg_fstab_drone "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc"
@@ -2297,11 +2315,17 @@ for BRICK in $(seq $BRICKCOUNT)
                eval sed -i "s^UTILITY02_IP^$UTILITY02_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/eg_fstab_drone"
                eval sed -i "s^UTILITY03_IP^$UTILITY03_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/eg_fstab_drone"
                eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP)^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces"
+               eval sed -i "s^Priv_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP)^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml"
                eval sed -i "s^Priv_NET^$PRIVATENET^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces"
+               eval sed -i "s^Priv_NET^$PRIVATENET^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml"
                eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces"
+               eval sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml"
                eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces"
+               eval sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml"
                eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces"
+               eval sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml"
                eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/network/interfaces"
+               eval sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "${OUTDIR}/\$BRICKHOSTNAME${BRICK}/\$BRICKHOSTNAME${BRICK}-drone0${DRONE}/etc/netplan/config.yaml"
                #eval sed -i "s^DRONE_IP^$(eval echo \$BRICKHOSTNAME${BRICK}_HEAD_IP)^g" ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/exports
                eval echo "/openils \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP\(ro,sync,no_subtree_check\)" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/exports
                printf '\"' >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg
@@ -2538,6 +2562,7 @@ for HOSTS in $MACHINES_NO_BRICKS
        do
        mkdir -p "$OUTDIR/$HOSTS/etc/network" && \
        cp -f "$TMPHOSTS" "$OUTDIR/$HOSTS/etc/hosts" && \
+       mkdir -p "$OUTDIR/$HOSTS/etc/netplan"
        sed -i "s^thishost^$HOSTS^g" "$OUTDIR/$HOSTS/etc/hosts"
        [ -z $HOSTNAME_PREFIX ] || sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" "$OUTDIR/$HOSTS/etc/hosts"
        [ -z "$HOSTNAME_PREFIX" ] || sed -i "s^${HOSTNAME_PREFIX}-${HOSTNAME_PREFIX}^${HOSTNAME_PREFIX}^g" "$OUTDIR/$HOSTS/etc/hosts"
@@ -2545,28 +2570,40 @@ done
 
 
 
-### Setup LVS Interfaces file.
+### Setup LVS interfaces and netplan file.
 NUM=0
 for LVS in $MACHINES_LVS_ONLY
        do
        ((NUM++))
        cp -f "$TEMPLATEDIR/lvs/interfaces" "$OUTDIR/$LVS/etc/network"
+       cp -f "$TEMPLATEDIR/lvs/netplan/config.yaml" "$OUTDIR/$LVS/etc/netplan"
        sed -i "s^Pub_NETMASK^$CLUSTERNETMASK^g" "$OUTDIR/$LVS/etc/network/interfaces"
+       sed -i "s^Pub_NETMASK^$CLUSTER_CIDR^g" "$OUTDIR/$LVS/etc/netplan/config.yaml"
        sed -i "s^Pub_GATEWAY^$CLUSTERGATEWAY^g" "$OUTDIR/$LVS/etc/network/interfaces"
+       sed -i "s^Pub_GATEWAY^$CLUSTERGATEWAY^g" "$OUTDIR/$LVS/etc/netplan/config.yaml"
        if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ]
        then
                sed -i "s^Priv_NET^$DMZ_NET^g" "$OUTDIR/$LVS/etc/network/interfaces"
+               sed -i "s^Priv_NET^$DMZ_NET^g" "$OUTDIR/$LVS/etc/netplan/config.yaml"
        else
                sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/$LVS/etc/network/interfaces"
+               sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/$LVS/etc/netplan/config.yaml"
        fi
        sed -i "s^Cluster_Public_IP^$CLUSTERIPADDRESS^g" "$OUTDIR/$LVS/etc/network/interfaces"
+       sed -i "s^Cluster_Public_IP^$CLUSTERIPADDRESS^g" "$OUTDIR/$LVS/etc/netplan/config.yaml"
 
        eval sed -i "s^Pub_IP^\$LVS0${NUM}_PHYSICAL_PUBLIC_IP^g" "$OUTDIR/$LVS/etc/network/interfaces"
+       eval sed -i "s^Pub_IP^\$LVS0${NUM}_PHYSICAL_PUBLIC_IP^g" "$OUTDIR/$LVS/etc/netplan/config.yaml"
        eval sed -i "s^Priv_Physical_Address^\$LVS0${NUM}_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/network/interfaces"
+       eval sed -i "s^Priv_Physical_Address^\$LVS0${NUM}_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/netplan/config.yaml"
        sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/network/interfaces"
+       sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/netplan/config.yaml"
        sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/network/interfaces"
+       sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/$LVS/etc/netplan/config.yaml"
        sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "$OUTDIR/$LVS/etc/network/interfaces"
+       sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "$OUTDIR/$LVS/etc/netplan/config.yaml"
        sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$LVS/etc/network/interfaces"
+       sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$LVS/etc/netplan/config.yaml"
 done
 
 
@@ -2595,18 +2632,26 @@ for NET_NODE in $MACHINES_NO_BRICKS_LVS
                else
                NODE_NO_PREFIX=$NET_NODE
        fi
+       cp -f "$TEMPLATEDIR/netplan/config.yaml" "$OUTDIR/$NET_NODE/etc/netplan"
        cp -f "$TEMPLATEDIR/interfaces" "$OUTDIR/$NET_NODE/etc/network" && \
        # eval sed -i "s^Priv_IP^\$${NET_NODE^^*}_IP^g" "$OUTDIR/$NET_NODE/etc/network/interfaces"
        if [ "$USE_DMZ" = "y" ] || [ "$USE_DMZ" = "Y" ]
        then
                sed -i "s^Priv_NET.1^$PRIVATENET_GATEWAY^g" "$OUTDIR/$NET_NODE/etc/network/interfaces"
+               sed -i "s^Priv_NET.1^$PRIVATENET_GATEWAY^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml"
        fi
        eval sed -i "s^Priv_IP^\$${NODE_NO_PREFIX^^*}_IP^g" "$OUTDIR/$NET_NODE/etc/network/interfaces"
+       eval sed -i "s^Priv_IP^\$${NODE_NO_PREFIX^^*}_IP^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml"
        sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "$OUTDIR/$NET_NODE/etc/network/interfaces"
+       sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml"
        sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/$NET_NODE/etc/network/interfaces"
+       sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml"
        sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "$OUTDIR/$NET_NODE/etc/network/interfaces"
+       sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml"
        sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$NET_NODE/etc/network/interfaces"
+       sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml"
        sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/$NET_NODE/etc/network/interfaces"
+       sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/$NET_NODE/etc/netplan/config.yaml"
 done
 }
 SetupInterfaces
@@ -2831,6 +2876,16 @@ sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/${REPORTS_NFS_HOSTNAME}
 sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/${REPORTS_NFS_HOSTNAME}/etc/network/interfaces"
 sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/${REPORTS_NFS_HOSTNAME}/etc/network/interfaces"
 
+### Configure netplan file
+mkdir -p "$OUTDIR/${REPORTS_NFS_HOSTNAME}/etc/netplan" && \
+cp -f "$TEMPLATEDIR/netplan/config.yaml" "$OUTDIR/${REPORTS_NFS_HOSTNAME}/etc/netplan/config.yaml" && \
+sed -i "s^Priv_IP^${REPORTS_NFS_HOSTNAME_IP}^g" "$OUTDIR/${REPORTS_NFS_HOSTNAME}/etc/netplan/config.yaml"
+sed -i "s^Cluster_Private_IP^$LVS01_PRIVATE_SHARED_IP^g" "$OUTDIR/${REPORTS_NFS_HOSTNAME}/etc/netplan/config.yaml"
+sed -i "s^LVS01_Private_IP^$LVS01_PRIVATE_IP^g" "$OUTDIR/${REPORTS_NFS_HOSTNAME}/etc/netplan/config.yaml"
+sed -i "s^LVS02_Private_IP^$LVS02_PRIVATE_IP^g" "$OUTDIR/${REPORTS_NFS_HOSTNAME}/etc/netplan/config.yaml"
+sed -i "s^CLUSTER_DOMAINNAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/${REPORTS_NFS_HOSTNAME}/etc/netplan/config.yaml"
+sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/${REPORTS_NFS_HOSTNAME}/etc/netplan/config.yaml"
+
 ### Configure DNS and NTP
 cp -f "$TMPFOLDER/resolv.conf" "$OUTDIR/${REPORTS_NFS_HOSTNAME}/etc"
 cp -f "$TMPFOLDER/ntp.conf" "$OUTDIR/${REPORTS_NFS_HOSTNAME}/etc"
diff --git a/templates/lvs/netplan/config.yaml b/templates/lvs/netplan/config.yaml
new file mode 100644 (file)
index 0000000..b7c6b33
--- /dev/null
@@ -0,0 +1,13 @@
+network:
+    version: 2
+    ethernets:
+        Primary_Interface:
+            dhcp4: false
+            addresses: [Pub_IP/Pub_NETMASK]
+            gateway4: Pub_GATEWAY
+            nameservers:
+                search: [CLUSTER_DOMAINNAME]
+                addresses: [127.0.0.1, LVS01_Private_IP, LVS02_Private_IP]
+        Private_Interface:
+            dhcp4: false
+            addresses: [Priv_NET.1/24]
diff --git a/templates/netplan/config.yaml b/templates/netplan/config.yaml
new file mode 100644 (file)
index 0000000..8af0581
--- /dev/null
@@ -0,0 +1,10 @@
+network:
+    version: 2
+    ethernets:
+        Primary_IF:
+            dhcp4: false
+            addresses: [Priv_IP/24]
+            gateway4: Priv_NET.1
+            nameservers:
+                search: [CLUSTER_DOMAINNAME]
+                addresses: [LVS01_Private_IP,LVS02_Private_IP]
index 86708dd..a642914 100755 (executable)
@@ -150,6 +150,10 @@ fi
 
 echo "Installing system files"
 sleep 2
+if [ -e /etc/netplan ]
+then
+    rm -rf /etc/netplan
+fi
 tar zxvf drone_file.tar.gz -C /
 
 echo "Setting up fstab for drones"
index 1229092..65feff9 100755 (executable)
@@ -210,3 +210,26 @@ then
        /usr/sbin/munin-node-configure --suggest
 fi
 }
+
+
+Check_Netplan () { ### Check if we are using netplan 
+OS_VER="$(lsb_release -sr | awk -F"." '{ print $1 }')"
+
+
+if (( "$OS_VER" >= "18" ))
+then
+    if [ -e /etc/netplan ]
+    then
+        if ! dpkg -l | grep -q ifupdown
+        then
+            echo
+            echo "netplan is in use"
+            USE_NETPLAN="YES"
+        else
+            echo
+            echo "ifupdown is installed"
+            USE_NETPLAN="NO"
+        fi
+    fi
+fi
+}
index 1369446..97c3ab1 100755 (executable)
@@ -179,6 +179,10 @@ then
 fi
 
 ### Extract config files from package
+if [ -e /etc/netplan ]
+then
+    rm -rf /etc/netplan
+fi
 tar zxvf head_file.tar.gz -C / >> $INSTALL_LOG 2>&1
 
 ### Display extracted config files.
index 6a673b7..dad3f94 100755 (executable)
@@ -577,6 +577,12 @@ fi
 ### Extract system files
 echo "Installing system files"
 sleep 2
+
+if [ -e /etc/netplan ]
+then
+    rm -rf /etc/netplan
+fi
+
 tar zxvf tar_file.tar.gz -C /
 
 ConfigLogging