Skip to content
This repository was archived by the owner on Aug 16, 2021. It is now read-only.
This repository was archived by the owner on Aug 16, 2021. It is now read-only.

Ubuntu based OpenStack IceHouse Installation #15

@AmitKumarDas

Description

@AmitKumarDas

Start

  • check memory of VM/box
  • check capacity of VM/box
  • use 64-bit version
  • example assumes 3 node architecture
    • 1 controller, 1 network & 1 compute

Networking at controller

  • configure 1st interface as management interface
  IP address: 10.0.0.11
  Network mask: 255.255.255.0 (or /24)
  Default gateway: 10.0.0.1

  set hostname of the node to controller
  edit /etc/hosts file to resolve controller, network & compute address

  remove the 127.0.0.1 line

Networking at network

  • configure 1st interface as management interface
  • configure 2nd interface as instance tunnels interface
  • configure 3rd interface as the external interface
  • external interface does not need an IP address configured
  • replace INTERFACE_NAME with actual interface name e.g. eth2
    • edit /etc/network/interfaces
  # The external network interface
  auto INTERFACE_NAME
  iface INTERFACE_NAME inet manual
    up ip link set dev $IFACE up
    down ip link set dev $IFACE down
  • restart network
  - service networking stop && service networking start
  • name resolution @ /etc/hosts
    • remove 127.0.0.1 line entry

Networking at compute

  • configure 1st interface as management interface
  • configure 2nd interface as instance tunnels interface
  • name resolution

Verify networking connectivity

  - verify internet connection
    - @ controller # ping -c 4 openstack.org
  - verify controller to network's management connection
    - @ controller # ping -c 4 network
  - verify controller to compute's management connection
    - @ controller # ping -c 4 compute

  - similarly do @ network
  - similarly do @ compute

Synchronize services across multiple machines

  - @ controller # apt-get install ntp

  - configure the other nodes to sync from controller node
    - install the ntp daemon as above
    - edit /etc/ntp.conf
      - change server directive to use controller node

Controller & mysql

  - apt-get install python-mysqldb mysql-server
    - remember the db root password
  • edit /etc/mysql/my.cnf
  - [mysqld]
  bind-address = management IP of controller node

  - bind-address enables access to mysql from other nodes via management network
  • verify /etc/mysql/my.cnf
  - default-storage-engine = innodb
  - collation-server = utf8_general_ci
  - init-connect = 'SET NAMES utf8'
  - character-set-server = utf8
  • restart mysql
  - service mysql restart
  • delete anonymous users that are created when db is first started
  - mysql_secure_installation
  - if above fails:
    - mysql_install_db
    - mysql_secure_installation

Other nodes & mysql

  • install mysql python library
  - apt-get install python-mysqldb

OpenStack packages

  • ubuntu cloud archive is a repo that allows to install newer releases of OpenStack
  • on stable supported version of ubuntu
  - apt-get install python-software-properties
  - add-apt-repository cloud-archive:icehouse
  - apt-get update
  - apt-get dist-upgrade

  - reboot

Install message broker service

  - apt-get install rabbitmq-server
  • default install creates guest for username & password
    • replace with a suitable password
    • mention the password in .conf files for all services
  - rabbitmqctl change_password guest <RABBIT_PASS>

Install identity service

  - apt-get install keystone
  • update the MySQL database info at conf files
    • edit /etc/keystone/keystone.conf
  [database]
  connection = mysql://keystone:<KEYSTONE_DB_PASS>@controller/keystone

  - provide a suitable password for keystone user
  • delete the default SQLite database which comes during Ubuntu installation
  - rm /var/lib/keystone/keystone.db
  • create a keystone database user
  - mysql -u root -p
  - CREATE DATABASE keystone;
  - GRANT ALL PRIVILEDGES ON keystone.* TO 'keystone'@'localhost'  \
     IDENTIFIED BY 'KEYSTONE_DBPASS';
  - GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%'  \
     IDENTIFIED BY 'KEYSTONE_DBPASS';

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions