mynote/openstack/apt_download.sh
2019-01-30 17:25:35 +08:00

101 lines
2.3 KiB
Bash

#!/usr/bin/env bash
filepath=$(cd "$(dirname "$0")"; pwd)
sudo apt update
sudo apt -y install software-properties-common
REPO=cloud-archive:queens
SRC_FILE=cloudarchive-queens.list
sudo add-apt-repository "$REPO"
if [ -f "/etc/apt/sources.list.d/$SRC_FILE" ]; then
sudo apt update \
-o Dir::Etc::sourcelist="sources.list.d/$SRC_FILE" \
-o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
else
echo "ERROR: apt source not found: /etc/apt/sources.list.d/$SRC_FILE"
exit 1
fi
function apt_download {
echo "apt_download: $*"
sudo apt install -y --download-only "$@"
}
rm -rf /var/cache/apt/archives/*
apt_download python-openstackclient curl tree
# MySQL, RabbitMQ
apt_download mariadb-server python-mysqldb rabbitmq-server
# NoSQL database (MongoDB)
apt_download mongodb-server mongodb-clients python-pymongo
# Other dependencies
apt_download python-argparse python-dev python-pip
# Keystone
apt_download keystone python-openstackclient apache2 \
libapache2-mod-wsgi memcached python-memcache
# Glance
apt_download glance python-glanceclient
# Nova Controller
apt_download nova-api nova-conductor nova-consoleauth \
nova-novncproxy nova-scheduler
# Placement Controller
apt_download nova-placement-api
# Neutron Controller
apt_download neutron-server neutron-plugin-ml2 \
neutron-linuxbridge-agent neutron-dhcp-agent \
neutron-metadata-agent neutron-l3-agent python-neutronclient conntrack
# Cinder Controller
apt_download cinder-api cinder-scheduler python-cinderclient
# Horizon
apt_download openstack-dashboard
# Cinder Volumes
apt_download lvm2 cinder-volume thin-provisioning-tools
# Nova Compute
apt_download nova-compute nova-compute-qemu qemu sysfsutils
# Neutron Compute
apt_download neutron-linuxbridge-agent
# Heat
apt_download heat-api heat-api-cfn heat-engine python-heatclient
# Swift Controller
apt_download swift swift-proxy python-swiftclient \
python-keystoneclient python-keystonemiddleware \
memcached
# Swift Storage
apt_download xfsprogs rsync \
swift swift-account swift-container swift-object
# PXE server
apt_download bind9 isc-dhcp-server apache2 tftpd-hpa inetutils-inetd vlan \
iptables-persistent
p="$filepath/`date +%Y-%m-%d-%H-%M`"
mkdir $p
cp -r /var/cache/apt/archives/* $p