From 2ebfb12b846df7de00e08f4dbcadc4c71b61dccc Mon Sep 17 00:00:00 2001 From: Ramakrishnan G Date: Tue, 9 Dec 2014 00:17:37 +0530 Subject: [PATCH] Add proliant-tools element This new element installs hpssacli utility (for configuring RAID) and installs proliantutils python module (which has ironic-python-agent hardware manager for HP ProLiant hardware). This module also exposes a new environment variable DIB_HPSSACLI_URL which allows operator to pass a custom HTTP(S) URL for RPM of hpssacli utility. NOTE: This module currently supports only installing from source. Change-Id: I0494e3db623fdd7ea9182ffba21c0652aaad113c --- elements/proliant-tools/README.rst | 30 +++++++++++++++ elements/proliant-tools/element-deps | 1 + .../install.d/65-proliant-tools-install | 38 +++++++++++++++++++ elements/proliant-tools/package-installs.yaml | 1 + elements/proliant-tools/pkg-map | 10 +++++ 5 files changed, 80 insertions(+) create mode 100644 elements/proliant-tools/README.rst create mode 100644 elements/proliant-tools/element-deps create mode 100755 elements/proliant-tools/install.d/65-proliant-tools-install create mode 100644 elements/proliant-tools/package-installs.yaml create mode 100644 elements/proliant-tools/pkg-map diff --git a/elements/proliant-tools/README.rst b/elements/proliant-tools/README.rst new file mode 100644 index 00000000..836560b8 --- /dev/null +++ b/elements/proliant-tools/README.rst @@ -0,0 +1,30 @@ +proliant-tools +============== + +* This element can be used when building ironic-agent ramdisk. It + enables ironic-agent ramdisk to do in-band cleaning operations specific + to HP ProLiant hardware. + +* Works with ubuntu and fedora distributions (on which ironic-agent + element is supported). + +* Currently the following utilities are installed: + + + `proliantutils`_ - This module registers an ironic-python-agent hardware + manager for HP ProLiant hardware, which implements in-band cleaning + steps. The latest version of ``proliantutils`` available is + installed. This python module is released with Apache license. + + + `HP Smart Storage Administrator (HP SSA) CLI for Linux 64-bit`_ - This + utility is used by ``proliantutils`` library above for doing in-band RAID + configuration on HP ProLiant hardware. Currently installed version is + 2.30. Newer version of ``hpssacli`` when available, may be installed to + the ramdisk by using the environment variable ``DIB_HPSSACLI_URL``. + ``DIB_HPSSACLI_URL`` should contain the HTTP(S) URL for downloading the + RPM package for ``hpssacli`` utility. Availability of newer versions can + be in the Revision History in the above link. This utility is closed source + and is released with `HP End User License Agreement – Enterprise Version`_. + +.. _`proliantutils`: https://pypi.python.org/pypi/proliantutils +.. _`HP Smart Storage Administrator (HP SSA) CLI for Linux 64-bit`: http://h20564.www2.hpe.com/hpsc/swd/public/detail?swItemId=MTX_b6a6acb9762443b182280db805 +.. _`HP End User License Agreement – Enterprise Version`: ftp://ftp.hp.com/pub/softlib2/software1/doc/p2057331991/v33194/hpeula-en.html diff --git a/elements/proliant-tools/element-deps b/elements/proliant-tools/element-deps new file mode 100644 index 00000000..7076aba9 --- /dev/null +++ b/elements/proliant-tools/element-deps @@ -0,0 +1 @@ +package-installs diff --git a/elements/proliant-tools/install.d/65-proliant-tools-install b/elements/proliant-tools/install.d/65-proliant-tools-install new file mode 100755 index 00000000..053f1bed --- /dev/null +++ b/elements/proliant-tools/install.d/65-proliant-tools-install @@ -0,0 +1,38 @@ +#!/bin/bash +# +# Copyright 2015 Hewlett-Packard Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +if [ ${DIB_DEBUG_TRACE:-1} -gt 0 ]; then + set -x +fi + +set -eu +set -o pipefail + +# Set the below variable to allow hpssacli to be installed from custom URLs. +DIB_HPSSACLI_URL=${DIB_HPSSACLI_URL:-https://ftp.hp.com/pub/softlib2/software1/pubsw-linux/p1857046646/v109216/hpssacli-2.30-6.0.x86_64.rpm} +curl -k -o /tmp/hpssacli.rpm $DIB_HPSSACLI_URL + +if [[ $DISTRO_NAME = "ubuntu" || $DISTRO_NAME = "debian" ]]; then + # There is no deb package for hpssacli. Install with alien. + alien -i /tmp/hpssacli.rpm +else + rpm -iv /tmp/hpssacli.rpm +fi + +rm -f /tmp/hpssacli.rpm + +# Install proliantutils python module +pip install proliantutils diff --git a/elements/proliant-tools/package-installs.yaml b/elements/proliant-tools/package-installs.yaml new file mode 100644 index 00000000..8f1b2dbd --- /dev/null +++ b/elements/proliant-tools/package-installs.yaml @@ -0,0 +1 @@ +alien: diff --git a/elements/proliant-tools/pkg-map b/elements/proliant-tools/pkg-map new file mode 100644 index 00000000..a42eca95 --- /dev/null +++ b/elements/proliant-tools/pkg-map @@ -0,0 +1,10 @@ +{ + "family": { + "debian": { + "alien": "alien" + } + }, + "default": { + "alien": "" + } +}