From 91c0ee9125f4b0d76acac466027c3bcffaa02db1 Mon Sep 17 00:00:00 2001 From: phasefx Date: Tue, 11 Dec 2018 15:49:59 -0500 Subject: [PATCH] toward getting qa01 going again --- installer/stretch/README | 28 ++ installer/stretch/eg_stretch_installer.sh | 638 ++++++++++++++++++++++++++++++ installer/stretch/ejabberd.EG.patch | 62 +++ installer/stretch/evergreen.ld.conf | 3 + installer/stretch/installer_installer.sh | 9 + installer/stretch/installer_installer2.sh | 3 + qa/test_runner.xml | 10 +- 7 files changed, 748 insertions(+), 5 deletions(-) create mode 100644 installer/stretch/README create mode 100755 installer/stretch/eg_stretch_installer.sh create mode 100644 installer/stretch/ejabberd.EG.patch create mode 100644 installer/stretch/evergreen.ld.conf create mode 100755 installer/stretch/installer_installer.sh create mode 100755 installer/stretch/installer_installer2.sh diff --git a/installer/stretch/README b/installer/stretch/README new file mode 100644 index 000000000..8d2af64ef --- /dev/null +++ b/installer/stretch/README @@ -0,0 +1,28 @@ +Author: Bill Erickson +Copyright: (C) 2009-2012 Equinox Software Inc. + +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; either version 2 +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 General Public License for more details. + +---------------------------------------------------------- + +Mostly automated "master" install of OpenSRF and Evergreen on Debian. + +WARNING: This is for development and evaluation purposes only. Use at own risk. + +Steps: + 1. Install Debian + 2. Put these files on the server + 3. Run the script as root and do what it says + + + + + diff --git a/installer/stretch/eg_stretch_installer.sh b/installer/stretch/eg_stretch_installer.sh new file mode 100755 index 000000000..c2feab4aa --- /dev/null +++ b/installer/stretch/eg_stretch_installer.sh @@ -0,0 +1,638 @@ +#!/bin/bash +# ----------------------------------------------------------------------- +# Copyright (C) 2009-2012 Equinox Software Inc. +# Bill Erickson +# +# 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; either version 2 +# 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 General Public License for more details. +# ----------------------------------------------------------------------- + +while getopts ayst option +do + case "${option}" + in + a) AUTOSTART=1;; + y) YES=1;; + s) SAMPLEDATA=--load-all-sample;; + t) LIVETEST=1;; + esac +done + +function my_init { + date + init_variables + configure_timezone + configure_cpan + build_essentials + setting_up_opensrf_env + cloning_git_repos + opensrf_prereqs + evergreen_prereqs + evergreen_db_prereqs + setting_ldconfig_and_rsyslog_and_hosts_and_ejabberd + build_opensrf + test_opensrf_build + install_opensrf + build_evergreen + test_evergreen_build + test_and_build_eg_browser_client + install_evergreen + configure_database + configure_apache + if [ $AUTOSTART ]; then + start_evergreen + if [ $LIVETEST ]; then + test_evergreen_live + fi + fi + docs_builder_prereqs + build_the_docs +} + +function init_variables { + echo _.-~= initializing installer + date + # ----------------------------------------------------------------------- + # Handling passed arguments to the script + # ----------------------------------------------------------------------- + export DOJO_VERSION='1.3.3'; + export PATH=/openils/bin:$PATH + export LD_LIBRARY_PATH=/openils/lib:/usr/local/lib:/usr/local/lib/dbd:$LD_LIBRARY_PATH + export BASE_DIR=$PWD + echo AUTOSTART=${AUTOSTART} + echo YES=${YES} + echo SAMPLEDATA=${SAMPLEDATA} + echo LIVETEST=${LIVETEST} + echo DOJO_VERSION=${DOJO_VERSION} + echo PATH=${PATH} + echo LD_LIBRARY_PATH=${LD_LIBRARY_PATH} + echo BASE_DIR=${BASE_DIR} + # ----------------------------------------------------------------------- + # Change to suit... + # ----------------------------------------------------------------------- + # If you change the jabber password, you will need to + # edit opensrf_core.xml and srfsh.xml accordingly + export JABBER_PASSWORD='password' + export ADMIN_USER='admin'; + export ADMIN_PASS='demo123'; + # ----------------------------------------------------------------------- + # Database variables + # ----------------------------------------------------------------------- + export PGDATABASE=evergreen + export PGUSER=evergreen + export PGPASSWORD=evergreen + export PGHOST=localhost + # ----------------------------------------------------------------------- + # You can override these like so: + # EVERGREEN_BRANCH='master' ./eg_wheezy_installer.sh + # ----------------------------------------------------------------------- + OPENSRF_REPO='git://git.evergreen-ils.org/OpenSRF.git' + OPENSRF_BRANCH='master' + EVERGREEN_REPO='git://git.evergreen-ils.org/Evergreen.git' + EVERGREEN_BRANCH='master' + echo OPENSRF_REPO=${OPENSRF_REPO} + echo OPENSRF_BRANCH=${OPENSRF_BRANCH} + echo EVERGREEN_REPO=${EVERGREEN_REPO} + echo EVERGREEN_BRANCH=${EVERGREEN_BRANCH} + OPENSRF_PREREQ_TARGET=debian-wheezy + EVERGREEN_PREREQ_TARGET=debian-wheezy + EVERGREEN_DB_PREREQ_TARGET=postgres-server-debian-wheezy + echo OPENSRF_PREREQ_TARGET=${OPENSRF_PREREQ_TARGET} + echo EVERGREEN_PREREQ_TARGET=${EVERGREEN_PREREQ_TARGET} + echo EVERGREEN_DB_PREREQ_TARGET=${EVERGREEN_DB_PREREQ_TARGET} + + export NODEJS_VERSION='v8.11.4' + export NODEJS_BINDIR="node-$NODEJS_VERSION-linux-x64" + export NODEJS_TARBIN="$NODEJS_BINDIR.tar.xz" + export NODEJS_BINARY="https://nodejs.org/dist/$NODEJS_VERSION/$NODEJS_TARBIN" + echo "NODEJS_BINARY=$NODEJS_BINARY" + echo "NODEJS_VERSION=$NODEJS_VERSION" + + echo End of intializing installer =~-._ +} + +function configure_timezone { + echo _.-~= configure timezone + date + # should be America/New_York + perl -e 'print "2\n\n104\n";' | dpkg-reconfigure -fteletype tzdata + echo End of configure timezone =~-._ +} + +function configure_cpan { + echo _.-~= configure CPAN + date + # ----------------------------------------------------------------------- + # force CPAN to load by installing something that should already be installed + if [ $YES ]; then + yes | cpan Fcntl + else + cpan Fcntl + fi + echo Return Value = $? + # CPAN follow pre-reqs? + if [ ! "$(echo 'o conf prerequisites_policy' | cpan | grep follow)" ]; then + if [ $YES ]; then + + echo "setting cpan prerequisites_policy to follow" + echo -e "o conf prerequisites_policy follow\\n o conf commit" | cpan + + else + + echo ' + +----------------------------------------------------------------------- +The install will go faster if CPAN is configured to automatically install +prerequisites. You can revert the action later with: + +echo -e "o conf prerequisites_policy ask\n o conf commit" | cpan +' + while true; do + echo -n 'Automatically install prereqs? [Y/n] '; + read X; + [ "$X" == 'n' -o "$X" == "N" ] && break; + if [ "$X" == 'y' -o "$X" == 'Y' ]; then + echo -e "o conf prerequisites_policy follow\\n o conf commit" | cpan + break; + fi; + done; + fi; + fi; + echo End of configure CPAN =~-._ +} + +function build_essentials { + echo _.-~= Installing some build essentials + date + # Install some essential tools + apt-get update \ + && apt-get -yq dist-upgrade \ + && apt-get -yq install build-essential automake git psmisc ntp rsyslog lsb-release unzip; + echo Return Value = $? + + if [ $LIVETEST ]; then + cpan TAP::Parser::SourceHandler::pgTAP + echo Return Value = $? + fi; + echo End of Installing some build essentials =~-._ +} + +function docs_builder_prereqs { + echo _.-~= Installing prereqs for building the documentation formats + date + # Install tools used for building the docs + apt-get -yq install asciidoc source-highlight fop; + echo Return Value = $? + + echo End of Installing prereqs for building the documentation formats =~-._ +} + +function build_the_docs { + echo _.-~= Building the AsciiDoc output formats + date + # build HTML + su - opensrf sh -c 'cd /home/opensrf/Evergreen/docs/ ; asciidoc root.adoc ; echo Return Value = $?' + # build PDF + su - opensrf sh -c 'cd /home/opensrf/Evergreen/docs/ ; a2x --fop --fop-opts="-q" root.adoc ; echo Return Value = $?' + # build EPUB + su - opensrf sh -c 'cd /home/opensrf/Evergreen/docs/ ; a2x --no-xmllint --format epub root.adoc ; echo Return Value = $?' + + echo End of Building the AsciiDoc output formats =~-._ +} + +function setting_up_opensrf_env { + echo _.-~= creating opensrf user and environment + date + # Create opensrf user and set up environment + if [ ! "$(grep ^opensrf: /etc/passwd)" ]; then + useradd -m -s /bin/bash opensrf + echo Return Value = $? + echo 'export PATH=/openils/bin:$PATH' >> /home/opensrf/.bashrc + echo 'export LD_LIBRARY_PATH=/openils/lib:/usr/local/lib:/usr/local/lib/dbd:$LD_LIBRARY_PATH' >> /home/opensrf/.bashrc + fi; + echo end of creating opensrf user and environment =~-._ +} + +function cloning_git_repos { + echo _.-~= cloning git repositories + date + OSRF_COMMAND=" + cd /home/opensrf; + git clone --depth 0 --branch $OPENSRF_BRANCH $OPENSRF_REPO OpenSRF; + git clone --depth 0 --branch $EVERGREEN_BRANCH $EVERGREEN_REPO Evergreen; + " + rm -rf /home/opensrf/Evergreen /home/opensrf/OpenSRF + su - opensrf sh -c "$OSRF_COMMAND"; + echo Return Value = $? + + # Show tips + cd /home/opensrf/OpenSRF/ + echo 'Tip of OpenSRF:' `git log --format=oneline | head -1` + cd /home/opensrf/Evergreen/ + echo 'Tip of Evergreen:' `git log --format=oneline | head -1` + + echo End of cloning git repositories =~-._ +} + +function opensrf_prereqs { + echo _.-~= Installing OpenSRF pre-requisites + date + # Install pre-reqs + mkdir -p /usr/src/evergreen; + cd /usr/src/evergreen; + if [ $YES ]; then + yes | make -f /home/opensrf/OpenSRF/src/extras/Makefile.install ${OPENSRF_PREREQ_TARGET} + else + make -f /home/opensrf/OpenSRF/src/extras/Makefile.install ${OPENSRF_PREREQ_TARGET} + fi; + echo Return Value = $? + echo End of Installing OpenSRF pre-requisites =~-._ +} + +function evergreen_prereqs { + echo _.-~= Installing Evergreen pre-requisites + date + if [ $YES ]; then + yes | make -f /home/opensrf/Evergreen/Open-ILS/src/extras/Makefile.install ${EVERGREEN_PREREQ_TARGET} + else + make -f /home/opensrf/Evergreen/Open-ILS/src/extras/Makefile.install ${EVERGREEN_PREREQ_TARGET} + fi; + echo Return Value = $? + echo End of Installing Evergreen pre-requisites =~-._ +} + +function evergreen_db_prereqs { + echo _.-~= Installing Evergreen database pre-requisites + date + if [ $YES ]; then + yes | make -f /home/opensrf/Evergreen/Open-ILS/src/extras/Makefile.install ${EVERGREEN_DB_PREREQ_TARGET} + else + make -f /home/opensrf/Evergreen/Open-ILS/src/extras/Makefile.install ${EVERGREEN_DB_PREREQ_TARGET} + fi; + echo Return Value = $? + echo End of Installing Evergreen database pre-requisites =~-._ +} + +function setting_ldconfig_and_rsyslog_and_hosts_and_ejabberd { + echo _.-~= setting ld.so.conf and rsyslog and /etc/hosts and ejabberd + date + cp $BASE_DIR/evergreen.ld.conf /etc/ld.so.conf.d/ + ldconfig; + echo Return Value = $? + # Configure rsyslog and restart + cp /home/opensrf/Evergreen/Open-ILS/examples/evergreen-rsyslog.conf /etc/rsyslog.d/evergreen.conf + /etc/init.d/rsyslog restart + echo Return Value = $? + if [ ! "$(grep 'public.localhost' /etc/hosts)" ]; then + + if [ $YES ]; then + echo 'Adding public.localhost and private.localhost to /etc/hosts' + echo '127.0.1.2 public.localhost public' >> /etc/hosts + echo '127.0.1.3 private.localhost private' >> /etc/hosts + else + + cat < /dev/null | sort + echo End of system information =~-._ + date +} + +my_init + + diff --git a/installer/stretch/ejabberd.EG.patch b/installer/stretch/ejabberd.EG.patch new file mode 100644 index 000000000..d011b5f5b --- /dev/null +++ b/installer/stretch/ejabberd.EG.patch @@ -0,0 +1,62 @@ +--- ejabberd.cfg 2010-08-13 16:03:40.000000000 -0400 ++++ /tmp/ejabberd.cfg.orig 2010-08-13 16:07:13.000000000 -0400 +@@ -58,7 +58,7 @@ + {acl, admin, {user, "", "localhost"}}. + + %% Hostname +-{hosts, ["localhost"]}. ++{hosts, ["public.localhost", "private.localhost"]}. + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +@@ -115,7 +115,7 @@ + {5222, ejabberd_c2s, [ + {access, c2s}, + {shaper, c2s_shaper}, +- {max_stanza_size, 65536}, ++ {max_stanza_size, 200000}, + %%zlib, + starttls, {certfile, "/etc/ejabberd/ejabberd.pem"} + ]}, +@@ -133,7 +133,7 @@ + + {5269, ejabberd_s2s_in, [ + {shaper, s2s_shaper}, +- {max_stanza_size, 131072} ++ {max_stanza_size, 200000} + ]}, + + %% External MUC jabber-muc +@@ -406,12 +406,12 @@ + %% + %% The "normal" shaper limits traffic speed to 1.000 B/s + %% +-{shaper, normal, {maxrate, 1000}}. ++{shaper, normal, {maxrate, 500000}}. + + %% + %% The "fast" shaper limits traffic speed to 50.000 B/s + %% +-{shaper, fast, {maxrate, 50000}}. ++{shaper, normal, {maxrate, 500000}}. + + + %%% ==================== +@@ -457,7 +457,7 @@ + %%% ACCESS RULES + + %% Define the maximum number of time a single user is allowed to connect: +-{access, max_user_sessions, [{10, all}]}. ++{access, max_user_sessions, [{5000, all}]}. + + %% Maximum number of offline messages that users can have: + {access, max_user_offline_messages, [{5000, admin}, {100, all}]}. +@@ -581,7 +581,7 @@ + {max_users, 500} + ]}, + %%{mod_muc_log,[]}, +- {mod_offline, [{access_max_user_messages, max_user_offline_messages}]}, ++ %%{mod_offline, [{access_max_user_messages, max_user_offline_messages}]}, + {mod_privacy, []}, + {mod_private, []}, + {mod_proxy65, [ diff --git a/installer/stretch/evergreen.ld.conf b/installer/stretch/evergreen.ld.conf new file mode 100644 index 000000000..07233fc95 --- /dev/null +++ b/installer/stretch/evergreen.ld.conf @@ -0,0 +1,3 @@ +/openils/lib +/usr/local/lib +/usr/local/lib/dbd diff --git a/installer/stretch/installer_installer.sh b/installer/stretch/installer_installer.sh new file mode 100755 index 000000000..8c6fa84cc --- /dev/null +++ b/installer/stretch/installer_installer.sh @@ -0,0 +1,9 @@ +#!/bin/bash +echo 'deb http://security.debian.org/ wheezy/updates main contrib' | sudo tee --append /etc/apt/sources.list +sudo apt-get update +sudo apt-get -q -y install git-core +git clone git://git.evergreen-ils.org/working/random.git +cd random/ +git checkout -b wheezy origin/collab/phasefx/wheezy_installer +cd installer/wheezy +time sudo ./eg_wheezy_installer.sh -y -a -s -t diff --git a/installer/stretch/installer_installer2.sh b/installer/stretch/installer_installer2.sh new file mode 100755 index 000000000..9e34cc638 --- /dev/null +++ b/installer/stretch/installer_installer2.sh @@ -0,0 +1,3 @@ +#!/bin/bash +cd $* +time sudo ./eg_wheezy_installer.sh -y -a -s -t diff --git a/qa/test_runner.xml b/qa/test_runner.xml index b7f431c09..6e3952d0b 100644 --- a/qa/test_runner.xml +++ b/qa/test_runner.xml @@ -5,13 +5,13 @@ - phasefx01 - debian wheezy - 192.168.1.79 + qa01 + debian stretch + 192.168.25.129 - installer/wheezy/ + installer/stretch/ - /home/phasefx/eg_installer/wheezy/installer_installer2.sh /home/phasefx/eg_installer/wheezy/ + /home/esi/eg_installer/stretch/installer_installer2.sh /home/esi/eg_installer/stretch/ -- 2.11.0