blob: 286892404b252a24debd447cc45449ad9542e231 [file] [log] [blame]
Richard Felkl4c4829d2017-11-11 00:12:20 +01001#!/bin/bash -xe
2export SALT_MASTER_DEPLOY_IP=172.16.164.15
3export SALT_MASTER_MINION_ID=cfg01.deploy-name.local
4export DEPLOY_NETWORK_GW=172.16.164.1
5export DEPLOY_NETWORK_NETMASK=255.255.255.192
6export DNS_SERVERS=8.8.8.8
Jiri Broulikcee20532018-01-08 13:30:15 +01007export http_proxy=
8export https_proxy=
9export PIPELINES_FROM_ISO=true
10export PIPELINE_REPO_URL=https://github.com/Mirantis
Richard Felkl98b45342018-04-06 13:30:28 +020011export MCP_VERSION=stable
12export MCP_SALT_REPO_KEY=http://apt.mirantis.com/public.gpg
13export MCP_SALT_REPO_URL=http://apt.mirantis.com/xenial
14export MCP_SALT_REPO="deb [arch=amd64] $MCP_SALT_REPO_URL $MCP_VERSION salt"
15export FORMULAS="salt-formula-*"
Jiri Broulikcee20532018-01-08 13:30:15 +010016#for cloning from aptly image use port 8088
17#export PIPELINE_REPO_URL=http://172.16.47.182:8088
Richard Felkl4c4829d2017-11-11 00:12:20 +010018
Jiri Broulikfd84eeb2017-12-13 11:22:00 +010019rm -vf /etc/update-motd.d/52-info
Richard Felkl4c4829d2017-11-11 00:12:20 +010020echo "Configuring network interfaces"
Dmitry Stremkouskif50ea262017-12-05 19:35:40 +030021find /etc/network/interfaces.d/ -type f -delete
22kill $(pidof /sbin/dhclient) || /bin/true
Richard Felkl4c4829d2017-11-11 00:12:20 +010023envsubst < /root/interfaces > /etc/network/interfaces
Dmitry Stremkouskia94b5f32017-12-02 00:41:54 +030024ip a flush dev ens3
Dmitry Stremkouskib43c4ee2017-12-02 02:21:05 +030025rm -f /var/run/network/ifstate.ens3
26if [[ $(grep -E '^\ *gateway\ ' /etc/network/interfaces) ]]; then
27(ip r s | grep ^default) && ip r d default || /bin/true
28fi;
Dmitry Stremkouskia94b5f32017-12-02 00:41:54 +030029ifup ens3
Richard Felkl4c4829d2017-11-11 00:12:20 +010030
31echo "Preparing metadata model"
32mount /dev/cdrom /mnt/
Leontii Istomin68553f12018-02-21 18:10:12 +010033cp -rT /mnt/model/model /srv/salt/reclass
Richard Felkl4c4829d2017-11-11 00:12:20 +010034chown -R root:root /srv/salt/reclass/*
Jiri Broulikff52d682017-11-22 14:39:08 +010035chown -R root:root /srv/salt/reclass/.git*
Richard Felkl4c4829d2017-11-11 00:12:20 +010036chmod -R 644 /srv/salt/reclass/classes/cluster/*
37chmod -R 644 /srv/salt/reclass/classes/system/*
38
Richard Felkl4c4829d2017-11-11 00:12:20 +010039echo "Configuring salt"
40#service salt-master restart
41envsubst < /root/minion.conf > /etc/salt/minion.d/minion.conf
42service salt-minion restart
43while true; do
44 salt-key | grep "$SALT_MASTER_MINION_ID" && break
45 sleep 5
46done
47sleep 5
48for i in `salt-key -l accepted | grep -v Accepted | grep -v "$SALT_MASTER_MINION_ID"`; do
49 salt-key -d $i -y
50done
51
52find /var/lib/jenkins/jenkins.model.JenkinsLocationConfiguration.xml -type f -print0 | xargs -0 sed -i -e 's/10.167.4.15/'$SALT_MASTER_DEPLOY_IP'/g'
53
Jiri Broulikcee20532018-01-08 13:30:15 +010054echo "updating git repos"
55if [ "$PIPELINES_FROM_ISO" = true ] ; then
56 cp -r /mnt/mk-pipelines/* /home/repo/mk/mk-pipelines/
57 cp -r /mnt/pipeline-library/* /home/repo/mcp-ci/pipeline-library/
Jiri Broulik739bd352018-01-09 15:26:15 +010058 umount /dev/cdrom
Jiri Broulikcee20532018-01-08 13:30:15 +010059 chown -R git:www-data /home/repo/mk/mk-pipelines/*
60 chown -R git:www-data /home/repo/mcp-ci/pipeline-library/*
61else
Jiri Broulik739bd352018-01-09 15:26:15 +010062 umount /dev/cdrom
Jiri Broulikcee20532018-01-08 13:30:15 +010063 git clone --mirror $PIPELINE_REPO_URL/mk-pipelines.git /home/repo/mk/mk-pipelines/
64 git clone --mirror $PIPELINE_REPO_URL/pipeline-library.git /home/repo/mcp-ci/pipeline-library/
65 chown -R git:www-data /home/repo/mk/mk-pipelines/*
66 chown -R git:www-data /home/repo/mcp-ci/pipeline-library/*
67fi
68
Richard Felkl98b45342018-04-06 13:30:28 +020069echo "installing formulas"
70curl -s $MCP_SALT_REPO_KEY | sudo apt-key add -
71echo $MCP_SALT_REPO > /etc/apt/sources.list.d/mcp_salt.list
72apt-get update
73apt-get install -y $FORMULAS
74rm -r /srv/salt/reclass/classes/service/*
75cd /srv/salt/reclass/classes/service/;ls /usr/share/salt-formulas/reclass/service/ -1 | xargs -I{} ln -s /usr/share/salt-formulas/reclass/service/{};cd
76
Richard Felkl4c4829d2017-11-11 00:12:20 +010077salt-call saltutil.refresh_pillar
78salt-call saltutil.sync_all
79salt-call state.sls linux.network,linux,openssh,salt
Ondrej Smola0c71bfd2018-03-16 12:07:38 +010080salt-call state.sls salt
Richard Felkl4c4829d2017-11-11 00:12:20 +010081salt-call state.sls maas.cluster,maas.region,reclass
82
Jiri Broulik1261ca32018-01-18 15:30:25 +010083ssh-keyscan cfg01 > /var/lib/jenkins/.ssh/known_hosts
84
Jiri Broulike40813f2018-01-16 13:35:19 +010085pillar=`salt-call pillar.data jenkins:client`
86
87if [[ $pillar == *"job"* ]]; then
88 salt-call state.sls jenkins.client
89fi
Richard Felkl4c4829d2017-11-11 00:12:20 +010090
Dmitry Stremkouskia94b5f32017-12-02 00:41:54 +030091reboot