tripleo-incubator/scripts/install-dependencies

91 lines
4.4 KiB
Bash
Executable File

#!/bin/bash
set -eu
## This script should die: https://bugs.launchpad.net/tripleo/+bug/1195046.
# generate ssh key directory if it doesn't exist
if [ ! -d ~/.ssh ]; then
install --mode 700 -d ~/.ssh
fi
# generate ssh authentication keys if they don't exist
if [ ! -f ~/.ssh/id_rsa ]; then
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
fi
# Ensure the local id_rsa.pub is in .ssh/authorized_keys before that is copied
# into images via local-config. We are opening up ssh access to the host with
# a key that the user might not want, we should find another way to place the
# key onto the image. See https://bugs.launchpad.net/tripleo/+bug/1280052 for
# more details.
if ! grep "$(cat ~/.ssh/id_rsa.pub)" ~/.ssh/authorized_keys >/dev/null; then
echo "Adding public key to ~/.ssh/authorized_keys"
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
fi
# Make sure permissions are correct for ssh authorized_keys file.
chmod 0600 ~/.ssh/authorized_keys
# packages
if [ "$TRIPLEO_OS_DISTRO" = "unsupported" ]; then
echo This script has not been tested outside of Fedora, RHEL/CentOS, and Ubuntu variants.
echo Make sure you have installed all the needed dependencies or subsequent steps will fail.
fi
if [ "$TRIPLEO_OS_FAMILY" = "debian" ]; then
if $(grep -Eqs 'Ubuntu 12.04' /etc/lsb-release); then
#adding Ubuntu Cloud Archive Repository only if not present : bug https://bugs.launchpad.net/tripleo/+bug/1212237
#Ubuntu 12.04 has a too-old libvirt-bin but a newer one is present in the Ubuntu cloud archive.
sudo -E apt-get update
DEBIAN_FRONTEND=noninteractive sudo -E apt-get install --yes ubuntu-cloud-keyring
(grep -Eqs "precise-updates/grizzly" /etc/apt/sources.list.d/cloud-archive.list) || echo 'deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main
' | sudo tee -a /etc/apt/sources.list.d/cloud-archive.list
#adding precise-backports universe repository for jq package
if ! command -v add-apt-repository; then
DEBIAN_FRONTEND=noninteractive sudo -E apt-get install --yes python-software-properties
fi
sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ precise-backports universe"
fi
# packages
sudo -E apt-get update
DEBIAN_FRONTEND=noninteractive sudo -E apt-get install --yes python-lxml python-libvirt libvirt-bin qemu-utils qemu-system qemu-kvm git python-pip python-dev gcc python-virtualenv openvswitch-switch libssl-dev curl python-yaml parted lsb-release libxml2-dev libxslt1-dev jq openssh-server libffi-dev kpartx python-netaddr
if [ -f /lib/systemd/system/libvirtd.service ]; then
sudo service libvirtd restart
else
sudo service libvirt-bin restart
fi
fi
if [ "$TRIPLEO_OS_FAMILY" = "redhat" ]; then
# For CentOS, python-pip and jq are in EPEL
if [ "$TRIPLEO_OS_DISTRO" = "centos" ] && [ ! -f /etc/yum.repos.d/epel.repo ]; then
echo EPEL repository is required to install python-pip for CentOS.
echo See http://fedoraproject.org/wiki/EPEL
exit 1
fi
sudo -E yum install -y python-lxml libvirt-python libvirt qemu-img qemu-kvm git python-pip openssl-devel python-devel gcc audit python-virtualenv openvswitch python-yaml net-tools redhat-lsb-core libxslt-devel jq openssh-server libffi-devel which glusterfs-api python-netaddr
sudo service libvirtd restart
sudo service openvswitch restart
sudo chkconfig openvswitch on
fi
if [ "$TRIPLEO_OS_FAMILY" = "suse" ]; then
# Need these in path for sudo service & usermod to work
PATH=/sbin:/usr/sbin:$PATH
# TODO: this is a bit fragile, and assumes openSUSE, not SLES
suse_version=$(awk '/VERSION/ { print $3 }' /etc/SuSE-release)
if [ ! -f /etc/zypp/repos.d/Cloud_OpenStack_Master.repo ]; then
# Add Cloud:OpenStack:Master (Project that follows master branch with daily updates)
sudo -E zypper -n ar -f http://download.opensuse.org/repositories/Cloud:/OpenStack:/Master/openSUSE_$suse_version/Cloud:OpenStack:Master.repo
sudo -E zypper -n --gpg-auto-import-keys ref
fi
sudo -E zypper --non-interactive install \
python-lxml libvirt-python libvirt qemu-tools kvm git python-pip libopenssl-devel \
python-devel gcc audit python-virtualenv openvswitch-switch python-PyYAML net-tools \
lsb-release libxslt-devel jq libffi-devel python-netaddr
sudo service libvirtd restart
sudo service openvswitch-switch restart
fi