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

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions