X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=ci%2F03-maasdeploy.sh;h=e74de25df3e4cc1c80fa56162772261b697b9696;hb=5fb8d23f322a0874e5a61c834108c84536f0466c;hp=2dd0c26991e6aef2931c0363ecf5c2ade95fcea7;hpb=50e1c44f64585abe63bd40982cb379412045fa33;p=joid.git diff --git a/ci/03-maasdeploy.sh b/ci/03-maasdeploy.sh index 2dd0c269..e74de25d 100755 --- a/ci/03-maasdeploy.sh +++ b/ci/03-maasdeploy.sh @@ -10,15 +10,15 @@ if [ ! -e $HOME/.ssh/id_rsa ]; then fi #install the packages needed -sudo apt-add-repository ppa:juju/stable -y +sudo apt-add-repository ppa:juju/devel -y sudo apt-add-repository ppa:maas/stable -y sudo apt-add-repository cloud-archive:newton -y sudo apt-get update -y -sudo apt-get dist-upgrade -y -sudo apt-get install openssh-server bzr git juju virtinst qemu-kvm libvirt-bin \ +#sudo apt-get dist-upgrade -y +sudo apt-get install openssh-server bzr git virtinst qemu-kvm libvirt-bin juju \ maas maas-region-controller python-pip python-psutil python-openstackclient \ python-congressclient gsutil charm-tools pastebinit python-jinja2 sshpass \ - openssh-server vlan ipmitool jq -y + openssh-server vlan ipmitool jq expect -y sudo pip install --upgrade pip @@ -31,22 +31,17 @@ sudo pip install --upgrade pip # Config preparation # -# Get labconfig and generate deployment.yaml for MAAS and deployconfig.yaml +# Get labconfig and generate deployconfig.yaml case "$labname" in intelpod[569]|orangepod[12]|cengnpod[12] ) array=(${labname//pod/ }) cp ../labconfig/${array[0]}/pod${array[1]}/labconfig.yaml . - python genMAASConfig.py -l labconfig.yaml > deployment.yaml python genDeploymentConfig.py -l labconfig.yaml > deployconfig.yaml ;; 'attvirpod1' ) cp ../labconfig/att/virpod1/labconfig.yaml . - python genMAASConfig.py -l labconfig.yaml > deployment.yaml python genDeploymentConfig.py -l labconfig.yaml > deployconfig.yaml ;; - 'juniperpod1' ) - cp maas/juniper/pod1/deployment.yaml ./deployment.yaml - ;; 'custom') labfile=$2 if [ -e $labfile ]; then @@ -61,32 +56,29 @@ case "$labname" in if [ ! -e ./labconfig.yaml ]; then virtinstall=1 labname="default" - cp ../labconfig/default/deployment.yaml ./ cp ../labconfig/default/labconfig.yaml ./ cp ../labconfig/default/deployconfig.yaml ./ else - python genMAASConfig.py -l labconfig.yaml > deployment.yaml python genDeploymentConfig.py -l labconfig.yaml > deployconfig.yaml - labname=`grep "maas_name" deployment.yaml | cut -d ':' -f 2 | sed -e 's/ //'` + labname=`grep "maas_name" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //'` fi ;; * ) virtinstall=1 labname="default" - cp ../labconfig/default/deployment.yaml ./ cp ../labconfig/default/labconfig.yaml ./ - cp ../labconfig/default/deployconfig.yaml ./ + python genDeploymentConfig.py -l labconfig.yaml > deployconfig.yaml ;; esac -MAAS_IP=$(grep " ip_address" deployment.yaml | cut -d ':' -f 2 | sed -e 's/ //') -MAAS_NAME=`grep "maas_name" deployment.yaml | cut -d ':' -f 2 | sed -e 's/ //'` +MAAS_IP=$(grep " ip_address" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //') +MAAS_NAME=`grep "maas_name" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //'` API_SERVER="http://$MAAS_IP/MAAS/api/2.0" API_SERVERMAAS="http://$MAAS_IP/MAAS/" PROFILE=ubuntu -MY_UPSTREAM_DNS=`grep "upstream_dns" deployment.yaml | cut -d ':' -f 2 | sed -e 's/ //'` +MY_UPSTREAM_DNS=`grep "upstream_dns" deployconfig.yaml | cut -d ':' -f 2 | sed -e 's/ //'` SSH_KEY=`cat ~/.ssh/id_rsa.pub` -MAIN_ARCHIVE=`grep "main_archive" deployment.yaml | cut -d ':' -f 2-3 | sed -e 's/ //'` +MAIN_ARCHIVE=`grep "main_archive" deployconfig.yaml | cut -d ':' -f 2-3 | sed -e 's/ //'` URL=https://images.maas.io/ephemeral-v2/daily/ KEYRING_FILE=/usr/share/keyrings/ubuntu-cloudimage-keyring.gpg SOURCE_ID=1 @@ -96,7 +88,7 @@ PRIMARY_RACK_CONTROLLER="$MAAS_IP" SUBNET_CIDR="192.168.122.0/24" VLAN_TAG="untagged" -# In the case of a virtual deployment get deployment.yaml and deployconfig.yaml +# In the case of a virtual deployment get deployconfig.yaml if [ "$virtinstall" -eq 1 ]; then MAAS_IP="192.168.122.1" API_SERVER="http://$MAAS_IP/MAAS/api/2.0" @@ -108,33 +100,26 @@ fi #create backup directory mkdir ~/joid_config/ || true -# Backup deployment.yaml and deployconfig.yaml in joid_config folder +# Backup deployconfig.yaml in joid_config folder if [ -e ./deployconfig.yaml ]; then cp ./deployconfig.yaml ~/joid_config/ cp ./labconfig.yaml ~/joid_config/ fi -if [ -e ./deployment.yaml ]; then - cp ./deployment.yaml ~/joid_config/ -fi - - # # Prepare local environment to avoid password asking # # make sure no password asked during the deployment. -echo "$USER ALL=(ALL) NOPASSWD:ALL" > 90-joid-init - -if [ -e /etc/sudoers.d/90-joid-init ]; then - sudo cp /etc/sudoers.d/90-joid-init 91-joid-init - sudo chown $USER:$USER 91-joid-init - sudo chmod 660 91-joid-init - sudo cat 90-joid-init >> 91-joid-init - sudo chown root:root 91-joid-init - sudo mv 91-joid-init /etc/sudoers.d/ +sudoer_file=/etc/sudoers.d/90-joid-init +sudoer_entry="$USER ALL=(ALL) NOPASSWD:ALL" +if [ -e $sudoer_file ]; then + if ! sudo grep -q "$sudoer_entry" $sudoer_file; then + sudo sed -i -e "1i$sudoer_entry" $sudoer_file + fi else + echo "$sudoer_entry" > 90-joid-init sudo chown root:root 90-joid-init sudo mv 90-joid-init /etc/sudoers.d/ fi @@ -160,6 +145,7 @@ if [ "$virtinstall" -eq 1 ]; then sudo virsh net-define default-net-org.xml sudo virsh net-destroy default sudo virsh net-start default + rm -f default-net-org.xml fi # @@ -283,30 +269,11 @@ enablesubnetanddhcp(){ maas $PROFILE subnet update $SUBNET_CIDR gateway_ip=$MY_GATEWAY || true maas $PROFILE subnet update $SUBNET_CIDR dns_servers=$MY_NAMESERVER || true -} + #below command will enable the interface with internal-api space. + + SPACEID=$(maas $PROFILE space read internal-api | jq '.id') + maas $PROFILE subnet update $SUBNET_CIDR space=$SPACEID || true -## derived from https://gist.github.com/epiloque/8cf512c6d64641bde388 -## works for arrays of hashes, as long as the hashes do not have arrays -parse_yaml2() { - local prefix=$2 - local s - local w - local fs - s='[[:space:]]*' - w='[a-zA-Z0-9_]*' - fs="$(echo @|tr @ '\034')" - sed -ne "s|^\($s\)\($w\)$s:$s\"\(.*\)\"$s\$|\1$fs\2$fs\3|p" \ - -e "s|^\($s\)\($w\)$s[:-]$s\(.*\)$s\$|\1$fs\2$fs\3|p" "$1" | - awk -F"$fs" '{ - indent = length($1)/2; - if (length($2) == 0) { conj[indent]="+";} else {conj[indent]="";} - vname[indent] = $2; - for (i in vname) {if (i > indent) {delete vname[i]}} - if (length($3) > 0) { - vn=""; for (i=0; i credential.yaml echo " $controllername:" >> credential.yaml @@ -492,8 +478,8 @@ addcredential() { } addcloud() { - controllername=`awk 'NR==1{print substr($1, 1, length($1)-1)}' deployment.yaml` - cloudname=`awk 'NR==1{print substr($1, 1, length($1)-1)}' deployment.yaml` + controllername=`awk 'NR==1{print substr($1, 1, length($1)-1)}' deployconfig.yaml` + cloudname=`awk 'NR==1{print substr($1, 1, length($1)-1)}' deployconfig.yaml` echo "clouds:" > maas-cloud.yaml echo " $cloudname:" >> maas-cloud.yaml @@ -571,7 +557,7 @@ fi # Add the cloud and controller credentials for MAAS for that lab. jujuver=`juju --version` -if [ "$jujuver" > "2" ]; then +if [[ "$jujuver" > "2" ]]; then addcloud addcredential fi