| garciadeblas | 8802d14 | 2016-09-20 14:24:13 +0200 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | # Copyright 2016 Telefónica Investigación y Desarrollo S.A.U. |
| 3 | # |
| 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 |
| 7 | # |
| 8 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | # |
| 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. |
| Adam Israel | 736f9e7 | 2017-02-23 15:36:35 +0100 | [diff] [blame] | 15 | # |
| garciadeblas | 8802d14 | 2016-09-20 14:24:13 +0200 | [diff] [blame] | 16 | # 20 Sep 2016 -- Gerardo Garcia -- adapted from template |
| Adam Israel | 736f9e7 | 2017-02-23 15:36:35 +0100 | [diff] [blame] | 17 | # |
| garciadeblas | 8802d14 | 2016-09-20 14:24:13 +0200 | [diff] [blame] | 18 | |
| garciadeblas | 0dd790c | 2016-09-20 17:23:48 +0200 | [diff] [blame] | 19 | HERE=$(realpath $(dirname $0)) |
| 20 | OSM_JENKINS=$(dirname $HERE) |
| 21 | . $OSM_JENKINS/common/all_funcs |
| 22 | |
| Adam Israel | 736f9e7 | 2017-02-23 15:36:35 +0100 | [diff] [blame] | 23 | INFO "Installing packages" |
| 24 | add-apt-repository -y ppa:juju/stable |
| 25 | apt-get update |
| 26 | apt-get install -y juju lxd squid-deb-proxy |
| 27 | |
| 28 | echo 'streams.canonical' > /etc/squid-deb-proxy/mirror-dstdomain.acl.d/20-juju-streams |
| garciadeblas | 828aaf8 | 2017-04-07 21:07:15 +0200 | [diff] [blame] | 29 | service squid-deb-proxy reload |
| Adam Israel | 736f9e7 | 2017-02-23 15:36:35 +0100 | [diff] [blame] | 30 | |
| 31 | INFO "Configuring LXD" |
| 32 | # ZFS doesn't work inside a nested container. ZFS should be configured in the host LXD. |
| garciadeblas | 8802d14 | 2016-09-20 14:24:13 +0200 | [diff] [blame] | 33 | lxd init --auto |
| 34 | lxd waitready |
| 35 | systemctl stop lxd-bridge |
| 36 | systemctl --system daemon-reload |
| 37 | cat <<EOF > /etc/default/lxd-bridge |
| 38 | USE_LXD_BRIDGE="true" |
| 39 | LXD_BRIDGE="lxdbr0" |
| 40 | UPDATE_PROFILE="true" |
| 41 | LXD_CONFILE="" |
| 42 | LXD_DOMAIN="lxd" |
| 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" |
| 48 | LXD_IPV4_NAT="true" |
| 49 | LXD_IPV6_ADDR="" |
| 50 | LXD_IPV6_MASK="" |
| 51 | LXD_IPV6_NETWORK="" |
| 52 | LXD_IPV6_NAT="false" |
| 53 | LXD_IPV6_PROXY="false" |
| 54 | EOF |
| 55 | |
| 56 | systemctl enable lxd-bridge |
| 57 | systemctl start lxd-bridge |
| Adam Israel | 736f9e7 | 2017-02-23 15:36:35 +0100 | [diff] [blame] | 58 | |
| Adam Israel | 6a2d533 | 2017-04-27 20:45:51 -0400 | [diff] [blame] | 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;}') |
| 61 | |
| 62 | INFO "Setting lxdbr0 MTU to $DEFAULT_MTU" |
| 63 | ifconfig lxdbr0 mtu $DEFAULT_MTU |
| 64 | |
| 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 |
| 68 | |
| Adam Israel | 736f9e7 | 2017-02-23 15:36:35 +0100 | [diff] [blame] | 69 | INFO "Pre-caching Ubuntu:16.04 image (this may take several minutes)..." |
| 70 | |
| 71 | # Setup a daily cron to update the cached image |
| 72 | cp $HERE/update-lxd-image.sh /etc/cron.daily |
| 73 | |
| 74 | # Run it for the first time |
| 75 | /etc/cron.daily/update-lxd-image.sh xenial |
| 76 | |
| 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 |
| garciadeblas | 8802d14 | 2016-09-20 14:24:13 +0200 | [diff] [blame] | 83 | |
| 84 | RC=0 |
| 85 | |
| 86 | INFO "done, RC=$RC" |
| 87 | exit $RC |