2209d34372
On Debian network configuration can be done via /etc/network/interfaces. It can accept a statement to load additional files, which varied in history: Wheezy only supports 'source' (seeb822581
) Jessie supports 'source-directory' and comes with the statement by default. However since754dd05
we inconditionally inject 'source', thus on Jessie the configuration ends up with: source-directory /etc/network/interfaces.d/* source /etc/network/interfaces.d/* When networking is started, 'ifup -a' parses the list of interfaces twice. When configured with dhcp, that causes two dhclient to spawn which might conflict with each other. Inject the source statement only if there is neither a source or source-directory with the same path. Change-Id: Iefa9c9584f676e50481c621b4111eded3125a50b
38 lines
1.2 KiB
Bash
Executable file
38 lines
1.2 KiB
Bash
Executable file
#!/bin/bash
|
|
#
|
|
# Copyright 2015 Hewlett-Packard Development Company, L.P.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
|
|
if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then
|
|
set -x
|
|
fi
|
|
set -eu
|
|
set -o pipefail
|
|
|
|
# It would be eversogreat if we didn't need to do crap like this
|
|
echo $DISTRO_NAME > /etc/hostname
|
|
|
|
# cloud images expect eth0 and eth1 to use dhcp.
|
|
mkdir -p /etc/network/interfaces.d
|
|
if ! grep -E -q '^source(|-directory) /etc/network/interfaces.d/\*' /etc/network/interfaces; then
|
|
echo "source /etc/network/interfaces.d/*" >> /etc/network/interfaces
|
|
echo 'Network configuration set to source /etc/network/interfaces.d/*'
|
|
fi
|
|
for interface in eth0 eth1; do
|
|
cat << EOF | tee /etc/network/interfaces.d/$interface
|
|
auto $interface
|
|
iface $interface inet dhcp
|
|
EOF
|
|
done
|