2 # Copyright 2016 Telefónica Investigación y Desarrollo S.A.U.
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
16 # 20 Sep 2016 -- Gerardo Garcia -- adapted from template
19 HERE=$(realpath $(dirname $0))
20 OSM_JENKINS=$(dirname $HERE)
21 . $OSM_JENKINS/common/all_funcs
23 INFO "Installing packages"
24 add-apt-repository -y ppa:juju/stable
26 apt-get install -y juju lxd squid-deb-proxy
28 echo 'streams.canonical' > /etc/squid-deb-proxy/mirror-dstdomain.acl.d/20-juju-streams
29 service squid-deb-proxy reload
31 INFO "Configuring LXD"
32 # ZFS doesn't work inside a nested container. ZFS should be configured in the host LXD.
35 systemctl stop lxd-bridge
36 systemctl --system daemon-reload
37 cat <<EOF > /etc/default/lxd-bridge
43 LXD_IPV4_ADDR="10.44.127.1"
44 LXD_IPV4_NETMASK="255.255.255.0"
45 LXD_IPV4_NETWORK="10.44.127.1/24"
46 LXD_IPV4_DHCP_RANGE="10.44.127.2,10.44.127.254"
47 LXD_IPV4_DHCP_MAX="252"
53 LXD_IPV6_PROXY="false"
56 systemctl enable lxd-bridge
57 systemctl start lxd-bridge
59 DEFAULT_INTERFACE=$(route -n | awk '$1~/^0.0.0.0/ {print $8}')
60 DEFAULT_MTU=$( ip addr show $DEFAULT_INTERFACE | perl -ne 'if (/mtu\s(\d+)/) {print $1;}')
62 INFO "Setting lxdbr0 MTU to $DEFAULT_MTU"
63 ifconfig lxdbr0 mtu $DEFAULT_MTU
65 # Make the MTU change persistent between reboots
66 sed -i '/ifconfig lxdbr0 mtu/d' /etc/rc.local
67 sed -i "$ i ifconfig lxdbr0 mtu $DEFAULT_MTU" /etc/rc.local
69 INFO "Pre-caching Ubuntu:16.04 image (this may take several minutes)..."
71 # Setup a daily cron to update the cached image
72 cp $HERE/update-lxd-image.sh /etc/cron.daily
74 # Run it for the first time
75 /etc/cron.daily/update-lxd-image.sh xenial
77 INFO "Bootstrapping VCA"
78 juju bootstrap localhost osm \
79 --config default-series=xenial \
80 --config enable-os-refresh-update=false \
81 --config enable-os-upgrade=false \
82 --config apt-http-proxy=http://10.44.127.1:8000