From b99ad2c41241abb54912fb32a802bd54ce68ec1e Mon Sep 17 00:00:00 2001 From: Elizabeth Krumbach Joseph Date: Tue, 11 Mar 2014 15:34:14 -0700 Subject: [PATCH] Add support for Fedora 20 to nodepool For TripleO, one of our test cases is a fully Fedora-driven test, this adds support for Fedora as a nodepool VM by adding support to prepare node scripts. Also adding install_devstack_dependencies.sh for Ubuntu and Fedora shared dependencies for DevStack (and TripleO) preparation scripts. Change-Id: I7399cc4d4b6ec6f8598afa68bc99ebb24cb01f64 --- .../scripts/install_devstack_dependencies.sh | 33 +++++++++++++++++ .../nodepool/scripts/prepare_devstack.sh | 15 +------- .../files/nodepool/scripts/prepare_node.sh | 4 +++ .../files/nodepool/scripts/prepare_tripleo.sh | 36 +++++++++++-------- 4 files changed, 59 insertions(+), 29 deletions(-) create mode 100644 modules/openstack_project/files/nodepool/scripts/install_devstack_dependencies.sh diff --git a/modules/openstack_project/files/nodepool/scripts/install_devstack_dependencies.sh b/modules/openstack_project/files/nodepool/scripts/install_devstack_dependencies.sh new file mode 100644 index 0000000000..074c185003 --- /dev/null +++ b/modules/openstack_project/files/nodepool/scripts/install_devstack_dependencies.sh @@ -0,0 +1,33 @@ +#!/bin/bash -xe + +# Copyright (C) 2011-2013 OpenStack Foundation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# +# See the License for the specific language governing permissions and +# limitations under the License. + +mkdir -p ~/cache/files +mkdir -p ~/cache/pip + +if [ -f /usr/bin/yum ]; then + sudo yum -y install python-devel make automake gcc gcc-c++ \ + kernel-devel redhat-lsb-core +elif [ -f /usr/bin/apt-get ]; then + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + --option "Dpkg::Options::=--force-confold" \ + --assume-yes install build-essential python-dev \ + linux-headers-virtual linux-headers-`uname -r` +else + echo "Unsupported distro." + exit 1 +fi diff --git a/modules/openstack_project/files/nodepool/scripts/prepare_devstack.sh b/modules/openstack_project/files/nodepool/scripts/prepare_devstack.sh index 6738fad91b..d77e383125 100755 --- a/modules/openstack_project/files/nodepool/scripts/prepare_devstack.sh +++ b/modules/openstack_project/files/nodepool/scripts/prepare_devstack.sh @@ -16,20 +16,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -mkdir -p ~/cache/files -mkdir -p ~/cache/pip - -if [ -f /usr/bin/yum ]; then - sudo yum -y install python-devel make automake gcc gcc-c++ kernel-devel redhat-lsb-core -elif [ -f /usr/bin/apt-get ]; then - sudo DEBIAN_FRONTEND=noninteractive apt-get \ - --option "Dpkg::Options::=--force-confold" \ - --assume-yes install build-essential python-dev \ - linux-headers-virtual linux-headers-`uname -r` -else - echo "Unsupported distro." - exit 1 -fi +./install_devstack_dependencies.sh DISTRIB_CODENAME=`lsb_release -sc` diff --git a/modules/openstack_project/files/nodepool/scripts/prepare_node.sh b/modules/openstack_project/files/nodepool/scripts/prepare_node.sh index fb45e0f9a6..1da8aac590 100755 --- a/modules/openstack_project/files/nodepool/scripts/prepare_node.sh +++ b/modules/openstack_project/files/nodepool/scripts/prepare_node.sh @@ -24,6 +24,10 @@ PYPY=${5:-false} ALL_MYSQL_PRIVS=${6:-false} sudo hostname $HOSTNAME +# Fedora image doesn't come with wget +if [ -f /usr/bin/yum ]; then + sudo yum -y install wget +fi wget https://git.openstack.org/cgit/openstack-infra/config/plain/install_puppet.sh sudo bash -xe install_puppet.sh sudo git clone --depth=1 git://git.openstack.org/openstack-infra/config.git \ diff --git a/modules/openstack_project/files/nodepool/scripts/prepare_tripleo.sh b/modules/openstack_project/files/nodepool/scripts/prepare_tripleo.sh index 333be8bbdf..56ed667d32 100755 --- a/modules/openstack_project/files/nodepool/scripts/prepare_tripleo.sh +++ b/modules/openstack_project/files/nodepool/scripts/prepare_tripleo.sh @@ -17,20 +17,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -mkdir -p ~/cache/files -mkdir -p ~/cache/pip - # Enable precise-backports so we can install jq sudo sed -i -e 's/# \(deb .*precise-backports main \)/\1/g' /etc/apt/sources.list sudo apt-get update -# Copied from devstack script, seems reasonable to keep and later -# build upon as needed -sudo DEBIAN_FRONTEND=noninteractive apt-get \ - --option "Dpkg::Options::=--force-confold" \ - --assume-yes install build-essential python-dev python-pip \ - linux-headers-virtual linux-headers-`uname -r` \ - libffi-dev +./install_devstack_dependencies.sh # toci scripts use both of these sudo pip install gear os-apply-config @@ -38,18 +29,33 @@ sudo pip install gear os-apply-config # tripleo-gate runs with two networks - the public access network and eth1 # pointing at the in-datacentre L2 network where we can talk to the test # environments directly. We need to enable DHCP on eth1 though. -sudo dd of=/etc/network/interfaces oflag=append conv=notrunc << EOF -auto eth1 -iface eth1 inet dhcp -EOF # Note that we don't bring it up during prepare - it's only needed to run # tests. +if [ -d /etc/sysconfig/network-scripts ]; then + sudo dd of=/etc/sysconfig/network-scripts/ifcfg-eth1 << EOF +DEVICE="eth1" +BOOTPROTO="dhcp" +ONBOOT="yes" +TYPE="Ethernet" +EOF + +elif [ -f /etc/network/interfaces ]; then + sudo dd of=/etc/network/interfaces oflag=append conv=notrunc << EOF +auto eth1 +iface eth1 inet dhcp +EOF + # Workaround bug 1270646 for actual slaves -sudo dd of=/etc/network/interfaces.d/eth0.cfg oflag=append conv=notrunc << EOF + sudo dd of=/etc/network/interfaces.d/eth0.cfg oflag=append conv=notrunc << EOF post-up ip link set mtu 1458 dev eth0 EOF +else + echo "Unsupported distro." + exit 1 +fi + rm -rf ~/workspace-cache mkdir -p ~/workspace-cache cd ~/workspace-cache