#cloud-boothook #!/bin/bash # udev persistent net cloud-init-per instance udev_persistent_net1 /etc/init.d/networking stop ADMIN_MAC={{ common.admin_mac }} ADMIN_IF=$(echo {{ common.udevrules }} | sed 's/[,=]/\n/g' | grep "$ADMIN_MAC" | cut -d_ -f2 | head -1) # Check if we do not already have static config (or interface seems unconfigured) if [ ! -d "/etc/network/interfaces.d" ]; then mkdir -p /etc/network/interfaces.d echo 'source /etc/network/interfaces.d/*' > /etc/network/interfaces fi if [ ! -e "/etc/network/interfaces.d/ifcfg-$ADMIN_IF" ]; then echo -e "auto $ADMIN_IF\niface $ADMIN_IF inet static\n\taddress {{ common.admin_ip }}\n\tnetmask {{ common.admin_mask }}\n\tgateway {{ common.gw }}" > /etc/network/interfaces.d/ifcfg-"$ADMIN_IF" fi cloud-init-per instance udev_persistent_net5 /etc/init.d/networking start # end of udev #FIXME(agordeev): if operator updates dns settings on masternode after the node had been provisioned, # cloud-init will start to generate resolv.conf with non-actual data cloud-init-per instance resolv_conf_mkdir mkdir -p /etc/resolvconf/resolv.conf.d cloud-init-per instance resolv_conf_remove rm -f /etc/resolv.conf cloud-init-per instance resolv_conf_head_remove rm -f /etc/resolvconf/resolv.conf.d/head cloud-init-per instance resolv_conf_header /bin/sh -c 'echo "# re-generated by cloud-init boothook only at the first boot;" | tee /etc/resolv.conf' cloud-init-per instance resolv_conf_search /bin/sh -c 'echo "search {{ common.search_domain|replace('"','') }}" | tee -a /etc/resolv.conf' cloud-init-per instance resolv_conf_domain /bin/sh -c 'echo "domain {{ common.search_domain|replace('"','') }}" | tee -a /etc/resolv.conf' cloud-init-per instance resolv_conf_head_header /bin/sh -c 'echo "# re-generated by cloud-init boothook only at the first boot;" | tee /etc/resolvconf/resolv.conf.d/head' cloud-init-per instance resolv_conf_head_search /bin/sh -c 'echo "search {{ common.search_domain|replace('"','') }}" | tee -a /etc/resolvconf/resolv.conf.d/head' cloud-init-per instance resolv_conf_head_domain /bin/sh -c 'echo "domain {{ common.search_domain|replace('"','') }}" | tee -a /etc/resolvconf/resolv.conf.d/head' cloud-init-per instance resolv_conf_nameserver /bin/sh -c 'echo nameserver {{ common.master_ip|replace('"','') }} | tee -a /etc/resolv.conf' cloud-init-per instance resolv_conf_head_nameserver /bin/sh -c 'echo nameserver {{ common.master_ip|replace('"','') }} | tee -a /etc/resolvconf/resolv.conf.d/head' # configure black module lists # virt-what should be installed if [ ! -f /etc/modprobe.d/blacklist-i2c_piix4.conf ]; then ([[ $(virt-what) = "virtualbox" ]] && echo "blacklist i2c_piix4" >> /etc/modprobe.d/blacklist-i2c_piix4.conf || :) && update-initramfs -u -k all modprobe -r i2c_piix4 fi cloud-init-per instance conntrack_ipv4 /bin/sh -c 'echo nf_conntrack_ipv4 | tee -a /etc/modules' cloud-init-per instance conntrack_ipv6 /bin/sh -c 'echo nf_conntrack_ipv6 | tee -a /etc/modules' cloud-init-per instance conntrack_proto_gre /bin/sh -c 'echo nf_conntrack_proto_gre | tee -a /etc/modules' cloud-init-per instance conntrack_max /bin/sh -c 'echo "net.nf_conntrack_max=1048576" | tee -a /etc/sysctl.conf' cloud-init-per instance kernel_panic /bin/sh -c 'echo "kernel.panic=60" | tee -a /etc/sysctl.conf' cloud-init-per instance conntrack_ipv4_load modprobe nf_conntrack_ipv4 cloud-init-per instance conntrack_ipv6_load modprobe nf_conntrack_ipv6 cloud-init-per instance conntrack_proto_gre_load modprobe nf_conntrack_proto_gre cloud-init-per instance conntrack_max_set sysctl -w "net.nf_conntrack_max=1048576" cloud-init-per instance kernel_panic_set sysctl -w "kernel.panic=60" cloud-init-per instance dhclient /bin/sh -c 'echo "supersede routers 0;" | tee /etc/dhcp/dhclient.conf'