commit
2274a07e1f
|
@ -1,75 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; version 2 of the License.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
set -e
|
|
||||||
init_config() {
|
|
||||||
mkdir "${CONFDIR}"
|
|
||||||
echo "Generating config file in ${CONFFILE}..."
|
|
||||||
touch "${CONFFILE}"
|
|
||||||
echo "[mysqld]" >> ${CONFFILE}
|
|
||||||
echo "pid-file=${RUNDIR}/mysqld.pid" >> ${CONFFILE}
|
|
||||||
echo "socket=${RUNDIR}/mysqld.sock" >> ${CONFFILE}
|
|
||||||
echo "datadir=${DATADIR}" >> ${CONFFILE}
|
|
||||||
echo "log-error=${LOGDIR}/error.log" >> ${CONFFILE}
|
|
||||||
echo "secure-file-priv=${FILESDIR}" >> ${CONFFILE}
|
|
||||||
echo "basedir=${BASEDIR}" >> ${CONFFILE}
|
|
||||||
echo "[mysql]" >> ${CONFFILE}
|
|
||||||
echo "socket=${RUNDIR}/mysqld.sock" >> ${CONFFILE}
|
|
||||||
echo "Done"
|
|
||||||
}
|
|
||||||
|
|
||||||
init_database() {
|
|
||||||
echo "Initializing new database in ${DATADIR}..."
|
|
||||||
mkdir "${DATADIR}"
|
|
||||||
mysqld --defaults-file="${CONFFILE}" --initialize
|
|
||||||
echo "Done"
|
|
||||||
cat ${LOGDIR}/error.log | grep "temporary password"
|
|
||||||
}
|
|
||||||
|
|
||||||
USERID=$(id -u)
|
|
||||||
if [ "${USERID}" = "0" ];then
|
|
||||||
MYSQL_SNAPDIR="${SNAP_COMMON}"
|
|
||||||
else
|
|
||||||
MYSQL_SNAPDIR="${SNAP_USER_COMMON}"
|
|
||||||
fi
|
|
||||||
DATADIR="${MYSQL_SNAPDIR}/data"
|
|
||||||
RUNDIR="${MYSQL_SNAPDIR}/run"
|
|
||||||
LOGDIR="${MYSQL_SNAPDIR}/log"
|
|
||||||
CONFDIR="${MYSQL_SNAPDIR}/conf"
|
|
||||||
CONFFILE="${CONFDIR}/my.cnf"
|
|
||||||
FILESDIR="${MYSQL_SNAPDIR}/files"
|
|
||||||
BASEDIR="${SNAP}/usr"
|
|
||||||
|
|
||||||
[ -d "${LOGDIR}" ] || mkdir "${LOGDIR}"
|
|
||||||
[ -f "${LOGDIR}/error.log" ] || touch "${LOGDIR}/error.log"
|
|
||||||
[ -d "${FILESDIR}" ] || mkdir "${FILESDIR}"
|
|
||||||
[ -d "${RUNDIR}" ] || mkdir "${RUNDIR}"
|
|
||||||
[ -d "${CONFDIR}" ] || init_config
|
|
||||||
[ -d "${DATADIR}" ] || init_database
|
|
||||||
|
|
||||||
if [ "${USERID}" = "0" ];
|
|
||||||
then
|
|
||||||
# Ensure mysql user exists and that the correct permissions are set on various directories
|
|
||||||
getent group mysql || addgroup mysql
|
|
||||||
adduser --system --disabled-login --ingroup mysql --home /nonexistent --gecos "MySQL Server" --shell /bin/false mysql >/dev/null
|
|
||||||
chown -R mysql:mysql "${LOGDIR}" "${FILESDIR}" "${DATADIR}" "${RUNDIR}"
|
|
||||||
chmod 750 "${LOGDIR}" "${DATADIR}"
|
|
||||||
chmod 770 "${FILESDIR}"
|
|
||||||
chmod 755 "${RUNDIR}"
|
|
||||||
VARS="--user=mysql"
|
|
||||||
fi
|
|
||||||
echo "user=root" >> ${CONFFILE}
|
|
||||||
echo "password=`sudo cat /var/snap/microstack/common/log/error.log | grep "temporary password" | cut -d " " -f11`" >> ${CONFFILE}
|
|
|
@ -0,0 +1,186 @@
|
||||||
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
# Install conf.d configuration from snap for db etc
|
||||||
|
for project in neutron nova keystone glance; do
|
||||||
|
mkdir -p ${SNAP_COMMON}/etc/${project}/${project}.conf.d
|
||||||
|
cp -r ${SNAP}/etc/${project}/${project}.conf.d/* ${SNAP_COMMON}/etc/${project}/${project}.conf.d
|
||||||
|
done
|
||||||
|
|
||||||
|
# Create all of the databases
|
||||||
|
for db in neutron nova nova_api nova_cell0 cinder glance keystone; do
|
||||||
|
echo "CREATE DATABASE IF NOT EXISTS ${db}; GRANT ALL PRIVILEGES ON ${db}.* TO '${db}'@'localhost' IDENTIFIED BY '${db}';" \
|
||||||
|
| mysql-start-client -u root
|
||||||
|
done
|
||||||
|
|
||||||
|
# Grant nova user access to cell0
|
||||||
|
echo "GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';" | mysql-start-client -u root
|
||||||
|
|
||||||
|
# RabbitMQ
|
||||||
|
echo "rabbit setup"
|
||||||
|
export HOME=$SNAP_COMMON/lib/rabbitmq # TODO: unset this?
|
||||||
|
# Rabbitmq isn't always started when we run this. Wait for it to start.
|
||||||
|
# TODO: develop this a bit more -- not 100% that this does what we want.
|
||||||
|
while :;
|
||||||
|
do
|
||||||
|
grep "Starting broker... completed" /var/snap/microstack/common/log/rabbitmq/startup_log && break
|
||||||
|
echo "waiting for rabbitmq to start" && sleep 1;
|
||||||
|
done
|
||||||
|
|
||||||
|
rabbitmqctl add_user openstack rabbitmq || true
|
||||||
|
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
|
||||||
|
|
||||||
|
# Keystone
|
||||||
|
echo "keystone setup"
|
||||||
|
|
||||||
|
snap-openstack keystone-manage fernet_setup --keystone-user root --keystone-group root
|
||||||
|
snap-openstack keystone-manage db_sync
|
||||||
|
|
||||||
|
systemctl restart snap.microstack.keystone-*
|
||||||
|
|
||||||
|
openstack user show admin || {
|
||||||
|
snap-openstack keystone-manage bootstrap \
|
||||||
|
--bootstrap-password $OS_PASSWORD \
|
||||||
|
--bootstrap-admin-url http://localhost:5000/v3/ \
|
||||||
|
--bootstrap-internal-url http://localhost:5000/v3/ \
|
||||||
|
--bootstrap-public-url http://localhost:5000/v3/ \
|
||||||
|
--bootstrap-region-id RegionOne
|
||||||
|
}
|
||||||
|
|
||||||
|
openstack project show service || {
|
||||||
|
openstack project create --domain default --description "Service Project" service
|
||||||
|
}
|
||||||
|
|
||||||
|
# Nova
|
||||||
|
echo "nova setup"
|
||||||
|
|
||||||
|
openstack user show nova || {
|
||||||
|
openstack user create --domain default --password nova nova
|
||||||
|
openstack role add --project service --user nova admin
|
||||||
|
}
|
||||||
|
|
||||||
|
openstack user show placement || {
|
||||||
|
openstack user create --domain default --password placement placement
|
||||||
|
openstack role add --project service --user placement admin
|
||||||
|
}
|
||||||
|
|
||||||
|
openstack service show compute || {
|
||||||
|
openstack service create --name nova \
|
||||||
|
--description "OpenStack Compute" compute
|
||||||
|
|
||||||
|
for endpoint in public internal admin; do
|
||||||
|
openstack endpoint create --region RegionOne \
|
||||||
|
compute $endpoint http://localhost:8774/v2.1 || :
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
openstack service show placement || {
|
||||||
|
openstack service create --name placement \
|
||||||
|
--description "Placement API" placement
|
||||||
|
|
||||||
|
for endpoint in public internal admin; do
|
||||||
|
openstack endpoint create --region RegionOne \
|
||||||
|
placement $endpoint http://localhost:8778 || :
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
snap-openstack nova-manage api_db sync
|
||||||
|
snap-openstack nova-manage cell_v2 list_cells | grep cell0 || {
|
||||||
|
snap-openstack nova-manage cell_v2 map_cell0
|
||||||
|
}
|
||||||
|
snap-openstack nova-manage cell_v2 list_cells | grep cell1 || {
|
||||||
|
snap-openstack nova-manage cell_v2 create_cell --name=cell1 --verbose
|
||||||
|
}
|
||||||
|
snap-openstack nova-manage db sync
|
||||||
|
|
||||||
|
systemctl restart snap.microstack.nova-*
|
||||||
|
|
||||||
|
while ! nc -z localhost 8774; do sleep 0.1; done;
|
||||||
|
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
openstack flavor show m1.tiny || {
|
||||||
|
openstack flavor create --id 1 --ram 512 --disk 1 --vcpus 1 m1.tiny
|
||||||
|
}
|
||||||
|
openstack flavor show m1.small || {
|
||||||
|
openstack flavor create --id 2 --ram 2048 --disk 20 --vcpus 1 m1.small
|
||||||
|
}
|
||||||
|
openstack flavor show m1.medium || {
|
||||||
|
openstack flavor create --id 3 --ram 4096 --disk 20 --vcpus 2 m1.medium
|
||||||
|
}
|
||||||
|
openstack flavor show m1.large || {
|
||||||
|
openstack flavor create --id 4 --ram 8192 --disk 20 --vcpus 4 m1.large
|
||||||
|
}
|
||||||
|
openstack flavor show m1.xlarge || {
|
||||||
|
openstack flavor create --id 5 --ram 16384 --disk 20 --vcpus 8 m1.xlarge
|
||||||
|
}
|
||||||
|
|
||||||
|
# Neutron
|
||||||
|
echo "neutron setup"
|
||||||
|
|
||||||
|
openstack user show neutron || {
|
||||||
|
openstack user create --domain default --password neutron neutron
|
||||||
|
openstack role add --project service --user neutron admin
|
||||||
|
}
|
||||||
|
|
||||||
|
openstack service show network || {
|
||||||
|
openstack service create --name neutron \
|
||||||
|
--description "OpenStack Network" network
|
||||||
|
|
||||||
|
for endpoint in public internal admin; do
|
||||||
|
openstack endpoint create --region RegionOne \
|
||||||
|
network $endpoint http://localhost:9696 || :
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
snap-openstack neutron-db-manage upgrade head
|
||||||
|
|
||||||
|
systemctl restart snap.microstack.neutron-*
|
||||||
|
|
||||||
|
while ! nc -z localhost 9696; do sleep 0.1; done;
|
||||||
|
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
openstack network show test || {
|
||||||
|
openstack network create test
|
||||||
|
}
|
||||||
|
|
||||||
|
openstack subnet show test-subnet || {
|
||||||
|
openstack subnet create --network test --subnet-range 192.168.222.0/24 test-subnet
|
||||||
|
}
|
||||||
|
|
||||||
|
# Glance
|
||||||
|
echo "glance setup"
|
||||||
|
|
||||||
|
openstack user show glance || {
|
||||||
|
openstack user create --domain default --password glance glance
|
||||||
|
openstack role add --project service --user glance admin
|
||||||
|
}
|
||||||
|
|
||||||
|
openstack service show image || {
|
||||||
|
openstack service create --name glance --description "OpenStack Image" image
|
||||||
|
for endpoint in internal admin public; do
|
||||||
|
openstack endpoint create --region RegionOne \
|
||||||
|
image $endpoint http://localhost:9292 || :
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
snap-openstack glance-manage db_sync
|
||||||
|
|
||||||
|
systemctl restart snap.microstack.glance*
|
||||||
|
|
||||||
|
while ! nc -z localhost 9292; do sleep 0.1; done;
|
||||||
|
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
openstack image show cirros || {
|
||||||
|
[ -f $HOME/images/cirros-0.3.5-x86_64-disk.img ] || {
|
||||||
|
export http_proxy=$SNAPSTACK_HTTP_PROXY
|
||||||
|
mkdir -p $HOME/images
|
||||||
|
wget \
|
||||||
|
http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img \
|
||||||
|
-O ${HOME}/images/cirros-0.3.5-x86_64-disk.img
|
||||||
|
unset http_proxy
|
||||||
|
}
|
||||||
|
openstack image create --file ${HOME}/images/cirros-0.3.5-x86_64-disk.img \
|
||||||
|
--public --container-format=bare --disk-format=qcow2 cirros
|
||||||
|
}
|
|
@ -1,3 +1,4 @@
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
api_workers = 4
|
api_workers = 4
|
||||||
rpc_workers = 4
|
rpc_workers = 4
|
||||||
|
metadata_workers = 4
|
|
@ -1,7 +1,11 @@
|
||||||
# Snap provided defaults for neutron-openvswitch-agent
|
# Snap provided defaults for neutron-openvswitch-agent
|
||||||
[securitygroup]
|
[securitygroup]
|
||||||
enable_security_group = True
|
enable_security_group = True
|
||||||
firewall_driver = iptables_hybrid
|
firewall_driver = openvswitch
|
||||||
|
|
||||||
[AGENT]
|
[AGENT]
|
||||||
tunnel_types = geneve,vxlan,gre
|
tunnel_types = geneve,vxlan,gre
|
||||||
|
|
||||||
|
[ovs]
|
||||||
|
local_ip = 127.0.0.1
|
||||||
|
bridge_mappings = physnet1:br-ex
|
|
@ -6,3 +6,4 @@ disable_rootwrap = True
|
||||||
|
|
||||||
[libvirt]
|
[libvirt]
|
||||||
virt_type = kvm
|
virt_type = kvm
|
||||||
|
cpu_mode = host-passthrough
|
|
@ -1,7 +1,3 @@
|
||||||
[DEFAULT]
|
|
||||||
use_neutron = True
|
|
||||||
firewall_driver = nova.virt.firewall.NoopFirewallDriver
|
|
||||||
|
|
||||||
[neutron]
|
[neutron]
|
||||||
url = http://localhost:9696
|
url = http://localhost:9696
|
||||||
auth_url = http://localhost:5000
|
auth_url = http://localhost:5000
|
||||||
|
@ -13,3 +9,5 @@ region_name = RegionOne
|
||||||
project_name = service
|
project_name = service
|
||||||
username = neutron
|
username = neutron
|
||||||
password = neutron
|
password = neutron
|
||||||
|
service_metadata_proxy = True
|
||||||
|
metadata_proxy_shared_secret = supersecret
|
|
@ -21,6 +21,7 @@ setup:
|
||||||
- "{snap_common}/lock"
|
- "{snap_common}/lock"
|
||||||
- "{snap_common}/log"
|
- "{snap_common}/log"
|
||||||
- "{snap_common}/run"
|
- "{snap_common}/run"
|
||||||
|
- "{snap_common}/instances"
|
||||||
templates:
|
templates:
|
||||||
keystone-nginx.conf.j2: "{snap_common}/etc/nginx/snap/sites-enabled/keystone.conf"
|
keystone-nginx.conf.j2: "{snap_common}/etc/nginx/snap/sites-enabled/keystone.conf"
|
||||||
keystone-snap.conf.j2: "{snap_common}/etc/keystone/keystone.conf.d/keystone-snap.conf"
|
keystone-snap.conf.j2: "{snap_common}/etc/keystone/keystone.conf.d/keystone-snap.conf"
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
exec "$SNAP/sbin/libvirtd"
|
|
@ -1,18 +0,0 @@
|
||||||
#!/bin/sh -e
|
|
||||||
|
|
||||||
if [ "$SNAP_ARCH" = "amd64" ]; then
|
|
||||||
ARCH="x86_64-linux-gnu"
|
|
||||||
elif [ "$SNAP_ARCH" = "armhf" ]; then
|
|
||||||
ARCH="arm-linux-gnueabihf"
|
|
||||||
elif [ "$SNAP_ARCH" = "arm64" ]; then
|
|
||||||
ARCH="aarch64-linux-gnu"
|
|
||||||
else
|
|
||||||
ARCH="$SNAP_ARCH-linux-gnu"
|
|
||||||
fi
|
|
||||||
|
|
||||||
driver="$(snapctl get driver)"
|
|
||||||
|
|
||||||
if [ "$driver" = "LIBVIRT" ]; then
|
|
||||||
export LD_LIBRARY_PATH=$SNAP/lib/$ARCH:$SNAP/usr/lib/$ARCH:$LD_LIBRARY_PATH
|
|
||||||
exec $SNAP/sbin/libvirtd
|
|
||||||
fi
|
|
|
@ -1,16 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
export OVS_LOGDIR=${SNAP_COMMON}/log/openvswitch
|
|
||||||
export OVS_RUNDIR=${SNAP_COMMON}/run/openvswitch
|
|
||||||
export OVS_SYSCONFDIR=${SNAP_COMMON}/etc
|
|
||||||
export OVS_PKGDATADIR=${SNAP}/share/openvswitch
|
|
||||||
export OVS_BINDIR=${SNAP}/bin
|
|
||||||
export OVS_SBINDIR=${SNAP}/sbin
|
|
||||||
|
|
||||||
mkdir -p ${OVS_LOGDIR}
|
|
||||||
mkdir -p ${OVS_RUNDIR}
|
|
||||||
mkdir -p ${OVS_SYSCONFDIR}/openvswitch
|
|
||||||
|
|
||||||
exec $@
|
|
|
@ -1,49 +0,0 @@
|
||||||
#!/bin/bash -e
|
|
||||||
|
|
||||||
# Openstack Prep
|
|
||||||
# which openstack || echo "This snap currently requires the python openstack client to be installed and in your path. The intent is to add the client in before development is complete."; exit 1
|
|
||||||
|
|
||||||
# QEMU Setup
|
|
||||||
echo "qemu setup"
|
|
||||||
driver="$(snapctl get driver)"
|
|
||||||
|
|
||||||
if [[ -n $driver && ! $driver =~ (LIBVIRT|QEMU) ]]; then
|
|
||||||
echo "\"$driver\" is not a supported virtualization driver"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
driver_saved="$(cat $SNAP_COMMON/driver)" || true
|
|
||||||
driver=${driver:-QEMU}
|
|
||||||
driver_saved=${driver_saved:-QEMU}
|
|
||||||
|
|
||||||
if [[ $driver != $driver_saved ]]; then
|
|
||||||
echo "$driver" > $SNAP_COMMON/driver
|
|
||||||
snapctl restart $SNAP_NAME
|
|
||||||
fi
|
|
||||||
|
|
||||||
# MySQL Setup
|
|
||||||
MYSQL_PASSWORD=fnord # TODO use snapctl
|
|
||||||
|
|
||||||
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'fnord';" | mysql-start-client -u root
|
|
||||||
|
|
||||||
# Keystone Setup
|
|
||||||
echo "CREATE DATABASE IF NOT EXISTS keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone';" | mysql-start-client -u root -p"$MYSQL_PASSWORD"
|
|
||||||
|
|
||||||
snap-openstack keystone-manage fernet_setup --keystone-user root --keystone-group root
|
|
||||||
snap-openstack keystone-manage db_sync
|
|
||||||
|
|
||||||
sudo systemctl restart snap.microstack.*
|
|
||||||
|
|
||||||
openstack user show admin || {
|
|
||||||
snap-openstack keystone-manage bootstrap \
|
|
||||||
--bootstrap-password $OS_PASSWORD \
|
|
||||||
--bootstrap-admin-url http://localhost:35357/v3/ \
|
|
||||||
--bootstrap-internal-url http://localhost:35357/v3/ \
|
|
||||||
--bootstrap-public-url http://localhost:5000/v3/ \
|
|
||||||
--bootstrap-region-id RegionOne
|
|
||||||
}
|
|
||||||
|
|
||||||
openstack project show service || {
|
|
||||||
openstack project create --domain default --description "Service Project" service
|
|
||||||
}
|
|
||||||
|
|
|
@ -3,62 +3,3 @@ set -e
|
||||||
|
|
||||||
install -D $SNAP/var/snap/microstack/common/libvirt/libvirtd.conf $SNAP_COMMON/libvirt/libvirtd.conf
|
install -D $SNAP/var/snap/microstack/common/libvirt/libvirtd.conf $SNAP_COMMON/libvirt/libvirtd.conf
|
||||||
sed -i 's/unix_sock_group = "libvirtd"/unix_sock_group = "sudo"/' $SNAP_COMMON/libvirt/libvirtd.conf
|
sed -i 's/unix_sock_group = "libvirtd"/unix_sock_group = "sudo"/' $SNAP_COMMON/libvirt/libvirtd.conf
|
||||||
|
|
||||||
# Mysql setup script
|
|
||||||
set -e
|
|
||||||
init_config() {
|
|
||||||
mkdir "${CONFDIR}"
|
|
||||||
echo "Generating config file in ${CONFFILE}..."
|
|
||||||
touch "${CONFFILE}"
|
|
||||||
echo "[mysqld]" >> ${CONFFILE}
|
|
||||||
echo "pid-file=${RUNDIR}/mysqld.pid" >> ${CONFFILE}
|
|
||||||
echo "socket=${RUNDIR}/mysqld.sock" >> ${CONFFILE}
|
|
||||||
echo "datadir=${DATADIR}" >> ${CONFFILE}
|
|
||||||
echo "log-error=${LOGDIR}/error.log" >> ${CONFFILE}
|
|
||||||
echo "secure-file-priv=${FILESDIR}" >> ${CONFFILE}
|
|
||||||
echo "basedir=${BASEDIR}" >> ${CONFFILE}
|
|
||||||
echo "[mysql]" >> ${CONFFILE}
|
|
||||||
echo "socket=${RUNDIR}/mysqld.sock" >> ${CONFFILE}
|
|
||||||
echo "Done"
|
|
||||||
}
|
|
||||||
|
|
||||||
init_database() {
|
|
||||||
echo "Initializing new database in ${DATADIR}..."
|
|
||||||
mkdir "${DATADIR}"
|
|
||||||
mysqld --defaults-file="${CONFFILE}" --initialize
|
|
||||||
echo "Done"
|
|
||||||
cat ${LOGDIR}/error.log | grep "temporary password"
|
|
||||||
}
|
|
||||||
|
|
||||||
USERID=$(id -u)
|
|
||||||
if [ "${USERID}" = "0" ];then
|
|
||||||
MYSQL_SNAPDIR="${SNAP_COMMON}"
|
|
||||||
else
|
|
||||||
MYSQL_SNAPDIR="${SNAP_USER_COMMON}"
|
|
||||||
fi
|
|
||||||
DATADIR="${MYSQL_SNAPDIR}/data"
|
|
||||||
RUNDIR="${MYSQL_SNAPDIR}/run"
|
|
||||||
LOGDIR="${MYSQL_SNAPDIR}/log"
|
|
||||||
CONFDIR="${MYSQL_SNAPDIR}/conf"
|
|
||||||
CONFFILE="${CONFDIR}/my.cnf"
|
|
||||||
FILESDIR="${MYSQL_SNAPDIR}/files"
|
|
||||||
BASEDIR="${SNAP}/usr"
|
|
||||||
|
|
||||||
[ -d "${LOGDIR}" ] || mkdir "${LOGDIR}"
|
|
||||||
[ -f "${LOGDIR}/error.log" ] || touch "${LOGDIR}/error.log"
|
|
||||||
[ -d "${FILESDIR}" ] || mkdir "${FILESDIR}"
|
|
||||||
[ -d "${RUNDIR}" ] || mkdir "${RUNDIR}"
|
|
||||||
[ -d "${CONFDIR}" ] || init_config
|
|
||||||
[ -d "${DATADIR}" ] || init_database
|
|
||||||
|
|
||||||
if [ "${USERID}" = "0" ];
|
|
||||||
then
|
|
||||||
# Ensure mysql user exists and that the correct permissions are set on various directories
|
|
||||||
getent group mysql || addgroup mysql
|
|
||||||
adduser --system --disabled-login --ingroup mysql --home /nonexistent --gecos "MySQL Server" --shell /bin/false mysql >/dev/null
|
|
||||||
chown -R mysql:mysql "${LOGDIR}" "${FILESDIR}" "${DATADIR}" "${RUNDIR}"
|
|
||||||
chmod 750 "${LOGDIR}" "${DATADIR}"
|
|
||||||
chmod 770 "${FILESDIR}"
|
|
||||||
chmod 755 "${RUNDIR}"
|
|
||||||
VARS="--user=mysql"
|
|
||||||
fi
|
|
||||||
|
|
463
snapcraft.yaml
463
snapcraft.yaml
|
@ -1,5 +1,5 @@
|
||||||
name: microstack
|
name: microstack
|
||||||
version: alpha
|
version: rocky
|
||||||
summary: Openstack on your laptop.
|
summary: Openstack on your laptop.
|
||||||
description: |
|
description: |
|
||||||
Microstack gives you an easy way to develop and test Openstack
|
Microstack gives you an easy way to develop and test Openstack
|
||||||
|
@ -8,7 +8,7 @@ description: |
|
||||||
grade: devel
|
grade: devel
|
||||||
confinement: classic
|
confinement: classic
|
||||||
environment:
|
environment:
|
||||||
LD_LIBRARY_PATH: $SNAP/lib:$SNAP/usr/lib:$SNAP/usr/lib/x86_64-linux-gnu
|
LD_LIBRARY_PATH: $SNAP/lib:$SNAP/lib/$SNAPCRAFT_ARCH_TRIPLET:$SNAP/usr/lib:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET
|
||||||
PATH: $SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH
|
PATH: $SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH
|
||||||
LC_ALL: C
|
LC_ALL: C
|
||||||
OS_PLACEMENT_CONFIG_DIR: $SNAP/etc/nova/
|
OS_PLACEMENT_CONFIG_DIR: $SNAP/etc/nova/
|
||||||
|
@ -28,11 +28,10 @@ apps:
|
||||||
command: openstack
|
command: openstack
|
||||||
plugs:
|
plugs:
|
||||||
- network
|
- network
|
||||||
configure-the-things:
|
configure-openstack:
|
||||||
command: bin/configure-the-things.sh
|
command: configure-openstack
|
||||||
plugs:
|
plugs:
|
||||||
- network
|
- network
|
||||||
- process-control
|
|
||||||
|
|
||||||
# Keystone
|
# Keystone
|
||||||
keystone-uwsgi:
|
keystone-uwsgi:
|
||||||
|
@ -215,10 +214,14 @@ apps:
|
||||||
|
|
||||||
# Libvirt/Qemu
|
# Libvirt/Qemu
|
||||||
libvirt-bin:
|
libvirt-bin:
|
||||||
command: bin/launch-libvirtd
|
command: launch-libvirtd
|
||||||
daemon: simple
|
daemon: simple
|
||||||
|
environment:
|
||||||
|
LD_LIBRARY_PATH: $SNAP/lib:$SNAP/lib/$SNAPCRAFT_ARCH_TRIPLET:$SNAP/usr/lib:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pulseaudio
|
||||||
|
PATH: $SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH
|
||||||
|
LC_ALL: C
|
||||||
virsh:
|
virsh:
|
||||||
command: bin/virsh
|
command: virsh
|
||||||
environment:
|
environment:
|
||||||
PATH: $SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH
|
PATH: $SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH
|
||||||
LC_ALL: C
|
LC_ALL: C
|
||||||
|
@ -267,12 +270,12 @@ apps:
|
||||||
# Cinder
|
# Cinder
|
||||||
cinder-uwsgi:
|
cinder-uwsgi:
|
||||||
command: snap-openstack cinder-uwsgi
|
command: snap-openstack cinder-uwsgi
|
||||||
daemon: simple
|
# daemon: simple
|
||||||
plugs:
|
plugs:
|
||||||
- network-bind
|
- network-bind
|
||||||
cinder-backup:
|
cinder-backup:
|
||||||
command: snap-openstack cinder-backup
|
command: snap-openstack cinder-backup
|
||||||
daemon: simple
|
# daemon: simple
|
||||||
plugs:
|
plugs:
|
||||||
- network
|
- network
|
||||||
cinder-manage:
|
cinder-manage:
|
||||||
|
@ -281,12 +284,12 @@ apps:
|
||||||
- network
|
- network
|
||||||
cinder-scheduler:
|
cinder-scheduler:
|
||||||
command: snap-openstack cinder-scheduler
|
command: snap-openstack cinder-scheduler
|
||||||
daemon: simple
|
# daemon: simple
|
||||||
plugs:
|
plugs:
|
||||||
- network
|
- network
|
||||||
cinder-volume:
|
cinder-volume:
|
||||||
command: snap-openstack cinder-volume
|
command: snap-openstack cinder-volume
|
||||||
daemon: simple
|
# daemon: simple
|
||||||
plugs:
|
plugs:
|
||||||
- network
|
- network
|
||||||
|
|
||||||
|
@ -298,62 +301,26 @@ apps:
|
||||||
- network-bind
|
- network-bind
|
||||||
|
|
||||||
parts:
|
parts:
|
||||||
# Keystone
|
# OpenStack Python Projects, keyed off Keystone
|
||||||
keystone:
|
openstack-projects:
|
||||||
plugin: python
|
plugin: python
|
||||||
python-version: python2
|
python-version: python2
|
||||||
constraints: https://raw.githubusercontent.com/openstack/requirements/stable/rocky/upper-constraints.txt
|
constraints: https://raw.githubusercontent.com/openstack/requirements/stable/rocky/upper-constraints.txt
|
||||||
source: http://tarballs.openstack.org/keystone/keystone-stable-rocky.tar.gz
|
source: http://tarballs.openstack.org/keystone/keystone-stable-rocky.tar.gz
|
||||||
python-packages:
|
|
||||||
- mysql-python
|
|
||||||
- oslo.cache[dogpile]
|
|
||||||
- pymysql
|
|
||||||
- pysqlite
|
|
||||||
- uwsgi
|
|
||||||
- git+https://github.com/openstack/snap.openstack#egg=snap.openstack
|
|
||||||
build-packages:
|
|
||||||
- gcc
|
|
||||||
- libffi-dev
|
|
||||||
- libmysqlclient-dev
|
|
||||||
- libssl-dev
|
|
||||||
- libsqlite3-dev
|
|
||||||
|
|
||||||
configure-the-things:
|
|
||||||
plugin: dump
|
|
||||||
source: src/experiments
|
|
||||||
|
|
||||||
keystone-config:
|
|
||||||
after: [keystone]
|
|
||||||
plugin: dump
|
|
||||||
source: http://tarballs.openstack.org/keystone/keystone-stable-rocky.tar.gz
|
|
||||||
organize:
|
|
||||||
etc/*.conf: etc/keystone/
|
|
||||||
etc/*.ini: etc/keystone/
|
|
||||||
etc/*.json: etc/keystone/
|
|
||||||
etc/*.templates: etc/keystone/
|
|
||||||
|
|
||||||
filesets:
|
|
||||||
etc:
|
|
||||||
- etc/keystone/*.conf
|
|
||||||
- etc/keystone/*.ini
|
|
||||||
- etc/keystone/*.json
|
|
||||||
- etc/keystone/*.templates
|
|
||||||
stage: [$etc]
|
|
||||||
prime: [$etc]
|
|
||||||
|
|
||||||
# Nova
|
|
||||||
nova:
|
|
||||||
after: [keystone] # We abitrarily rely on keystone to be the one to patch things
|
|
||||||
plugin: python
|
|
||||||
python-version: python2
|
|
||||||
source: http://tarballs.openstack.org/nova/nova-stable-rocky.tar.gz
|
|
||||||
python-packages:
|
python-packages:
|
||||||
- libvirt-python
|
- libvirt-python
|
||||||
|
- oslo.cache[dogpile]
|
||||||
- pymysql
|
- pymysql
|
||||||
- uwsgi
|
- uwsgi
|
||||||
- python-memcached
|
|
||||||
- git+https://github.com/openstack/snap.openstack#egg=snap.openstack
|
- git+https://github.com/openstack/snap.openstack#egg=snap.openstack
|
||||||
constraints: https://raw.githubusercontent.com/openstack/requirements/stable/rocky/upper-constraints.txt
|
- http://tarballs.openstack.org/nova/nova-stable-rocky.tar.gz
|
||||||
|
- http://tarballs.openstack.org/neutron/neutron-stable-rocky.tar.gz
|
||||||
|
- http://tarballs.openstack.org/glance/glance-stable-rocky.tar.gz
|
||||||
|
- http://tarballs.openstack.org/cinder/cinder-stable-rocky.tar.gz
|
||||||
|
- http://tarballs.openstack.org/horizon/horizon-stable-rocky.tar.gz
|
||||||
|
- python-cinderclient
|
||||||
|
- python-openstackclient
|
||||||
|
- python-swiftclient
|
||||||
build-packages:
|
build-packages:
|
||||||
- gcc
|
- gcc
|
||||||
- libffi-dev
|
- libffi-dev
|
||||||
|
@ -364,38 +331,48 @@ parts:
|
||||||
stage-packages:
|
stage-packages:
|
||||||
- conntrack
|
- conntrack
|
||||||
- coreutils
|
- coreutils
|
||||||
- qemu-utils
|
- haproxy
|
||||||
|
override-build: |
|
||||||
|
# Ensure libvirt is discovered from previous built part
|
||||||
|
export PKG_CONFIG_PATH=$SNAPCRAFT_STAGE/lib/pkgconfig
|
||||||
|
snapcraftctl build
|
||||||
|
override-prime: |
|
||||||
|
snapcraftctl prime
|
||||||
|
# Now that everything is built, let's disable user site-packages
|
||||||
|
# as stated in PEP-0370
|
||||||
|
sed -i usr/lib/python2.7/site.py -e 's/^ENABLE_USER_SITE = None$/ENABLE_USER_SITE = False/'
|
||||||
|
# This is the last step, let's now compile all our pyc files.
|
||||||
|
# Ignore errors due to syntax issues in foobar python 2.
|
||||||
|
./usr/bin/python2.7 -m compileall . || true
|
||||||
|
|
||||||
|
keystone-config:
|
||||||
|
after: [openstack-projects]
|
||||||
|
plugin: dump
|
||||||
|
source: http://tarballs.openstack.org/keystone/keystone-stable-rocky.tar.gz
|
||||||
|
organize:
|
||||||
|
etc/*.conf: etc/keystone/
|
||||||
|
etc/*.ini: etc/keystone/
|
||||||
|
etc/*.json: etc/keystone/
|
||||||
|
etc/*.templates: etc/keystone/
|
||||||
|
|
||||||
|
filesets:
|
||||||
|
etc:
|
||||||
|
- etc/keystone/*
|
||||||
|
stage: [$etc]
|
||||||
|
prime: [$etc]
|
||||||
|
|
||||||
nova-config:
|
nova-config:
|
||||||
after: [nova]
|
after: [openstack-projects]
|
||||||
plugin: dump
|
plugin: dump
|
||||||
source: http://tarballs.openstack.org/nova/nova-stable-rocky.tar.gz
|
source: http://tarballs.openstack.org/nova/nova-stable-rocky.tar.gz
|
||||||
filesets:
|
filesets:
|
||||||
etc:
|
etc:
|
||||||
- etc/nova/*.conf
|
- etc/nova/*
|
||||||
- etc/nova/*.ini
|
|
||||||
- etc/nova/*.json
|
|
||||||
- etc/nova/rootwrap.d
|
|
||||||
stage: [$etc]
|
stage: [$etc]
|
||||||
prime: [$etc]
|
prime: [$etc]
|
||||||
|
|
||||||
neutron:
|
|
||||||
after: [keystone] # We arbitrarily rely on keystone to patch some things
|
|
||||||
plugin: python
|
|
||||||
python-version: python2
|
|
||||||
source: http://tarballs.openstack.org/neutron/neutron-stable-rocky.tar.gz
|
|
||||||
python-packages:
|
|
||||||
- pymysql
|
|
||||||
- python-memcached
|
|
||||||
- git+https://github.com/openstack/snap.openstack#egg=snap.openstack
|
|
||||||
constraints: https://raw.githubusercontent.com/openstack/requirements/stable/rocky/upper-constraints.txt
|
|
||||||
build-packages:
|
|
||||||
- gcc
|
|
||||||
- libffi-dev
|
|
||||||
- libssl-dev
|
|
||||||
|
|
||||||
neutron-config:
|
neutron-config:
|
||||||
after: [neutron]
|
after: [openstack-projects]
|
||||||
plugin: dump
|
plugin: dump
|
||||||
source: http://tarballs.openstack.org/neutron/neutron-stable-rocky.tar.gz
|
source: http://tarballs.openstack.org/neutron/neutron-stable-rocky.tar.gz
|
||||||
organize:
|
organize:
|
||||||
|
@ -409,31 +386,8 @@ parts:
|
||||||
stage: [$etc]
|
stage: [$etc]
|
||||||
prime: [$etc]
|
prime: [$etc]
|
||||||
|
|
||||||
# Glance
|
|
||||||
glance:
|
|
||||||
after: [keystone] # We arbitrarily rely on keystone to patch some things
|
|
||||||
plugin: python
|
|
||||||
python-version: python2
|
|
||||||
source: http://tarballs.openstack.org/glance/glance-stable-rocky.tar.gz
|
|
||||||
python-packages:
|
|
||||||
- httplib2
|
|
||||||
- os-brick
|
|
||||||
- oslo.rootwrap
|
|
||||||
- oslo.vmware
|
|
||||||
- pymysql
|
|
||||||
- python-cinderclient
|
|
||||||
- python-memcached
|
|
||||||
- python-swiftclient
|
|
||||||
- git+https://github.com/openstack/snap.openstack#egg=snap.openstack
|
|
||||||
constraints: https://raw.githubusercontent.com/openstack/requirements/stable/rocky/upper-constraints.txt
|
|
||||||
build-packages:
|
|
||||||
- gcc
|
|
||||||
- libffi-dev
|
|
||||||
- libssl-dev
|
|
||||||
- libxml2-dev
|
|
||||||
- libxslt1-dev
|
|
||||||
glance-config:
|
glance-config:
|
||||||
after: [glance]
|
after: [openstack-projects]
|
||||||
plugin: dump
|
plugin: dump
|
||||||
source: http://tarballs.openstack.org/glance/glance-stable-rocky.tar.gz
|
source: http://tarballs.openstack.org/glance/glance-stable-rocky.tar.gz
|
||||||
organize:
|
organize:
|
||||||
|
@ -442,14 +396,39 @@ parts:
|
||||||
etc/*.json: etc/glance/
|
etc/*.json: etc/glance/
|
||||||
filesets:
|
filesets:
|
||||||
etc:
|
etc:
|
||||||
- etc/glance/*.conf
|
- etc/glance/*
|
||||||
- etc/glance/*.ini
|
|
||||||
- etc/glance/*.json
|
|
||||||
stage: [$etc]
|
stage: [$etc]
|
||||||
prime: [$etc]
|
prime: [$etc]
|
||||||
|
|
||||||
# Openvswitch
|
cinder-config:
|
||||||
ovs-patches:
|
after: [openstack-projects]
|
||||||
|
plugin: dump
|
||||||
|
source: http://tarballs.openstack.org/cinder/cinder-stable-rocky.tar.gz
|
||||||
|
organize:
|
||||||
|
etc/*.conf: etc/cinder/
|
||||||
|
etc/*.ini: etc/cinder/
|
||||||
|
etc/*.json: etc/cinder/
|
||||||
|
etc/*.templates: etc/cinder/
|
||||||
|
filesets:
|
||||||
|
etc:
|
||||||
|
- etc/cinder/*
|
||||||
|
stage: [$etc]
|
||||||
|
prime: [$etc]
|
||||||
|
|
||||||
|
horizon-config:
|
||||||
|
after: [openstack-projects]
|
||||||
|
plugin: dump
|
||||||
|
source: http://tarballs.openstack.org/horizon/horizon-stable-rocky.tar.gz
|
||||||
|
organize:
|
||||||
|
etc/*.conf: etc/horizon/
|
||||||
|
filesets:
|
||||||
|
etc:
|
||||||
|
- etc/horizon/*
|
||||||
|
stage: [$etc]
|
||||||
|
prime: [$etc]
|
||||||
|
|
||||||
|
# Snap patches
|
||||||
|
patches:
|
||||||
source: patches/
|
source: patches/
|
||||||
plugin: dump
|
plugin: dump
|
||||||
organize:
|
organize:
|
||||||
|
@ -476,8 +455,8 @@ parts:
|
||||||
- "--localstatedir=/var/snap/$SNAPCRAFT_PROJECT_NAME/common"
|
- "--localstatedir=/var/snap/$SNAPCRAFT_PROJECT_NAME/common"
|
||||||
- "--sysconfdir=/var/snap/$SNAPCRAFT_PROJECT_NAME/etc"
|
- "--sysconfdir=/var/snap/$SNAPCRAFT_PROJECT_NAME/etc"
|
||||||
after:
|
after:
|
||||||
- ovs-patches
|
- patches
|
||||||
prepare: |
|
override-build: |
|
||||||
# Apply patches
|
# Apply patches
|
||||||
for patch in ${SNAPCRAFT_STAGE}/patches/openvswitch/*.patch; do
|
for patch in ${SNAPCRAFT_STAGE}/patches/openvswitch/*.patch; do
|
||||||
echo "Applying $(basename "$patch") ..."
|
echo "Applying $(basename "$patch") ..."
|
||||||
|
@ -488,57 +467,49 @@ parts:
|
||||||
--input "$patch"
|
--input "$patch"
|
||||||
echo
|
echo
|
||||||
done
|
done
|
||||||
|
snapcraftctl build
|
||||||
|
|
||||||
ovs-wrapper:
|
ovs-wrapper:
|
||||||
source: conf
|
source: ./snap-wrappers/ovs
|
||||||
plugin: dump
|
plugin: dump
|
||||||
after:
|
after:
|
||||||
- openvswitch
|
- openvswitch
|
||||||
|
organize:
|
||||||
# Openstack Shared Parts
|
ovs-wrapper: bin/ovs-wrapper
|
||||||
templates:
|
|
||||||
after:
|
|
||||||
- keystone-config
|
|
||||||
- nova-config
|
|
||||||
- neutron-config
|
|
||||||
- glance-config
|
|
||||||
- ovs-wrapper
|
|
||||||
- qemu
|
|
||||||
- kvm-support
|
|
||||||
- libvirt
|
|
||||||
- mysql-server
|
|
||||||
- rabbitmq-server
|
|
||||||
- memcached
|
|
||||||
- cinder-config
|
|
||||||
- horizon-config
|
|
||||||
- python-openstackclient
|
|
||||||
plugin: dump
|
|
||||||
source: snap
|
|
||||||
|
|
||||||
nginx:
|
nginx:
|
||||||
after: [keystone, nova, neutron, openvswitch]
|
|
||||||
source: http://www.nginx.org/download/nginx-1.13.0.tar.gz
|
source: http://www.nginx.org/download/nginx-1.13.0.tar.gz
|
||||||
plugin: autotools
|
plugin: autotools
|
||||||
|
after:
|
||||||
|
- patches
|
||||||
configflags:
|
configflags:
|
||||||
- --prefix=/usr
|
- --prefix=/usr
|
||||||
- --http-log-path=/var/snap/microstack/common/log/nginx-access.log
|
- "--http-log-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/log/nginx-access.log"
|
||||||
- --error-log-path=/var/snap/microstack/common/log/nginx-error.log
|
- "--error-log-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/log/nginx-error.log"
|
||||||
- --lock-path=/var/snap/microstack/common/lock/nginx.lock
|
- "--lock-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/lock/nginx.lock"
|
||||||
- --pid-path=/var/snap/microstack/common/run/nginx.pid
|
- "--pid-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/run/nginx.pid"
|
||||||
- --http-client-body-temp-path=/var/snap/microstack/common/lib/nginx_client_body
|
- "--http-client-body-temp-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/lib/nginx_client_body"
|
||||||
- --http-proxy-temp-path=/var/snap/microstack/common/lib/nginx_proxy
|
- "--http-proxy-temp-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/lib/nginx_proxy"
|
||||||
- --http-fastcgi-temp-path=/var/snap/microstack/common/lib/nginx_fastcgi
|
- "--http-fastcgi-temp-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/lib/nginx_fastcgi"
|
||||||
- --http-uwsgi-temp-path=/var/snap/microstack/common/lib/nginx_uwsgi
|
- "--http-uwsgi-temp-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/lib/nginx_uwsgi"
|
||||||
- --http-scgi-temp-path=/var/snap/microstack/common/lib/nginx_scgi
|
- "--http-scgi-temp-path=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/lib/nginx_scgi"
|
||||||
- --with-http_ssl_module
|
- --with-http_ssl_module
|
||||||
build-packages:
|
build-packages:
|
||||||
- libpcre3-dev
|
- libpcre3-dev
|
||||||
- libssl-dev
|
- libssl-dev
|
||||||
- python-six
|
- python-six
|
||||||
prepare: |
|
override-build: |
|
||||||
export SNAP_ROOT="../../.."
|
# Apply patches
|
||||||
export SNAP_SOURCE="$SNAP_ROOT/parts/nginx/build"
|
for patch in ${SNAPCRAFT_STAGE}/patches/nginx/*.patch; do
|
||||||
patch -d $SNAP_SOURCE -p1 < $SNAP_ROOT/patches/drop-nginx-setgroups.patch
|
echo "Applying $(basename "$patch") ..."
|
||||||
|
patch \
|
||||||
|
--batch \
|
||||||
|
--forward \
|
||||||
|
--strip 1 \
|
||||||
|
--input "$patch"
|
||||||
|
echo
|
||||||
|
done
|
||||||
|
snapcraftctl build
|
||||||
|
|
||||||
libxml2:
|
libxml2:
|
||||||
source: http://xmlsoft.org/sources/libxml2-2.9.4.tar.gz
|
source: http://xmlsoft.org/sources/libxml2-2.9.4.tar.gz
|
||||||
|
@ -546,20 +517,69 @@ parts:
|
||||||
|
|
||||||
# libvirt/qemu
|
# libvirt/qemu
|
||||||
qemu:
|
qemu:
|
||||||
plugin: nil
|
source: .
|
||||||
|
source-subdir: qemu-2.5+dfsg
|
||||||
|
plugin: autotools
|
||||||
stage-packages:
|
stage-packages:
|
||||||
- on amd64: [qemu-system-x86]
|
- seabios
|
||||||
- on i386: [qemu-system-x86]
|
- ipxe-qemu
|
||||||
- on armhf: [qemu-system-arm]
|
- try:
|
||||||
- on arm64: [qemu-system-arm]
|
- libnuma1
|
||||||
- qemu-utils
|
build-packages:
|
||||||
- libslang2
|
- acpica-tools
|
||||||
|
- libaio-dev
|
||||||
|
- libasound2-dev
|
||||||
|
- libattr1-dev
|
||||||
|
- libbluetooth-dev
|
||||||
|
- libcap-dev
|
||||||
|
- libcap-ng-dev
|
||||||
|
- libcurl4-gnutls-dev
|
||||||
|
- libfdt-dev
|
||||||
|
- gnutls-dev
|
||||||
|
- libiscsi-dev
|
||||||
|
- libncurses5-dev
|
||||||
|
- try: [libnuma-dev]
|
||||||
|
- libpixman-1-dev
|
||||||
|
- libpulse-dev
|
||||||
|
- librados-dev
|
||||||
|
- librbd-dev
|
||||||
|
- libsasl2-dev
|
||||||
|
- libsdl1.2-dev
|
||||||
|
- libspice-server-dev
|
||||||
|
- libspice-protocol-dev
|
||||||
|
- libusb-1.0-0-dev
|
||||||
|
- libusbredirparser-dev
|
||||||
|
- linux-libc-dev
|
||||||
|
- uuid-dev
|
||||||
|
- xfslibs-dev
|
||||||
|
- libjpeg-dev
|
||||||
|
- zlib1g-dev
|
||||||
|
- libpng-dev
|
||||||
|
- wget
|
||||||
|
- dpkg-dev
|
||||||
|
- gcc
|
||||||
|
configflags:
|
||||||
|
- --disable-blobs
|
||||||
|
- --prefix=/snap/$SNAPCRAFT_PROJECT_NAME/current
|
||||||
|
- --localstatedir=/var/snap/$SNAPCRAFT_PROJECT_NAME/common
|
||||||
|
- --sysconfdir=/var/snap/$SNAPCRAFT_PROJECT_NAME/common
|
||||||
|
- --extra-cflags=-DCONFIG_QEMU_DATAPATH='"/snap/$SNAPCRAFT_PROJECT_NAME/current/share/qemu:/snap/$SNAPCRAFT_PROJECT_NAME/current/usr/share/seabios:/snap/$SNAPCRAFT_PROJECT_NAME/current/usr/lib/ipxe/qemu"'
|
||||||
|
- --disable-user
|
||||||
|
- --disable-linux-user
|
||||||
|
- --enable-system
|
||||||
|
- --target-list=x86_64-softmmu
|
||||||
|
override-build: |
|
||||||
|
wget http://archive.ubuntu.com/ubuntu/pool/main/q/qemu/qemu_2.5+dfsg.orig.tar.xz
|
||||||
|
wget http://archive.ubuntu.com/ubuntu/pool/main/q/qemu/qemu_2.5+dfsg-5ubuntu10.32.debian.tar.xz
|
||||||
|
wget http://archive.ubuntu.com/ubuntu/pool/main/q/qemu/qemu_2.5+dfsg-5ubuntu10.32.dsc
|
||||||
|
dpkg-source -x qemu_*.dsc
|
||||||
|
snapcraftctl build
|
||||||
organize:
|
organize:
|
||||||
usr/lib/*/pulseaudio/libpulsecommon-8.0.so: usr/lib/libpulsecommon-8.0.so
|
# Hack to shift installed qemu back to root of snap
|
||||||
usr/share/seabios/bios-256k.bin: qemu/bios-256k.bin
|
# required to ensure that pathing to files etc works at
|
||||||
usr/share/seabios/vgabios-stdvga.bin: qemu/vgabios-stdvga.bin
|
# runtime
|
||||||
usr/share/seabios/kvmvapic.bin: qemu/kvmvapic.bin
|
# * is not used to avoid directory merge conflicts
|
||||||
usr/lib/ipxe/qemu/efi-virtio.rom: qemu/efi-virtio.rom
|
snap/microstack/current/: ./
|
||||||
|
|
||||||
kvm-support:
|
kvm-support:
|
||||||
plugin: nil
|
plugin: nil
|
||||||
|
@ -593,6 +613,8 @@ parts:
|
||||||
stage-packages:
|
stage-packages:
|
||||||
- dmidecode
|
- dmidecode
|
||||||
- dnsmasq
|
- dnsmasq
|
||||||
|
- dnsmasq-utils
|
||||||
|
- ebtables
|
||||||
- libxml2
|
- libxml2
|
||||||
- libyajl2
|
- libyajl2
|
||||||
- try: [libnuma1]
|
- try: [libnuma1]
|
||||||
|
@ -622,6 +644,8 @@ parts:
|
||||||
- --sysconfdir=/var/snap/$SNAPCRAFT_PROJECT_NAME/common
|
- --sysconfdir=/var/snap/$SNAPCRAFT_PROJECT_NAME/common
|
||||||
- DNSMASQ=/snap/$SNAPCRAFT_PROJECT_NAME/current/usr/sbin/dnsmasq
|
- DNSMASQ=/snap/$SNAPCRAFT_PROJECT_NAME/current/usr/sbin/dnsmasq
|
||||||
- DMIDECODE=/snap/$SNAPCRAFT_PROJECT_NAME/current/usr/sbin/dmidecode
|
- DMIDECODE=/snap/$SNAPCRAFT_PROJECT_NAME/current/usr/sbin/dmidecode
|
||||||
|
- OVSVSCTL=/snap/$SNAPCRAFT_PROJECT_NAME/current/bin/ovs-vsctl
|
||||||
|
- EBTABLES_PATH=/snap/$SNAPCRAFT_PROJECT_NAME/current/sbin/ebtables
|
||||||
override-build: |
|
override-build: |
|
||||||
wget http://archive.ubuntu.com/ubuntu/pool/main/libv/libvirt/libvirt_1.3.1.orig.tar.gz
|
wget http://archive.ubuntu.com/ubuntu/pool/main/libv/libvirt/libvirt_1.3.1.orig.tar.gz
|
||||||
wget http://archive.ubuntu.com/ubuntu/pool/main/libv/libvirt/libvirt_1.3.1-1ubuntu10.24.debian.tar.xz
|
wget http://archive.ubuntu.com/ubuntu/pool/main/libv/libvirt/libvirt_1.3.1-1ubuntu10.24.debian.tar.xz
|
||||||
|
@ -635,11 +659,18 @@ parts:
|
||||||
# * is not used to avoid directory merge conflicts
|
# * is not used to avoid directory merge conflicts
|
||||||
snap/microstack/current/: ./
|
snap/microstack/current/: ./
|
||||||
|
|
||||||
|
libvirtd-wrapper:
|
||||||
|
source: ./snap-wrappers/libvirtd
|
||||||
|
plugin: dump
|
||||||
|
after:
|
||||||
|
- libvirt
|
||||||
|
organize:
|
||||||
|
launch-libvirtd: bin/launch-libvirtd
|
||||||
|
|
||||||
# MySQL
|
# MySQL
|
||||||
mysql-server:
|
mysql-server:
|
||||||
plugin: dump
|
plugin: dump
|
||||||
source: ./scripts/mysql
|
source: ./snap-wrappers/mysql
|
||||||
stage-packages:
|
stage-packages:
|
||||||
- mysql-server
|
- mysql-server
|
||||||
- mysql-client
|
- mysql-client
|
||||||
|
@ -649,7 +680,7 @@ parts:
|
||||||
|
|
||||||
# RabbitMQ
|
# RabbitMQ
|
||||||
rabbitmq-server:
|
rabbitmq-server:
|
||||||
source: ./scripts/rabbitmq
|
source: ./snap-wrappers/rabbitmq
|
||||||
plugin: dump
|
plugin: dump
|
||||||
stage-packages:
|
stage-packages:
|
||||||
- rabbitmq-server
|
- rabbitmq-server
|
||||||
|
@ -664,7 +695,7 @@ parts:
|
||||||
rabbitmq-defaults: usr/lib/rabbitmq/lib/rabbitmq_server-3.5.7/sbin/rabbitmq-defaults
|
rabbitmq-defaults: usr/lib/rabbitmq/lib/rabbitmq_server-3.5.7/sbin/rabbitmq-defaults
|
||||||
erl: usr/bin/erl
|
erl: usr/bin/erl
|
||||||
|
|
||||||
# Memcached
|
# Memcached Token Caching
|
||||||
memcached:
|
memcached:
|
||||||
plugin: autotools
|
plugin: autotools
|
||||||
source: https://memcached.org/files/memcached-1.5.10.tar.gz
|
source: https://memcached.org/files/memcached-1.5.10.tar.gz
|
||||||
|
@ -677,82 +708,50 @@ parts:
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
|
|
||||||
# Cinder
|
# Cinder LVM backend
|
||||||
lvm2:
|
lvm2:
|
||||||
source: http://www.sourceware.org/pub/lvm2/releases/LVM2.2.02.172.tgz
|
source: http://www.sourceware.org/pub/lvm2/releases/LVM2.2.02.172.tgz
|
||||||
plugin: autotools
|
plugin: autotools
|
||||||
configflags:
|
configflags:
|
||||||
- --with-confdir=/var/snap/common/etc/
|
- --with-confdir=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/etc/
|
||||||
- --with-default-system-dir=/var/snap/common/etc/
|
- --with-default-system-dir=/var/snap/$SNAPCRAFT_PROJECT_NAME/common/etc/
|
||||||
build-attributes: [no-patchelf]
|
build-attributes: [no-patchelf]
|
||||||
cinder:
|
|
||||||
after: [keystone]
|
|
||||||
plugin: python
|
|
||||||
python-version: python2
|
|
||||||
source: http://tarballs.openstack.org/cinder/cinder-stable-rocky.tar.gz
|
|
||||||
python-packages:
|
|
||||||
- python-memcached
|
|
||||||
- pymysql
|
|
||||||
- uwsgi
|
|
||||||
- git+https://github.com/openstack/snap.openstack#egg=snap.openstack
|
|
||||||
constraints: https://raw.githubusercontent.com/openstack/requirements/stable/rocky/upper-constraints.txt
|
|
||||||
build-packages:
|
|
||||||
- gcc
|
|
||||||
- libffi-dev
|
|
||||||
- libssl-dev
|
|
||||||
- libxml2-dev
|
|
||||||
- libxslt1-dev
|
|
||||||
cinder-config:
|
|
||||||
after: [cinder]
|
|
||||||
plugin: dump
|
|
||||||
source: http://tarballs.openstack.org/cinder/cinder-stable-rocky.tar.gz
|
|
||||||
organize:
|
|
||||||
etc/*.conf: etc/cinder/
|
|
||||||
etc/*.ini: etc/cinder/
|
|
||||||
etc/*.json: etc/cinder/
|
|
||||||
etc/*.templates: etc/cinder/
|
|
||||||
filesets:
|
|
||||||
etc:
|
|
||||||
- etc/cinder/*.conf
|
|
||||||
- etc/cinder/*.ini
|
|
||||||
- etc/cinder/*.json
|
|
||||||
- etc/cinder/*.templates
|
|
||||||
stage: [$etc]
|
|
||||||
prime: [$etc]
|
|
||||||
|
|
||||||
# Horizon
|
# Misc utils for hypervisor networking
|
||||||
horizon:
|
bridge-utils:
|
||||||
after: [keystone]
|
source: https://www.kernel.org/pub/linux/utils/net/bridge-utils/bridge-utils-1.6.tar.gz
|
||||||
plugin: python
|
plugin: autotools
|
||||||
python-version: python2
|
iproute2:
|
||||||
source: http://tarballs.openstack.org/horizon/horizon-stable-rocky.tar.gz
|
source: https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-4.9.0.tar.gz
|
||||||
python-packages:
|
plugin: autotools
|
||||||
- uwsgi
|
|
||||||
- git+https://github.com/openstack/snap.openstack#egg=snap.openstack
|
|
||||||
constraints: https://raw.githubusercontent.com/openstack/requirements/stable/rocky/upper-constraints.txt
|
|
||||||
build-packages:
|
build-packages:
|
||||||
- gcc
|
- bison
|
||||||
- libffi-dev
|
- flex
|
||||||
- libssl-dev
|
- libdb5.3-dev
|
||||||
- libxml2-dev
|
iptables:
|
||||||
- libxslt1-dev
|
source: http://iptables.netfilter.org/projects/iptables/files/iptables-1.6.0.tar.bz2
|
||||||
horizon-config:
|
plugin: autotools
|
||||||
after: [horizon]
|
build-packages:
|
||||||
plugin: dump
|
- libnftnl-dev
|
||||||
source: http://tarballs.openstack.org/horizon/horizon-stable-rocky.tar.gz
|
configflags:
|
||||||
organize:
|
- --disable-nftables
|
||||||
etc/*.conf: etc/horizon/
|
install: |
|
||||||
filesets:
|
cp --remove-destination $SNAPCRAFT_PART_INSTALL/sbin/xtables-multi $SNAPCRAFT_PART_INSTALL/bin/iptables-xml
|
||||||
etc:
|
ipset:
|
||||||
- etc/horizon/*.conf
|
source: http://ipset.netfilter.org/ipset-6.30.tar.bz2
|
||||||
stage: [$etc]
|
plugin: autotools
|
||||||
prime: [$etc]
|
build-packages:
|
||||||
|
- libltdl-dev
|
||||||
|
- libmnl-dev
|
||||||
|
configflags:
|
||||||
|
- "--with-kmod=no"
|
||||||
|
|
||||||
|
# Openstack Shared Parts
|
||||||
|
overlay:
|
||||||
|
plugin: dump
|
||||||
|
source: snap-overlay
|
||||||
|
|
||||||
|
configure-the-things:
|
||||||
|
plugin: dump
|
||||||
|
source: src/experiments
|
||||||
|
|
||||||
# Openstackclient
|
|
||||||
python-openstackclient:
|
|
||||||
after: [keystone]
|
|
||||||
plugin: python
|
|
||||||
python-version: python2
|
|
||||||
python-packages:
|
|
||||||
- python-openstackclient==3.15.0
|
|
||||||
constraints: https://raw.githubusercontent.com/openstack/requirements/stable/rocky/upper-constraints.txt
|
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; version 2 of the License.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
SNAPDIR=$(pwd)
|
|
||||||
SNAPTMP=$(mktemp -d)
|
|
||||||
cd ${SNAPTMP}
|
|
||||||
MYSQL_VERSION_MAJOR=5.7
|
|
||||||
MYSQL_VERSION_FULL=5.7.17-1ubuntu16.04
|
|
||||||
FILENAME="mysql-server_${MYSQL_VERSION_FULL}_amd64.deb-bundle.tar"
|
|
||||||
wget "http://dev.mysql.com/get/Downloads/MySQL-{MYSQL_VERSION_MAJOR}/${FILENAME}"
|
|
||||||
tar -xvf "${FILENAME}"
|
|
||||||
ar x mysql-community-client_${MYSQL_VERSION_FULL}_amd64.deb
|
|
||||||
tar -xvf data.tar.xz
|
|
||||||
rm data.tar.xz
|
|
||||||
ar x mysql-community-server_${MYSQL_VERSION_FULL}_amd64.deb
|
|
||||||
tar -xvf data.tar.xz
|
|
||||||
mkdir staging-files
|
|
||||||
mv usr staging-files/
|
|
||||||
rm -rf ${SNAPDIR}/staging-files
|
|
||||||
mv staging-files ${SNAPDIR}
|
|
||||||
cd ${SNAPDIR}
|
|
Loading…
Reference in New Issue