OpenStack

Successful HP Helion OpenStack Commercial Edition 1.01 Basic KVM Installation

Install HOS Commercial Edition 1.01 using 8 physical servers – Notes

Server Inventory

Role

Serial Number

ILO IP

ILO Username

ILO Password

IP address

CPU

Memory

Disk

Seed Host

ILOCZJ43402GV

172.30.0.117

Administrator

xxxx

172.16.120.2

20

262144

1116

Undercloud

ILOCZJ43402GW

172.30.0.118

Administrator

xxxx

20

262144

1116

Overcloud MC

ILOCZJ43402H5

172.30.0.119

Administrator

xxxx

20

262144

1116

Overcloud Ctrl1

ILOCZJ43402H0

172.30.0.120

Administrator

xxxx

20

262144

1116

Overcloud Ctrl2

ILOCZJ43402GX

172.30.0.121

Administrator

xxxx

20

262144

1116

Overcloud Swift1

ILOCZJ43402H2

172.30.0.122

Administrator

xxxx

20

262144

1116

Overcloud Swift2

ILOCZJ43402H3

172.30.0.123

Administrator

xxxx

20

262144

1116

Overcloud Compute

ILOCZJ43402HC

172.30.0.124

Administrator

xxxx

20

262144

1116

Networking

Networks

  1. Management 172.16.120.0/24 VLAN 120 (Untagged – Native)
  2. External (Public) 172.16.122.0/24 VLAN 122 (Tagged)
  3. Service 172.16.121.0/24 VLAN 121 (Tagged)
  4. IPMI (iLO) 172.30.0.0/24 (Untagged – Native)

Prerequisites

Assumption that the servers will have already been racked and stacked and wired in to the top of rack switches.

Hardware

  • Is the base hardware supported – check it against the support matrix or going forward potentially using USB Discovery Tool? (Raid controllers, etc)

iLO

  • This will need to be configured with an ip address, administrative username and password.
  • Apply iLO license if advanced iLO functionality is required (e.g. Remote console access once OS has booted)


Bios settings

  • Set RTC (real time clock) date and time correctly.
  • Disable PXE boot on all nics EXCEPT the Physical Management nic (iLO required too)
  • Enable CPU Virtualisation Technology
  • Set Automatic Restart to Off

Raid Controller

  • Configure the local storage array to present a single raid 1/0 disk

[ modify to taste – OpenStack recommends the avoidance of raid controllers to reduce cost and complexity. However enterprises tend to prefer redundancy to avoid mundane failures impacting production. ]

DiskSize.JPG

Start of installation Process

  • Log on to seedhost iLO and mount the ubuntu14.04 server iso

  • Install Ubuntu Server

[Note: specific local lab environment settings proxy for ubuntu package repo]

  •  modify or create the following conf file and add the proxy details – /etc/apt/apt.conf
  • save
  • Refresh repo content
    • #sudo apt-get update
  • Configure DNS through appropriate interface in/etc/network/interface

e.g.

# The primary network interface

auto em1

iface em1 inet static

        address 172.16.120.2

        netmask 255.255.255.0

        network 172.16.120.0

        broadcast 172.16.120.255

        gateway 172.16.120.1

        # dns-* options are implemented by the resolvconf package, if installed

        dns-nameservers 172.16.120.1

  • Configure SSH [already installed during base installation]
  • Get public Key
    • ssh-keygen -t rsa -N “”

    helion@headnode03r03:~$ sudo su –

    [sudo] password for helion:

    root@headnode03r03:~# ssh-keygen -t rsa -N “”

    Generating public/private rsa key pair.

    Enter file in which to save the key (/root/.ssh/id_rsa):

    Created directory ‘/root/.ssh’.

    Your identification has been saved in /root/.ssh/id_rsa.

    Your public key has been saved in /root/.ssh/id_rsa.pub.

    The key fingerprint is:

    20:51:98:0d:48:ab:b8:fa:ca:3b:a3:25:03:ff:31:2b root@headnode03r03

    The key’s randomart image is:

    +–[ RSA 2048]—-+

    | …o*.          |

    |  ..o..          |

    |  . . .          |

    |..   . .         |

    |+       S        |

    |.o               |

    |+ o o            |

    |o*E. +           |

    |===.o            |

    +—————–+

    root@headnode03r03:~#

  • Install prerequisite packages as documented here
    • sudo aptget install y xrdp xfce4 libvirtbin openvswitchswitch openvswitchcommon pythonlibvirt qemukvm libssldev libffidev virtmanager chromiumbrowser
  • Restart libvirt
    • sudo /etc/init.d/libvirtbin restart
  • Install & Configure NTP server
    • sudo apt-get install ntp
  • For PoC scenarios or where there is no access to external NTP use this seed host as the NTP server by modifying the /etc/ntp.conf with the following details

# Specify one or more NTP servers.

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board

# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for

# more information.

server 127.127.1.0

fudge 127.127.1.0 stratum 10

  • service ntp restart

–2015-01-09 14:52:32–  http://172.16.1.5/files/helion/enterprise/HP_Helion_OpenStack_1.0.1.tgz

Connecting to 172.16.1.5:80… connected.

HTTP request sent, awaiting response… 200 OK

Length: 7440363802 (6.9G) [application/octet-stream]

Saving to: ‘HP_Helion_OpenStack_1.0.1.tgz’

100%[====================================>] 7,440,363,802  276MB/s   in 26s

2015-01-09 14:52:58 (277 MB/s) – ‘HP_Helion_OpenStack_1.0.1.tgz’ saved [7440363802/7440363802]

  • Verify the installation media
    • root@headnode03r03:~/work# md5sum HP_Helion_OpenStack_1.0.1.tgz

    b341aac3ff2f4c583f3ca22e6a2f1e1a  HP_Helion_OpenStack_1.0.1.tgz

  • Download all support files from the tool directory in the labs [for large installations these tools will save a lot of time getting information from the iLOs]

–2015-01-09 15:07:06–  http://172.16.1.5/files/helion/tools/

Connecting to 172.16.1.5:80… connected.

HTTP request sent, awaiting response… 200 OK

Length: unspecified [text/html]

Saving to: ‘index.html’

    [ <=>                                   ] 414         –.-K/s   in 0s

2015-01-09 15:07:06 (19.8 MB/s) – ‘index.html’ saved [414]

Loading robots.txt; please ignore errors.

–2015-01-09 15:07:06–  http://172.16.1.5/robots.txt

Reusing existing connection to 172.16.1.5:80.

HTTP request sent, awaiting response… 404 Not Found

2015-01-09 15:07:06 ERROR 404: Not Found.

Removing index.html since it should be rejected.

–2015-01-09 15:07:06–  http://172.16.1.5/files/helion/tools/Create-Baremetal.py

Reusing existing connection to 172.16.1.5:80.

HTTP request sent, awaiting response… 200 OK

Length: 4829 (4.7K) [application/octet-stream]

Saving to: ‘Create-Baremetal.py’

100%[======================================>] 4,829       –.-K/s   in 0s

2015-01-09 15:07:06 (280 MB/s) – ‘Create-Baremetal.py’ saved [4829/4829]

–2015-01-09 15:07:06–  http://172.16.1.5/files/helion/tools/python-hpilo-2.8.tar

Reusing existing connection to 172.16.1.5:80.

HTTP request sent, awaiting response… 200 OK

Length: 204800 (200K) [application/octet-stream]

Saving to: ‘python-hpilo-2.8.tar’

100%[======================================>] 204,800     –.-K/s   in 0.001s

2015-01-09 15:07:06 (207 MB/s) – ‘python-hpilo-2.8.tar’ saved [204800/204800]

FINISHED –2015-01-09 15:07:06–

Total wall clock time: 0.006s

Downloaded: 3 files, 205K in 0.001s (205 MB/s)

root@headnode03r03:~/work# ls

Create-Baremetal.py  HP_Helion_OpenStack_1.0.1.tgz  python-hpilo-2.8.tar

  • Install the python HP iLO libraries
    • root@headnode03r03:~/work# tar -xvf python-hpilo-2.8.tar
    • root@headnode03r03:~/work# cd python-hpilo-2.8/
    • root@headnode03r03:~/work/python-hpilo-2.8# python3 setup.py install
  • Extract the HOS binaries
    • root@headnode03r03:~/work# tar zxvf /root/work/HP_Helion_OpenStack_1.0.1.tgz

[Update Note:I had to copy everything back to the root directory as there were issues with the installation script when I placed the files in the work directory]

  • Backup and then modify the default installation environment variables file /root/work/tripleo/config/kvm-custom-ips.json
    • root@headnode03r03:~/work# vi /root/work/tripleo/configs/kvm-custom-ips.json
    • root@headnode03r03:~/work# cat /root/work/tripleo/configs/kvm-custom-ips.json

    {

        “cloud_type”: “KVM”,

        “vsa_scale”: 0,

        “vsa_ao_scale”: 0,

        “so_swift_storage_scale”: 0,

        “so_swift_proxy_scale”: 0,

        “compute_scale”: 1,

        “bridge_interface”: “em1”,

        “virtual_interface”: “eth0”,

        “fixed_range_cidr”: “172.0.100.0/24”,

        “control_virtual_router_id”: “71”,

        “baremetal”: {

            “network_seed_ip”: “172.16.120.3”,

            “network_cidr”: “172.16.120.0/24”,

            “network_gateway”: “172.16.120.1”,

            “network_seed_range_start”: “172.16.120.4”,

            “network_seed_range_end”: “172.16.120.14”,

            “network_undercloud_range_start”: “172.16.120.20”,

            “network_undercloud_range_end”: “172.16.120.40”

        },

        “neutron”: {

            “public_interface_raw_device”: “eth0”,

            “overcloud_public_interface”: “vlan122”,

            “undercloud_public_interface”: “eth0”

        },

        “ntp”: {

            “overcloud_server”: “172.16.120.2”,

            “undercloud_server”: “172.16.120.2”

        },

        “floating_ip”: {

            “start”: “172.16.122.100”,

            “end”: “172.16.122.150”,

            “cidr”: “172.16.122.0/24”

        },

        “svc”: {

            “interface”: “vlan121”,

            “interface_default_route”: “172.16.121.1”,

            “allocate_start”: “172.16.121.100”,

            “allocate_end”: “172.16.121.200”,

            “allocate_cidr”: “172.16.121.0/24”,

            “overcloud_bridge_mappings”: “svcnet1:br-svc”,

            “overcloud_flat_networks”: “svcnet1”,

            “customer_router_ip”: “172.16.121.1”

        },

        “codn”: {

            “undercloud_http_proxy”: “http://16.209.133.239:3128&#8221;,

            “undercloud_https_proxy”: “http://16.209.133.239:3128&#8221;,

            “overcloud_http_proxy”: “http://16.209.133.239:3128&#8221;,

            “overcloud_https_proxy”: “http://16.209.133.239:3128&#8221;

        }

    }

  • Now create the baremetal.csv file using the tools downloaded earlier. [Note : Don’t include the seed host in this file.]
  • The Create-Baremetal.py file requiresa CSV file with the ilo details
    • root@headnode03r03:~/work/python-hpilo-2.8# cd ..
    • root@headnode03r03:~/work# python3 Create-Baremetal.py

    usage: Create-Baremetal.py [-h] [-f FILE]

    Create-Baremetal.py: error: argument -f/–file: can’t open ‘Helion-iLO.csv’: [Errno 2] No such file or directory: ‘Helion-iLO.csv’

  • Create the CSV file in the following format

help=’CSV with iLO IP, username, password’, default=’Helion-iLO.csv’

  • For example:

    root@headnode03r03:~/work# vi Helion-iLO.csv

    root@headnode03r03:~/work# cat Helion-iLO.csv

    172.30.0.117,Administrator,xxxx [Note : Remove Seed Host]

    172.30.0.118,Administrator,xxxx

    172.30.0.119,Administrator,xxxx

    172.30.0.120,Administrator,xxxx

    172.30.0.121,Administrator,xxxx

    172.30.0.122,Administrator,xxxx

    172.30.0.123,Administrator,xxxx

    172.30.0.124,Administrator,xxxx

  • Create the baremetal.csv file
    • root@headnode03r03:~/work# python3 Create-Baremetal.py

    Creating baremetal.csv in the current folder…

    Gathering information for node: 172.30.0.117 PXE-Mac:9c:b6:54:9b:e4:68, 262144MB, 20 Cores, 1116GiB

    Gathering information for node: 172.30.0.118 PXE-Mac:9c:b6:54:9b:94:48, 262144MB, 20 Cores, 1116GiB

    Gathering information for node: 172.30.0.119 PXE-Mac:9c:b6:54:9b:b6:98, 262144MB, 20 Cores, 1116GiB

    Gathering information for node: 172.30.0.120 PXE-Mac:9c:b6:54:9b:76:90, 262144MB, 20 Cores, 1116GiB

    Gathering information for node: 172.30.0.121 PXE-Mac:9c:b6:54:9b:f6:78, 262144MB, 20 Cores, 1116GiB

    Gathering information for node: 172.30.0.122 PXE-Mac:f0:92:1c:05:49:30, 262144MB, 20 Cores, 1116GiB

    Gathering information for node: 172.30.0.123 PXE-Mac:9c:b6:54:9b:64:00, 262144MB, 20 Cores, 1116GiB

    Gathering information for node: 172.30.0.124 PXE-Mac:9c:b6:54:9b:d6:78, 262144MB, 20 Cores, 1116GiB

    root@headnode03r03:~/work# cat baremetal.csv

    9c:b6:54:9b:94:48,Administrator,xxxx,172.30.0.118,20,262144,1116

    9c:b6:54:9b:b6:98,Administrator,xxxx,172.30.0.119,20,262144,1116

    9c:b6:54:9b:76:90,Administrator,xxxx,172.30.0.120,20,262144,1116

    9c:b6:54:9b:f6:78,Administrator,xxxx,172.30.0.121,20,262144,1116

    f0:92:1c:05:49:30,Administrator,xxxx,172.30.0.122,20,262144,1116

    9c:b6:54:9b:64:00,Administrator,xxxx,172.30.0.123,20,262144,1116

    9c:b6:54:9b:d6:78,Administrator,xxxx,172.30.0.124,20,262144,1116

  • Configure the http proxy on the seed host
    • root@headnode03r03:~/work# export http_proxy=http://16.209.133.239:3128
    • root@headnode03r03:~/work# export https_proxy=http://16.209.133.239:3128
    • root@headnode03r03:~/work# export no_proxy=localhost,127.0.0.1,172.12.120.2
  • Execute the kvm-custom-ips
    • root@headnode03r03:~# bash
    • root@headnode03r03:~# source tripleo/tripleo-incubator/scripts/hp_ced_load_confi g.sh tripleo/configs/kvm-custom-ips.json

    The configuration specified by tripleo/configs/kvm-custom-ips.json is loaded and  ready for installation

  • Build the seed VM
    • root@headnode03r03:~# bash -x /root/tripleo/tripleo-incubator/scripts/hp_ced_host_manager.sh –create-seed |& tee seedinstall.log

