Merge "Optionally install all pip into a global venv."
This commit is contained in:
commit
d77db29673
22
functions
22
functions
@ -471,12 +471,19 @@ function pip_install {
|
||||
if [[ -z "$os_PACKAGE" ]]; then
|
||||
GetOSVersion
|
||||
fi
|
||||
if [[ "$os_PACKAGE" = "deb" ]]; then
|
||||
CMD_PIP=/usr/bin/pip
|
||||
if [[ $TRACK_DEPENDS = True ]] ; then
|
||||
source $DEST/.venv/bin/activate
|
||||
CMD_PIP=$DEST/.venv/bin/pip
|
||||
SUDO_PIP="env"
|
||||
else
|
||||
CMD_PIP=/usr/bin/pip-python
|
||||
SUDO_PIP="sudo"
|
||||
if [[ "$os_PACKAGE" = "deb" ]]; then
|
||||
CMD_PIP=/usr/bin/pip
|
||||
else
|
||||
CMD_PIP=/usr/bin/pip-python
|
||||
fi
|
||||
fi
|
||||
sudo PIP_DOWNLOAD_CACHE=${PIP_DOWNLOAD_CACHE:-/var/cache/pip} \
|
||||
$SUDO_PIP PIP_DOWNLOAD_CACHE=${PIP_DOWNLOAD_CACHE:-/var/cache/pip} \
|
||||
HTTP_PROXY=$http_proxy \
|
||||
HTTPS_PROXY=$https_proxy \
|
||||
$CMD_PIP install --use-mirrors $@
|
||||
@ -501,12 +508,17 @@ function restart_service() {
|
||||
# develop, so that pip and not distutils process the dependency chain
|
||||
# setup_develop directory
|
||||
function setup_develop() {
|
||||
if [[ $TRACK_DEPENDS = True ]] ; then
|
||||
SUDO_CMD="env"
|
||||
else
|
||||
SUDO_CMD="sudo"
|
||||
fi
|
||||
(cd $1; \
|
||||
python setup.py egg_info; \
|
||||
raw_links=$(awk '/^.+/ {print "-f " $1}' *.egg-info/dependency_links.txt); \
|
||||
depend_links=$(echo $raw_links | xargs); \
|
||||
pip_install -r *-info/requires.txt $depend_links; \
|
||||
sudo \
|
||||
$SUDO_CMD \
|
||||
HTTP_PROXY=$http_proxy \
|
||||
HTTPS_PROXY=$https_proxy \
|
||||
python setup.py develop \
|
||||
|
213
stack.sh
213
stack.sh
@ -614,6 +614,130 @@ else
|
||||
install_package $(get_packages $FILES/rpms)
|
||||
fi
|
||||
|
||||
if [[ $SYSLOG != "False" ]]; then
|
||||
install_package rsyslog-relp
|
||||
fi
|
||||
|
||||
if is_service_enabled rabbit; then
|
||||
# Install rabbitmq-server
|
||||
# the temp file is necessary due to LP: #878600
|
||||
tfile=$(mktemp)
|
||||
install_package rabbitmq-server > "$tfile" 2>&1
|
||||
cat "$tfile"
|
||||
rm -f "$tfile"
|
||||
elif is_service_enabled qpid; then
|
||||
if [[ "$os_PACKAGE" = "rpm" ]]; then
|
||||
install_package qpid-cpp-server
|
||||
else
|
||||
install_package qpidd
|
||||
fi
|
||||
fi
|
||||
|
||||
if is_service_enabled mysql; then
|
||||
|
||||
if [[ "$os_PACKAGE" = "deb" ]]; then
|
||||
# Seed configuration with mysql password so that apt-get install doesn't
|
||||
# prompt us for a password upon install.
|
||||
cat <<MYSQL_PRESEED | sudo debconf-set-selections
|
||||
mysql-server-5.1 mysql-server/root_password password $MYSQL_PASSWORD
|
||||
mysql-server-5.1 mysql-server/root_password_again password $MYSQL_PASSWORD
|
||||
mysql-server-5.1 mysql-server/start_on_boot boolean true
|
||||
MYSQL_PRESEED
|
||||
fi
|
||||
|
||||
# while ``.my.cnf`` is not needed for openstack to function, it is useful
|
||||
# as it allows you to access the mysql databases via ``mysql nova`` instead
|
||||
# of having to specify the username/password each time.
|
||||
if [[ ! -e $HOME/.my.cnf ]]; then
|
||||
cat <<EOF >$HOME/.my.cnf
|
||||
[client]
|
||||
user=$MYSQL_USER
|
||||
password=$MYSQL_PASSWORD
|
||||
host=$MYSQL_HOST
|
||||
EOF
|
||||
chmod 0600 $HOME/.my.cnf
|
||||
fi
|
||||
# Install mysql-server
|
||||
install_package mysql-server
|
||||
fi
|
||||
|
||||
if is_service_enabled quantum; then
|
||||
if [[ "$Q_PLUGIN" = "linuxbridge" ]]; then
|
||||
# Install deps
|
||||
# FIXME add to files/apts/quantum, but don't install if not needed!
|
||||
install_package python-configobj
|
||||
fi
|
||||
fi
|
||||
|
||||
if is_service_enabled horizon; then
|
||||
if [[ "$os_PACKAGE" = "deb" ]]; then
|
||||
# Install apache2, which is NOPRIME'd
|
||||
install_package apache2 libapache2-mod-wsgi
|
||||
else
|
||||
sudo rm -f /etc/httpd/conf.d/000-*
|
||||
install_package httpd mod_wsgi
|
||||
fi
|
||||
fi
|
||||
|
||||
if is_service_enabled q-agt; then
|
||||
if [[ "$Q_PLUGIN" = "openvswitch" ]]; then
|
||||
# Install deps
|
||||
# FIXME add to files/apts/quantum, but don't install if not needed!
|
||||
if [[ "$os_PACKAGE" = "deb" ]]; then
|
||||
kernel_version=`cat /proc/version | cut -d " " -f3`
|
||||
install_package make fakeroot dkms openvswitch-switch openvswitch-datapath-dkms linux-headers-$kernel_version
|
||||
else
|
||||
### FIXME(dtroyer): Find RPMs for OpenVSwitch
|
||||
echo "OpenVSwitch packages need to be located"
|
||||
fi
|
||||
elif [[ "$Q_PLUGIN" = "linuxbridge" ]]; then
|
||||
install_package bridge-utils
|
||||
fi
|
||||
fi
|
||||
|
||||
if is_service_enabled n-cpu; then
|
||||
|
||||
# Virtualization Configuration
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
if [[ "$os_PACKAGE" = "deb" ]]; then
|
||||
LIBVIRT_PKG_NAME=libvirt-bin
|
||||
else
|
||||
LIBVIRT_PKG_NAME=libvirt
|
||||
fi
|
||||
install_package $LIBVIRT_PKG_NAME
|
||||
# Install and configure **LXC** if specified. LXC is another approach to
|
||||
# splitting a system into many smaller parts. LXC uses cgroups and chroot
|
||||
# to simulate multiple systems.
|
||||
if [[ "$LIBVIRT_TYPE" == "lxc" ]]; then
|
||||
if [[ "$os_PACKAGE" = "deb" ]]; then
|
||||
if [[ "$DISTRO" > natty ]]; then
|
||||
install_package cgroup-lite
|
||||
fi
|
||||
else
|
||||
### FIXME(dtroyer): figure this out
|
||||
echo "RPM-based cgroup not implemented yet"
|
||||
yum_install libcgroup-tools
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if is_service_enabled swift; then
|
||||
# Install memcached for swift.
|
||||
install_package memcached
|
||||
fi
|
||||
|
||||
TRACK_DEPENDS=${TRACK_DEPENDS:-False}
|
||||
|
||||
# Install python packages into a virtualenv so that we can track them
|
||||
if [[ $TRACK_DEPENDS = True ]] ; then
|
||||
install_package python-virtualenv
|
||||
|
||||
rm -rf $DEST/.venv
|
||||
virtualenv --system-site-packages $DEST/.venv
|
||||
source $DEST/.venv/bin/activate
|
||||
$DEST/.venv/bin/pip freeze > $DEST/requires-pre-pip
|
||||
fi
|
||||
|
||||
# Install python requirements
|
||||
pip_install $(get_packages $FILES/pips | sort -u)
|
||||
|
||||
@ -671,7 +795,6 @@ if is_service_enabled cinder; then
|
||||
install_cinder
|
||||
fi
|
||||
|
||||
|
||||
# Initialization
|
||||
# ==============
|
||||
|
||||
@ -715,12 +838,19 @@ if is_service_enabled cinder; then
|
||||
configure_cinder
|
||||
fi
|
||||
|
||||
if [[ $TRACK_DEPENDS = True ]] ; then
|
||||
$DEST/.venv/bin/pip freeze > $DEST/requires-post-pip
|
||||
if ! diff -Nru $DEST/requires-pre-pip $DEST/requires-post-pip > $DEST/requires.diff ; then
|
||||
cat $DEST/requires.diff
|
||||
fi
|
||||
echo "Ran stack.sh in depend tracking mode, bailing out now"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Syslog
|
||||
# ------
|
||||
|
||||
if [[ $SYSLOG != "False" ]]; then
|
||||
install_package rsyslog-relp
|
||||
if [[ "$SYSLOG_HOST" = "$HOST_IP" ]]; then
|
||||
# Configure the master host to receive
|
||||
cat <<EOF >/tmp/90-stack-m.conf
|
||||
@ -743,12 +873,7 @@ fi
|
||||
# --------------
|
||||
|
||||
if is_service_enabled rabbit; then
|
||||
# Install and start rabbitmq-server
|
||||
# the temp file is necessary due to LP: #878600
|
||||
tfile=$(mktemp)
|
||||
install_package rabbitmq-server > "$tfile" 2>&1
|
||||
cat "$tfile"
|
||||
rm -f "$tfile"
|
||||
# Start rabbitmq-server
|
||||
if [[ "$os_PACKAGE" = "rpm" ]]; then
|
||||
# RPM doesn't start the service
|
||||
restart_service rabbitmq-server
|
||||
@ -756,45 +881,17 @@ if is_service_enabled rabbit; then
|
||||
# change the rabbit password since the default is "guest"
|
||||
sudo rabbitmqctl change_password guest $RABBIT_PASSWORD
|
||||
elif is_service_enabled qpid; then
|
||||
if [[ "$os_PACKAGE" = "rpm" ]]; then
|
||||
install_package qpid-cpp-server
|
||||
restart_service qpidd
|
||||
else
|
||||
install_package qpidd
|
||||
fi
|
||||
restart_service qpidd
|
||||
fi
|
||||
|
||||
|
||||
# Mysql
|
||||
# -----
|
||||
|
||||
|
||||
if is_service_enabled mysql; then
|
||||
|
||||
if [[ "$os_PACKAGE" = "deb" ]]; then
|
||||
# Seed configuration with mysql password so that apt-get install doesn't
|
||||
# prompt us for a password upon install.
|
||||
cat <<MYSQL_PRESEED | sudo debconf-set-selections
|
||||
mysql-server-5.1 mysql-server/root_password password $MYSQL_PASSWORD
|
||||
mysql-server-5.1 mysql-server/root_password_again password $MYSQL_PASSWORD
|
||||
mysql-server-5.1 mysql-server/start_on_boot boolean true
|
||||
MYSQL_PRESEED
|
||||
fi
|
||||
|
||||
# while ``.my.cnf`` is not needed for openstack to function, it is useful
|
||||
# as it allows you to access the mysql databases via ``mysql nova`` instead
|
||||
# of having to specify the username/password each time.
|
||||
if [[ ! -e $HOME/.my.cnf ]]; then
|
||||
cat <<EOF >$HOME/.my.cnf
|
||||
[client]
|
||||
user=$MYSQL_USER
|
||||
password=$MYSQL_PASSWORD
|
||||
host=$MYSQL_HOST
|
||||
EOF
|
||||
chmod 0600 $HOME/.my.cnf
|
||||
fi
|
||||
|
||||
# Install and start mysql-server
|
||||
install_package mysql-server
|
||||
#start mysql-server
|
||||
if [[ "$os_PACKAGE" = "rpm" ]]; then
|
||||
# RPM doesn't start the service
|
||||
start_service mysqld
|
||||
@ -904,10 +1001,8 @@ if is_service_enabled horizon; then
|
||||
sudo mkdir -p $HORIZON_DIR/.blackhole
|
||||
|
||||
if [[ "$os_PACKAGE" = "deb" ]]; then
|
||||
# Install apache2, which is NOPRIME'd
|
||||
APACHE_NAME=apache2
|
||||
APACHE_CONF=sites-available/horizon
|
||||
install_package apache2 libapache2-mod-wsgi
|
||||
# Clean up the old config name
|
||||
sudo rm -f /etc/apache2/sites-enabled/000-default
|
||||
# Be a good citizen and use the distro tools here
|
||||
@ -917,8 +1012,6 @@ if is_service_enabled horizon; then
|
||||
# Install httpd, which is NOPRIME'd
|
||||
APACHE_NAME=httpd
|
||||
APACHE_CONF=conf.d/horizon.conf
|
||||
sudo rm -f /etc/httpd/conf.d/000-*
|
||||
install_package httpd mod_wsgi
|
||||
sudo sed '/^Listen/s/^.*$/Listen 0.0.0.0:80/' -i /etc/httpd/conf/httpd.conf
|
||||
fi
|
||||
## Configure apache to run horizon
|
||||
@ -1028,9 +1121,6 @@ if is_service_enabled quantum; then
|
||||
Q_PLUGIN_CLASS="quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2"
|
||||
fi
|
||||
elif [[ "$Q_PLUGIN" = "linuxbridge" ]]; then
|
||||
# Install deps
|
||||
# FIXME add to files/apts/quantum, but don't install if not needed!
|
||||
install_package python-configobj
|
||||
Q_PLUGIN_CONF_PATH=etc/quantum/plugins/linuxbridge
|
||||
Q_PLUGIN_CONF_FILENAME=linuxbridge_conf.ini
|
||||
Q_DB_NAME="quantum_linux_bridge"
|
||||
@ -1104,15 +1194,6 @@ fi
|
||||
# Quantum agent (for compute nodes)
|
||||
if is_service_enabled q-agt; then
|
||||
if [[ "$Q_PLUGIN" = "openvswitch" ]]; then
|
||||
# Install deps
|
||||
# FIXME add to files/apts/quantum, but don't install if not needed!
|
||||
if [[ "$os_PACKAGE" = "deb" ]]; then
|
||||
kernel_version=`cat /proc/version | cut -d " " -f3`
|
||||
install_package make fakeroot dkms openvswitch-switch openvswitch-datapath-dkms linux-headers-$kernel_version
|
||||
else
|
||||
### FIXME(dtroyer): Find RPMs for OpenVSwitch
|
||||
echo "OpenVSwitch packages need to be located"
|
||||
fi
|
||||
# Set up integration bridge
|
||||
OVS_BRIDGE=${OVS_BRIDGE:-br-int}
|
||||
for PORT in `sudo ovs-vsctl --no-wait list-ports $OVS_BRIDGE`; do
|
||||
@ -1126,8 +1207,7 @@ if is_service_enabled q-agt; then
|
||||
AGENT_BINARY="$QUANTUM_DIR/quantum/plugins/openvswitch/agent/ovs_quantum_agent.py"
|
||||
elif [[ "$Q_PLUGIN" = "linuxbridge" ]]; then
|
||||
# Start up the quantum <-> linuxbridge agent
|
||||
install_package bridge-utils
|
||||
#set the default network interface
|
||||
# set the default network interface
|
||||
QUANTUM_LB_PRIVATE_INTERFACE=${QUANTUM_LB_PRIVATE_INTERFACE:-$GUEST_INTERFACE_DEFAULT}
|
||||
sudo sed -i -e "s/^physical_interface = .*$/physical_interface = $QUANTUM_LB_PRIVATE_INTERFACE/g" /$Q_PLUGIN_CONF_FILE
|
||||
AGENT_BINARY="$QUANTUM_DIR/quantum/plugins/linuxbridge/agent/linuxbridge_quantum_agent.py"
|
||||
@ -1273,15 +1353,6 @@ function clean_iptables() {
|
||||
|
||||
if is_service_enabled n-cpu; then
|
||||
|
||||
# Virtualization Configuration
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
if [[ "$os_PACKAGE" = "deb" ]]; then
|
||||
LIBVIRT_PKG_NAME=libvirt-bin
|
||||
else
|
||||
LIBVIRT_PKG_NAME=libvirt
|
||||
fi
|
||||
install_package $LIBVIRT_PKG_NAME
|
||||
|
||||
# Force IP forwarding on, just on case
|
||||
sudo sysctl -w net.ipv4.ip_forward=1
|
||||
|
||||
@ -1304,9 +1375,7 @@ if is_service_enabled n-cpu; then
|
||||
# to simulate multiple systems.
|
||||
if [[ "$LIBVIRT_TYPE" == "lxc" ]]; then
|
||||
if [[ "$os_PACKAGE" = "deb" ]]; then
|
||||
if [[ "$DISTRO" > natty ]]; then
|
||||
install_package cgroup-lite
|
||||
else
|
||||
if [[ ! "$DISTRO" > natty ]]; then
|
||||
cgline="none /cgroup cgroup cpuacct,memory,devices,cpu,freezer,blkio 0 0"
|
||||
sudo mkdir -p /cgroup
|
||||
if ! grep -q cgroup /etc/fstab; then
|
||||
@ -1316,10 +1385,6 @@ if is_service_enabled n-cpu; then
|
||||
sudo mount /cgroup
|
||||
fi
|
||||
fi
|
||||
else
|
||||
### FIXME(dtroyer): figure this out
|
||||
echo "RPM-based cgroup not implemented yet"
|
||||
yum_install libcgroup-tools
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -1414,8 +1479,6 @@ fi
|
||||
# ---------------
|
||||
|
||||
if is_service_enabled swift; then
|
||||
# Install memcached for swift.
|
||||
install_package memcached
|
||||
|
||||
# We make sure to kill all swift processes first
|
||||
swift-init all stop || true
|
||||
|
Loading…
Reference in New Issue
Block a user