From: Anthony PERARD <anthony.perard@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@citrix.com>,
Ian Jackson <Ian.Jackson@eu.citrix.com>
Subject: [OSSTEST PATCH v11 01/20] ts-openstack-deploy: Deploy OpenStack on a host with devstack
Date: Fri, 16 Jun 2017 18:56:45 +0100 [thread overview]
Message-ID: <20170616175704.7832-2-anthony.perard@citrix.com> (raw)
In-Reply-To: <20170616175704.7832-1-anthony.perard@citrix.com>
This script installs any necessary packages and clones all of the OpenStack
trees which are used by devstack to deploy OpenStack.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
sg-run-job | 5 +
ts-openstack-deploy | 148 ++++++++++++++++++++
2 files changed, 153 insertions(+)
diff --git a/sg-run-job b/sg-run-job
index 4b98e2b..4635b65 100755
--- a/sg-run-job
+++ b/sg-run-job
@@ -501,6 +501,11 @@ proc run-job/test-rumprun {} {
ts-guest-destroy-hard host $g +
}
+proc need-hosts/test-devstack {} { return host }
+proc run-job/test-devstack {} {
+ run-ts . = ts-openstack-deploy + host
+}
+
if {[file exists sg-run-job-adhoc]} {
source sg-run-job-adhoc
}
diff --git a/ts-openstack-deploy b/ts-openstack-deploy
new file mode 100755
index 0000000..6f061eb
--- /dev/null
+++ b/ts-openstack-deploy
@@ -0,0 +1,148 @@
+#!/usr/bin/perl
+# This is part of "osstest", an automated testing framework for Xen.
+# Copyright (C) 2016 Citrix Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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 Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+use strict qw(vars);
+use Osstest;
+use Osstest::TestSupport;
+use Osstest::BuildSupport;
+
+tsreadconfig();
+our ($whhost) = @ARGV;
+$whhost ||= 'host';
+our $ho = selecthost($whhost);
+our $builddir = target_jobdir($ho);
+
+sub packages () {
+ target_install_packages($ho, qw(git sudo));
+}
+sub checkout () {
+ prepbuilddirs();
+ build_clone($ho, 'openstack_cinder', $builddir, 'cinder');
+ build_clone($ho, 'openstack_devstack', $builddir, 'devstack');
+ build_clone($ho, 'openstack_glance', $builddir, 'glance');
+ build_clone($ho, 'openstack_keystone', $builddir, 'keystone');
+ build_clone($ho, 'openstack_nova', $builddir, 'nova');
+ build_clone($ho, 'openstack_requirements', $builddir, 'requirements');
+ build_clone($ho, 'openstack_tempest', $builddir, 'tempest');
+
+ my $vg = target_choose_vg($ho, 10*1024); # 10GB
+ target_putfilecontents_stash($ho, 60,
+ <<END, $builddir.'/devstack/local.conf');
+[[local|localrc]]
+# Everything should be cloned by osstest, so devstack don't have to do it
+ERROR_ON_CLONE=True
+USE_SCREEN=False
+ADMIN_PASSWORD=secretadmin
+DATABASE_PASSWORD=secretdatabase
+RABBIT_PASSWORD=secretrabbit
+SERVICE_PASSWORD=secretservice
+SERVICE_TOKEN=atokenserviced
+# make it small because there is no way to not have this lvm volume created
+VOLUME_BACKING_FILE_SIZE=50M
+CINDER_LVM_TYPE=default
+DEST=$builddir
+DATA_DIR=\$DEST/data
+SERVICE_DIR=\$DEST/status
+SUBUNIT_OUTPUT=\$DEST/devstack.subunit
+LOGFILE=\$DEST/logs/stack.sh.log
+LOG_COLOR=False
+LIBVIRT_TYPE=xen
+disable_service horizon
+disable_service n-novnc
+disable_service dstat
+# Disable neutron and switch back to nova-network
+disable_service q-svc
+disable_service q-dhcp
+disable_service q-meta
+disable_service q-agt
+disable_service q-l3
+enable_service n-net
+[[post-config|\$CINDER_CONF]]
+[lvmdriver-1]
+volume_group = $vg
+END
+
+ # libvirt is already installed, but not as a package, so avoid installation
+ # of the libvirt package with devstack
+ # https://bugs.launchpad.net/devstack/+bug/1641144
+ target_editfile($ho, "$builddir/devstack/files/debs/nova", sub {
+ while (<EI>) {
+ next if m/.*libvirt.*/;
+ print EO or die $!;
+ }
+ });
+ target_editfile($ho,
+ "$builddir/devstack/lib/nova_plugins/functions-libvirt",
+ sub {
+ while (<EI>) {
+ if (m/install_package.*libvirt.*/) {
+ s#install_package.*#:#
+ }
+ print EO or die $!;
+ }
+ }
+ );
+
+ # Package python-systemd does not exist in Debian installed by osstest
+ target_editfile($ho, "$builddir/devstack/files/debs/general", sub {
+ while (<EI>) {
+ next if m/^python-systemd$/;
+ print EO or die $!;
+ }
+ });
+
+ # devstack blindly assume that systemd is used if systemctl is present
+ # https://bugs.launchpad.net/devstack/+bug/1641112
+ target_editfile($ho, "$builddir/devstack/functions-common", sub {
+ while (<EI>) {
+ if (m#\[ -x /bin/systemctl#) {
+ s#\[ -x /bin/systemctl \]#false#
+ }
+ print EO or die $!;
+ }
+ });
+
+ # OpenStack needs access to libvirt from a user.
+ target_cmd_root($ho, <<END);
+ set -e
+ addgroup --system libvirt
+ cat >> /etc/libvirt/libvirtd.conf <<EOF
+unix_sock_group = "libvirt"
+unix_sock_ro_perms = "0777"
+unix_sock_rw_perms = "0770"
+EOF
+ service libvirtd restart
+END
+
+ # devstack is going to setup the host, install some dependency.
+ target_putfilecontents_root_stash($ho, 100,
+ <<END, "/etc/sudoers.d/devstack");
+osstest ALL=(ALL) NOPASSWD:ALL
+END
+}
+
+sub deploy() {
+ target_cmd($ho, <<END, 1800);
+ set -e
+ cd $builddir/devstack
+ ./stack.sh
+END
+}
+
+packages();
+checkout();
+deploy();
--
Anthony PERARD
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2017-06-16 17:57 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-16 17:56 [OSSTEST PATCH v11 00/20] Have OpenStack tested on top of xen's master and libvirt's master Anthony PERARD
2017-06-16 17:56 ` Anthony PERARD [this message]
2017-06-16 17:56 ` [OSSTEST PATCH v11 02/20] ts-openstack-tempest: Run Tempest to check OpenStack Anthony PERARD
2017-06-16 17:56 ` [OSSTEST PATCH v11 03/20] Create a flight to test OpenStack with xen-unstable and libvirt Anthony PERARD
2017-06-16 17:56 ` [OSSTEST PATCH v11 04/20] ts-openstack-deploy: Set http proxy Anthony PERARD
2017-06-16 17:56 ` [OSSTEST PATCH v11 05/20] TestSupport: provide target_https_mitm_proxy_cert_path Anthony PERARD
2017-06-16 17:56 ` [OSSTEST PATCH v11 06/20] ts-openstack-deploy: set CURL_CA_BUNDLE Anthony PERARD
2017-06-16 17:56 ` [OSSTEST PATCH v11 07/20] ts-openstack-deploy: Keep CURL_CA_BUNDLE when sudo is called Anthony PERARD
2017-06-23 13:37 ` Ian Jackson
2017-06-16 17:56 ` [OSSTEST PATCH v11 08/20] ts-openstack-deploy: Try to disable use of SYSTEMD Anthony PERARD
2017-06-23 13:38 ` Ian Jackson
2017-06-16 17:56 ` [OSSTEST PATCH v11 09/20] ts-kernel-build: Enable network related modules for Neutron Anthony PERARD
2017-06-23 13:39 ` Ian Jackson
2017-06-16 17:56 ` [OSSTEST PATCH v11 10/20] ts-openstack-deploy: Switch to Neutron for network Anthony PERARD
2017-06-23 13:41 ` Ian Jackson
2017-06-23 14:10 ` Anthony PERARD
2017-06-23 14:18 ` Ian Jackson
2017-06-16 17:56 ` [OSSTEST PATCH v11 11/20] ts-openstack-deploy: Increase fd and memory limits for rabbitmq Anthony PERARD
2017-06-23 13:41 ` Ian Jackson
2017-06-23 14:35 ` Anthony PERARD
2017-06-23 15:34 ` Ian Jackson
2017-06-23 16:50 ` Anthony PERARD
2017-06-23 17:16 ` Ian Jackson
2017-06-16 17:56 ` [OSSTEST PATCH v11 12/20] make-flight: Increase dom0_mem for openstack flight Anthony PERARD
2017-06-23 13:42 ` Ian Jackson
2017-06-23 14:40 ` Anthony PERARD
2017-06-23 15:35 ` Ian Jackson
2017-06-16 17:56 ` [OSSTEST PATCH v11 13/20] ts-openstack-deploy: Apply a Tempest patch Anthony PERARD
2017-06-23 13:43 ` Ian Jackson
2017-06-16 17:56 ` [OSSTEST PATCH v11 14/20] ts-openstack-deploy: Ignore libvirt-python version and use latest Anthony PERARD
2017-06-23 13:44 ` Ian Jackson
2017-06-16 17:56 ` [OSSTEST PATCH v11 15/20] ts-openstack-tempest: Fix tempest invocation Anthony PERARD
2017-06-23 13:45 ` Ian Jackson
2017-06-23 14:49 ` Anthony PERARD
2017-06-16 17:57 ` [OSSTEST PATCH v11 16/20] ts-openstack-tempest: Update list of skipped tests Anthony PERARD
2017-06-23 13:47 ` Ian Jackson
2017-06-23 15:16 ` Anthony PERARD
2017-06-23 15:38 ` Ian Jackson
2017-06-30 16:11 ` Anthony PERARD
2017-06-30 16:32 ` Ian Jackson
2017-06-30 17:58 ` Anthony PERARD
2017-07-05 14:33 ` Anthony PERARD
2017-06-16 17:57 ` [OSSTEST PATCH v11 17/20] ts-openstack-deploy: Move logs to /var/log/openstack Anthony PERARD
2017-06-23 13:48 ` Ian Jackson
2017-06-16 17:57 ` [OSSTEST PATCH v11 18/20] ts-logs-capture: Capture OpenStack logs Anthony PERARD
2017-06-23 13:49 ` Ian Jackson
2017-06-23 15:31 ` Anthony PERARD
2017-06-23 15:42 ` Ian Jackson
2017-06-16 17:57 ` [OSSTEST PATCH v11 19/20] ts-openstack-deploy: Increase devstack timeout Anthony PERARD
2017-06-23 13:49 ` Ian Jackson
2017-06-16 17:57 ` [OSSTEST PATCH v11 20/20] Introduce flight for stable branches of OpenStack Anthony PERARD
2017-06-23 13:58 ` Ian Jackson
2017-06-23 16:26 ` Anthony PERARD
2017-06-23 16:47 ` Ian Jackson
2017-06-23 17:00 ` Ian Jackson
2017-06-30 16:51 ` Anthony PERARD
2017-07-03 11:00 ` Ian Jackson
2017-06-19 11:02 ` [OSSTEST PATCH v11 00/20] Have OpenStack tested on top of xen's master and libvirt's master Anthony PERARD
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170616175704.7832-2-anthony.perard@citrix.com \
--to=anthony.perard@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).