Seed Complete – now for undercloud and over cloud


  • Copy the previously created baremetal.csv to the newly created seed vm
    • scp baremetal.csv root@172.16.120.3:/root
  • Log in to the newly created seed vm
    • ssh root@172.16.120.3
  • Check both the baremetal file and the kvm-custom-ips.json are correct
  • Execute the kvm-custom-ips.json file
    • source tripleo/tripleo-incubator/scripts/hp_ced_load_config.sh tripleo/configs/kvm-custom-ips.json
  • Install the undercloud and overcloud
    • bash -x /root/tripleo/tripleo-incubator/scripts/hp_ced_installer.sh |& tee cloud_install.log
  • And that should give you –

Coming soon article for verifying installation

Errors

Problem :

=======

root@headnode03r03:~# source /root/work/tripleo/tripleo-incubator/scripts/hp_ced_load_config.sh /root/work/tripleo/configs/kvm-custom-ips.json
Error: Script has no access to write variables to environment.
You must run this using one of the following forms:
  source hp_ced_load_config.sh <config.json>
or
  . hp_ced_load_config.sh <config.json>

Solved : Ensure you’re in a bash shell - run bash and then run the command

=======================================================

Problem :

=======

root@headnode03r03:~# source /root/work/tripleo/tripleo-incubator/scripts/hp_ced_load_config.sh /root/work/tripleo/configs/kvm-custom-ips.json
Error: [Errno 2] No such file or directory: '/root/tripleo/hp_passthrough/overcloud_pre_installer.json'

Solved : Ensure the media is installed in the correct installed in the /root/ directory. Early documentation requests that the media is expanded into a /root/work/ directory. This is no longer correct.
root@headnode03r03:~# mv work/tripleo/ /root/

=============================================================

Problem :

=======

+ hp_ced_validate_ip validate -a 172.16.120.3 -n 172.16.120.0/24 -p down
Valid IP address: 172.16.120.3
Address (172.16.120.3) on network (172.16.120.0/24)
ERROR: Found pingable IP, cannot continue
Pingable IP: 172.16.120.3

Solved : All servers not switched off - ensure lab is reset correctly before starting

=============================================================

Problem :

=======

+ die 'Error: BRIDGE_INTERFACE:eth0 has no assigned IP address'
+ echo Error: BRIDGE_INTERFACE:eth0 has no assigned IP address
Error: BRIDGE_INTERFACE:eth0 has no assigned IP address
+ exit 1

Solved : The seed host was not reset cleanly after first attempt - need to remove the baremetal bridge - brbm and place ip address back on em1…

Deleted brbm
Added IP back to em1
Added default gw

=====================================================================

One thought on “Successful HP Helion OpenStack Commercial Edition 1.01 Basic KVM Installation

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s