diff --git a/elements/ipa-extra-hardware-hp/README.rst b/elements/ipa-extra-hardware-hp/README.rst new file mode 100644 index 0000000..9c9a3e6 --- /dev/null +++ b/elements/ipa-extra-hardware-hp/README.rst @@ -0,0 +1,13 @@ +===================== +ipa-extra-hardware-hp +===================== +Installs HP specific software required for cardiff +(`hardware `_) benchmarks + +* ``DIB_IPA_EXTRA_HARDWARE_CONREP_RPM``: URL of an RPM file that provides the ``conrep`` utility. + See ``_. + For example: + + .. code-block:: + + export DIB_IPA_EXTRA_HARDWARE_CONREP_RPM="https://downloads.hpe.com/pub/softlib2/software1/pubsw-linux/p1201555626/v164819/rhel7/x86_64/hp-scripting-tools-11.40-9.rhel7.x86_64.rpm" diff --git a/elements/ipa-extra-hardware-hp/element-deps b/elements/ipa-extra-hardware-hp/element-deps new file mode 100644 index 0000000..af260b5 --- /dev/null +++ b/elements/ipa-extra-hardware-hp/element-deps @@ -0,0 +1,3 @@ +rpm +proliant-tools +ipa-extra-hardware diff --git a/elements/ipa-extra-hardware-hp/environment.d/10-extra-rpms b/elements/ipa-extra-hardware-hp/environment.d/10-extra-rpms new file mode 100644 index 0000000..bf073e2 --- /dev/null +++ b/elements/ipa-extra-hardware-hp/environment.d/10-extra-rpms @@ -0,0 +1,16 @@ +# RPMS needed for cardiff data collection: +# +# HP tools: +# hp-scripting-tools - provides conrep for bios version, settings etc. + +# FIXME: RedHat family only + +CONREP_RPM=${DIB_IPA_EXTRA_HARDWARE_CONREP_RPM:-"https://downloads.hpe.com/pub/softlib2/software1/pubsw-linux/p1201555626/v164819/rhel7/x86_64/hp-scripting-tools-11.40-9.rhel7.x86_64.rpm"} +DIB_RPMS_EXTRA="$CONREP_RPM" + +# prepend packages to the existing list if it has been defined +if [ ! -z ${DIB_RPMS:+x} ]; then + export DIB_RPMS="$DIB_RPMS_EXTRA $DIB_RPMS" +else + export DIB_RPMS="$DIB_RPMS_EXTRA" +fi diff --git a/elements/ipa-extra-hardware-hp/environment.d/10-proliant-tools b/elements/ipa-extra-hardware-hp/environment.d/10-proliant-tools new file mode 100644 index 0000000..3eefed4 --- /dev/null +++ b/elements/ipa-extra-hardware-hp/environment.d/10-proliant-tools @@ -0,0 +1,2 @@ +# Use more up to date version of proliant tools +export DIB_SSACLI_URL=${DIB_SSACLI_URL:-https://downloads.hpe.com/pub/softlib2/software1/pubsw-linux/p1857046646/v165910/ssacli-4.15-6.0.x86_64.rpm} diff --git a/elements/ipa-extra-hardware-ram/README.rst b/elements/ipa-extra-hardware-ram/README.rst new file mode 100644 index 0000000..520733b --- /dev/null +++ b/elements/ipa-extra-hardware-ram/README.rst @@ -0,0 +1,12 @@ +====================== +ipa-extra-hardware-ram +====================== +Collects DDR timing info on Intel processors. + +* ``DIB_DDR_TIMINGS_VERSION``: Version of ddr-timings to use. + See ``_. + For example: + + .. code-block:: + + export DIB_DDR_TIMINGS_VERSION=1.0.0 diff --git a/elements/ipa-extra-hardware-ram/element-deps b/elements/ipa-extra-hardware-ram/element-deps new file mode 100644 index 0000000..bdcea0a --- /dev/null +++ b/elements/ipa-extra-hardware-ram/element-deps @@ -0,0 +1 @@ +ipa-extra-hardware diff --git a/elements/ipa-extra-hardware-ram/finalise.d/99-ddr-timings-cleanup b/elements/ipa-extra-hardware-ram/finalise.d/99-ddr-timings-cleanup new file mode 100755 index 0000000..c1304dc --- /dev/null +++ b/elements/ipa-extra-hardware-ram/finalise.d/99-ddr-timings-cleanup @@ -0,0 +1,19 @@ +#!/bin/bash + +if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then + set -x +fi +set -eu +set -o pipefail + +install-packages -e gcc + +if $(which yum > /dev/null 2>&1); then + + ${YUM:-yum} clean all + + # Rebuilding the rpm database after removing packages will reduce + # its size + rpm --rebuilddb + +fi diff --git a/elements/ipa-extra-hardware-ram/install.d/10-ddr-timings b/elements/ipa-extra-hardware-ram/install.d/10-ddr-timings new file mode 100755 index 0000000..c356f61 --- /dev/null +++ b/elements/ipa-extra-hardware-ram/install.d/10-ddr-timings @@ -0,0 +1,15 @@ +#!/bin/bash + +if [ "${DIB_DEBUG_TRACE:-1}" -gt 0 ]; then + set -x +fi +set -u +set -o pipefail + +VERSION=${DIB_DDR_TIMINGS_VERSION:-1.0.0} + +pushd /tmp +curl -k -L -o ddr-timings.tar.gz https://github.com/stackhpc/ddr-timings/archive/$VERSION.tar.gz +tar -xvf ddr-timings.tar.gz +cd ddr-timings-$VERSION && make install +popd diff --git a/elements/ipa-extra-hardware-ram/package-installs.yaml b/elements/ipa-extra-hardware-ram/package-installs.yaml new file mode 100644 index 0000000..5330c4a --- /dev/null +++ b/elements/ipa-extra-hardware-ram/package-installs.yaml @@ -0,0 +1,2 @@ +gcc: +make: diff --git a/elements/ipa-extra-hardware/package-installs.yaml b/elements/ipa-extra-hardware/package-installs.yaml index cc1a779..aca0b46 100644 --- a/elements/ipa-extra-hardware/package-installs.yaml +++ b/elements/ipa-extra-hardware/package-installs.yaml @@ -10,3 +10,4 @@ pciutils: sdparm: smartmontools: sysbench: +lsb_release: diff --git a/elements/ipa-extra-hardware/pkg-map b/elements/ipa-extra-hardware/pkg-map new file mode 100644 index 0000000..5ce398e --- /dev/null +++ b/elements/ipa-extra-hardware/pkg-map @@ -0,0 +1,10 @@ +{ + "family": { + "redhat": { + "lsb_release": "redhat-lsb-core" + } + }, + "default": { + "lsb_release": "" + } +} diff --git a/elements/rpm/README.rst b/elements/rpm/README.rst new file mode 100644 index 0000000..042ee40 --- /dev/null +++ b/elements/rpm/README.rst @@ -0,0 +1,12 @@ +=== +rpm +=== +So you found a random RPM on the interwebs and now want to install it into +your cloud image, panic not, this element's for you. + +* ``DIB_RPMS``: A whitespace separated list of rpms to install. This is a required parameter. + For example: + + .. code-block:: + + export DIB_RPMS="https://example.org/first.rpm https://example.org/second.rpm" diff --git a/elements/rpm/install.d/10-extra-rpms b/elements/rpm/install.d/10-extra-rpms new file mode 100755 index 0000000..a03f1db --- /dev/null +++ b/elements/rpm/install.d/10-extra-rpms @@ -0,0 +1,18 @@ +#!/bin/bash + +if [ "${DIB_DEBUG_TRACE:-1}" -gt 0 ]; then + set -x +fi +set -u +set -o pipefail + +if $(which yum > /dev/null 2>&1); then + yum install -y $DIB_RPMS +elif $(which zypper > /dev/null 2>&1); then + pushd /tmp + for pkg in DIB_RPMS; do + curl -O "$pkg" + zypper -n in $(basename "$pkg") + done + popd +fi