~narindergupta/opnfv/stable-R2

« back to all changes in this revision

Viewing changes to ci/03-maasdeploy.sh

  • Committer: Gerrit Code Review
  • Author(s): Narinder Gupta
  • Date: 2017-12-15 17:28:31 UTC
  • mfrom: (753.2.1)
  • Revision ID: git-v1:f8fafff7aa8cbfb0d622b7ca1e631e1278600bb4
Merge "adding snap install of MAAS."

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
    usage;
22
22
fi
23
23
 
24
 
opnfvdistro=`cat /etc/lsb-release | grep CODENAME | cut -d "=" -f 2`
25
 
 
26
24
virtinstall=0
27
25
labname=$1
 
26
snapinstall=0
 
27
 
 
28
opnfvdistro=`cat /etc/lsb-release | grep CODENAME | cut -d "=" -f 2`
 
29
 
 
30
if [ "bionic" == "$opnfvdistro" ]; then
 
31
    snapinstall=1
 
32
fi
 
33
 
28
34
 
29
35
if [ ! -e $HOME/.ssh/id_rsa ]; then
30
36
    ssh-keygen -N '' -f $HOME/.ssh/id_rsa
49
55
#sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5EDB1B62EC4926EA
50
56
sudo apt-get update -y || true
51
57
sudo apt-get install software-properties-common -y
52
 
sudo apt-add-repository ppa:juju/stable -y
53
 
sudo apt-add-repository ppa:maas/stable -y
54
 
if [ "bionic" == "$opnfvdistro" ]; then
55
 
    echo "no cloud archive needed"
56
 
else
57
 
    sudo apt-add-repository cloud-archive:pike -y
 
58
 
 
59
if [ "$snapinstall" -eq 0 ]; then
 
60
    sudo apt-add-repository ppa:juju/stable -y
 
61
    sudo apt-add-repository ppa:maas/stable -y
58
62
fi
59
 
 
60
 
if [ "aarch64" == "$NODE_ARCTYPE" ]; then
61
 
    if [ "bionic" == "$opnfvdistro" ]; then
62
 
        echo "no repository needed"
63
 
    else
 
63
if [ "bionic" != "$opnfvdistro" ]; then
 
64
        sudo apt-add-repository cloud-archive:pike -y
 
65
    if [ "aarch64" == "$NODE_ARCTYPE" ]; then
64
66
        sudo add-apt-repository ppa:ubuntu-cloud-archive/pike-staging -y
65
67
    fi
66
68
fi
 
69
 
67
70
sudo apt-get update -y || true
68
71
#sudo apt-get dist-upgrade -y
69
72
 
70
 
if [ "bionic" == "$opnfvdistro" ]; then
 
73
if [ "$snapinstall" -eq 1 ]; then
71
74
    sudo apt-get install bridge-utils openssh-server bzr git virtinst qemu-kvm libvirt-bin \
72
75
             maas maas-region-controller juju python-pip python-psutil python-openstackclient \
73
76
             python-congressclient gsutil pastebinit python-jinja2 sshpass \
74
77
             openssh-server vlan ipmitool jq expect snap -y --allow-unauthenticated
 
78
    sudo service ntp stop
75
79
    sudo snap install charm
 
80
    sudo snap install --devmode --stable maas
76
81
else
77
82
    sudo apt-get install bridge-utils openssh-server bzr git virtinst qemu-kvm libvirt-bin \
78
83
             maas maas-region-controller juju python-pip python-psutil python-openstackclient \
158
163
VLAN_UNTTAGED="untagged"
159
164
 
160
165
# In the case of a virtual deployment get deployconfig.yaml
161
 
if [ "$virtinstall" -eq 1 ]; then
162
 
    ./cleanvm.sh || true
163
 
fi
 
166
./cleanvm.sh || true
164
167
 
165
168
#create backup directory
166
169
mkdir ~/joid_config/ || true
227
230
    sudo pip uninstall google-api-python-client
228
231
fi
229
232
 
 
233
if [ "$snapinstall" -eq 0 ]; then
 
234
    maasuser=maas
 
235
else
 
236
    maasuser=root
 
237
fi
230
238
 
231
 
if [ ! -e ~maas/.ssh/id_rsa.pub ]; then
 
239
if [ ! -e ~$maasuser/.ssh/id_rsa.pub ]; then
232
240
    if [ ! -e $HOME/id_rsa_maas.pub ]; then
233
241
        [ -e $HOME/id_rsa_maas ] && rm -f $HOME/id_rsa_maas
234
242
        sudo su - $USER -c "echo |ssh-keygen -t rsa -f $HOME/id_rsa_maas"
235
243
    fi
236
 
    sudo -u maas mkdir ~maas/.ssh/ || true
237
 
    sudo cp $HOME/id_rsa_maas ~maas/.ssh/id_rsa
238
 
    sudo cp $HOME/id_rsa_maas.pub ~maas/.ssh/id_rsa.pub
239
 
    sudo chown maas:maas ~maas/.ssh/id_rsa
240
 
    sudo chown maas:maas ~maas/.ssh/id_rsa.pub
 
244
    sudo -u $maasuser mkdir ~$maasuser/.ssh/ || true
 
245
    sudo cp $HOME/id_rsa_maas ~$maasuser/.ssh/id_rsa
 
246
    sudo cp $HOME/id_rsa_maas.pub ~$maasuser/.ssh/id_rsa.pub
 
247
    sudo chown $maasuser:$maasuser ~$maasuser/.ssh/id_rsa
 
248
    sudo chown $maasuser:$maasuser ~$maasuser/.ssh/id_rsa.pub
241
249
fi
242
250
 
243
251
# Ensure virsh can connect without ssh auth
244
 
sudo cat ~maas/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
 
252
sudo cat ~$maasuser/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
245
253
sudo cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
246
254
 
 
255
if [ "$snapinstall" -eq 1 ]; then
 
256
    sudo maas init --mode all --maas-url http://$MAAS_IP:5240/MAAS --admin-username $PROFILE \
 
257
                   --admin-password $PROFILE --admin-email ubuntu@ubuntu.com || true
 
258
    API_KEY=`sudo maas apikey --username=$PROFILE`
 
259
else
 
260
    sudo maas-rack config --region-url http://$MAAS_IP:5240/MAAS
 
261
    sudo maas createadmin --username=$PROFILE --email=ubuntu@ubuntu.com --password=$PROFILE || true
 
262
    API_KEY=`sudo maas-region apikey --username=$PROFILE`
 
263
fi
247
264
#
248
265
# MAAS config
249
266
# https://insights.ubuntu.com/2016/01/23/maas-setup-deploying-openstack-on-maas-1-9-with-juju/
251
268
#
252
269
configuremaas(){
253
270
    #reconfigure maas with correct MAAS address.
254
 
 
255
 
    sudo maas-rack config --region-url http://$MAAS_IP:5240/MAAS
256
 
 
257
 
    sudo maas createadmin --username=ubuntu --email=ubuntu@ubuntu.com --password=ubuntu || true
258
 
    API_KEY=`sudo maas-region apikey --username=ubuntu`
259
271
    maas login $PROFILE $API_SERVERMAAS $API_KEY
260
272
    maas $PROFILE maas set-config name='main_archive' value=$MAIN_ARCHIVE || true
261
273
    maas $PROFILE maas set-config name=upstream_dns value=$MY_UPSTREAM_DNS || true
289
301
        maas $PROFILE boot-source-selection update 1 1 arches="$NODE_ARCHES"
290
302
    fi
291
303
 
292
 
    maas $PROFILE boot-resources import || true
 
304
    if [ "$snapinstall" -eq 0 ]; then
 
305
        maas $PROFILE boot-resources import || true
 
306
    fi
293
307
 
294
308
    while [ "$(maas $PROFILE boot-resources is-importing)" == "true" ];
295
309
    do
298
312
}
299
313
 
300
314
setupspacenetwork(){
301
 
 
302
315
    #get space, subnet and vlan and create accordingly.
303
316
    #for type in admin osapi data storage external floating public; do
304
317
    nettypes=`cat labconfig.json | jq '.opnfv.spaces[]'.type | cut -d \" -f 2`
416
429
}
417
430
 
418
431
addnodes(){
419
 
    API_KEY=`sudo maas-region apikey --username=ubuntu`
420
432
    maas login $PROFILE $API_SERVERMAAS $API_KEY
421
433
 
422
434
    maas $PROFILE maas set-config name=default_min_hwe_kernel value=hwe-16.04-edge || true
589
601
 
590
602
setupspacenetwork
591
603
 
592
 
sudo sed -i 's/localhost/'$MAAS_IP'/g' /etc/maas/rackd.conf
593
 
sudo service maas-rackd restart
594
 
sudo service maas-regiond restart
595
 
 
596
 
sleep 120
 
604
if [ "$snapinstall" -eq 0 ]; then
 
605
    sudo sed -i 's/localhost/'$MAAS_IP'/g' /etc/maas/rackd.conf
 
606
    sudo service maas-rackd restart
 
607
    sudo service maas-regiond restart
 
608
    sleep 120
 
609
fi
597
610
 
598
611
# Let's add the nodes now. Currently works only for virtual deployment.
599
612
addnodes
605
618
#maas $PROFILE sshkeys new key="`cat ./maas/sshkeys/DominoKey.pub`"
606
619
 
607
620
addcredential() {
608
 
    API_KEY=`sudo maas-region apikey --username=ubuntu`
609
621
    controllername=`awk 'NR==1{print substr($1, 1, length($1)-1)}' deployconfig.yaml`
610
622
    cloudname=`awk 'NR==1{print substr($1, 1, length($1)-1)}' deployconfig.yaml`
611
623
 
635
647
#
636
648
# Enable MAAS nodes interfaces
637
649
#
638
 
API_KEY=`sudo maas-region apikey --username=ubuntu`
639
650
maas login $PROFILE $API_SERVERMAAS $API_KEY
640
651
 
641
652
if [ -e ./labconfig.json ]; then