Difference between revisions of "How to install Openstack Newton"

From ppwiki
Jump to navigation Jump to search
Line 139: Line 139:
  
 
  #!/bin/bash
 
  #!/bin/bash
 
 
  #If you are not using a DNS server make sure you have  
 
  #If you are not using a DNS server make sure you have  
 
  #serverIP  FQDN  hostname in your /etc/hosts file
 
  #serverIP  FQDN  hostname in your /etc/hosts file
#10.192.0.38 is the IP address of eno1 which is the mgmt interface
 
 
 
  if [ "$(id -u)" != "0" ]; then
 
  if [ "$(id -u)" != "0" ]; then
 
   echo "This script must be run as root" 1>&2
 
   echo "This script must be run as root" 1>&2
 
   exit 1
 
   exit 1
 
  fi
 
  fi
 
 
  PASSWORD=password1
 
  PASSWORD=password1
 
  CONFIG_DIR=/root/controller
 
  CONFIG_DIR=/root/controller
 
 
  file="99-openstack.cnf"
 
  file="99-openstack.cnf"
 
  export DEBIAN_FRONTEND=noninteractive
 
  export DEBIAN_FRONTEND=noninteractive
Line 158: Line 153:
 
  echo "Enable the Openstack repository"
 
  echo "Enable the Openstack repository"
 
  sleep 3
 
  sleep 3
 
 
         apt -y install software-properties-common
 
         apt -y install software-properties-common
 
         add-apt-repository -y cloud-archive:newton
 
         add-apt-repository -y cloud-archive:newton
 
         apt update && apt -y dist-upgrade
 
         apt update && apt -y dist-upgrade
 
 
  echo "Install the Openstack client"
 
  echo "Install the Openstack client"
 
  sleep 3
 
  sleep 3
 
 
         apt -y install python-openstackclient
 
         apt -y install python-openstackclient
 
 
  echo "Start to Install Database"
 
  echo "Start to Install Database"
 
  sleep 3
 
  sleep 3
 
         apt -y install mariadb-server python-pymysql
 
         apt -y install mariadb-server python-pymysql
 
 
  echo "Create and edit the files/etc/mysql/mariadb.conf.d/99-openstack.cnf"
 
  echo "Create and edit the files/etc/mysql/mariadb.conf.d/99-openstack.cnf"
 
  cd /etc/mysql/mariadb.conf.d/
 
  cd /etc/mysql/mariadb.conf.d/

Revision as of 14:18, 15 July 2018

For this tutorial, we will be installing Openstack Newton on Ubuntu 16.04 (Xenial). You can use the same tutorial also on Debian 8 (Jessie) but this will install Openstack Mitaka. This tutorial is to help people that wants to start to learn Openstack.

Prerequisites

To complete this tutorial, you'll need the following:

  • 1 controller node
  • 1 compute node

Hardware requirements

According to the Openstack Documentation, to run several CicrOS instances you will need:

  • Controller Node: 1 processor, 4 GB memory, and 5 GB storage
  • Compute Node: 1 processor, 2 GB memory, and 10 GB storage

This this tutorial I am using:

  • Controller Node: 2 processors, 16 GB memory, 2x250GB disks in a Raid1 configuration and 2 NIC's (eno1 and eno2)
  • Compute Node: 2 processors, 16 GB memory, 2x350GB disks in a Raid1 configuration and 2 NIC's (eno1 and eno2)

Your environment doesn't have to have 2 disks in Raid1 configuration, 1 disk will be okay.

Networking

I am using a Cisco switch to setup 2 VLAN's

  • manegment VLAN
  • Provider VLAN ( Internet)

If you don't have a Cisco switch, you can use two 4 port switches

Network.png

Controller node

Update hosts file

Make sure the node has Ubuntu 16.04 installed with all updates. If you do not have a DNS server in your environment manually update the hosts file

/etc/hosts

controller mgmt_IP_address    controller.your_domain_name      controller
compute mgmt_IP_address       computer.your_domain_name        compute

example

10.192.16.38                  controller.dfw.ppnet             controller
10.192.16.67                  compute.dfw.ppnet                computer

In my case I have a DNS server in my environement so my /etc/hosts file looks like this:

127.0.0.1       localhost
10.192.16.38     controller.dfw.ppnet   controller
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

update Interface

In my environment I have a DHCP server and a DNS server on the lab network and all the install on the lab network are done by pxe boot and a preseed file that auto configure my first network interface. My interface file looks like the one below. If you do not have a DHCP or DNS server you can do this manually.

# The primary network interface
auto eno1
iface eno1 inet static
       address 10.192.16.38
       netmask 255.255.252.0
       network 10.192.16.0
       broadcast 10.192.19.255
       gateway 10.192.16.1
       # dns-* options are implemented by the resolvconf package, if installed
       dns-nameservers 10.192.16.2 10.192.16.4
       dns-search dfw.ppnet
# The secondery network interface
auto eno2
iface eno2 inet static
       address 10.192.0.75
       network 10.192.0.0
       netmask 255.255.255.0

Compute node

Update hosts file

Make sure the node has Ubuntu 16.04 installed with all updates. If you do not have a DNS server in your environment manually update the hosts file

/etc/hosts

controller mgmt_IP_address    controller.your_domain_name      controller
compute mgmt_IP_address       computer.your_domain_name        compute

example

10.192.16.38                  controller.dfw.ppnet             controller
10.192.16.67                  compute.dfw.ppnet                computer

In my case I have a DNS server in my environement so my /etc/hosts file looks like this:

127.0.0.1       localhost
10.192.16.67     compute.dfw.ppnet   compute
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Update interface

# The primary network interface
 auto eno1
 iface eno1 inet static
       address 10.192.16.67
       netmask 255.255.252.0
       network 10.192.16.0
       broadcast 10.192.19.255
       gateway 10.192.16.1
       # dns-* options are implemented by the resolvconf package, if installed
       dns-nameservers 10.192.16.2 10.192.16.4
       dns-search dfw.ppnet
# The secondery network interface
auto eno2
iface eno2 inet static
       address 10.192.0.73
       network 10.192.0.0
       netmask 255.255.255.0

Testing Network

From you controller node ping the compute node

ping compute.dfw.ppnet
PING compute.dfw.ppnet (10.192.16.67) 56(84) bytes of data.
64 bytes from compute.dfw.ppnet (10.192.16.67): icmp_seq=1 ttl=64 time=0.286 ms
64 bytes from compute.dfw.ppnet (10.192.16.67): icmp_seq=2 ttl=64 time=0.213 ms
64 bytes from compute.dfw.ppnet (10.192.16.67): icmp_seq=3 ttl=64 time=0.209 ms
64 bytes from compute.dfw.ppnet (10.192.16.67): icmp_seq=4 ttl=64 time=0.216 ms

From your compute node ping the controller node

ping controller.dfw.ppnet
PING controller.dfw.ppnet (10.192.16.38) 56(84) bytes of data.
64 bytes from controller.dfw.ppnet (10.192.16.38): icmp_seq=1 ttl=64 time=0.206 ms
64 bytes from controller.dfw.ppnet (10.192.16.38): icmp_seq=2 ttl=64 time=0.186 ms
64 bytes from controller.dfw.ppnet (10.192.16.38): icmp_seq=3 ttl=64 time=0.166 ms

Now that our environment is ready lest move to the OpenStack installation.

Controller node installation

Login to your controller node as root and copy the script below into you root directory Note: I am using password=password1 for all passwords in this tutorial. You can use a different password.

vi install-controller-node.sh
#!/bin/bash
#If you are not using a DNS server make sure you have 
#serverIP   FQDN   hostname in your /etc/hosts file
if [ "$(id -u)" != "0" ]; then
  echo "This script must be run as root" 1>&2
  exit 1
fi
PASSWORD=password1
CONFIG_DIR=/root/controller
file="99-openstack.cnf"
export DEBIAN_FRONTEND=noninteractive
debconf-set-selections <<< 'mariadb-server-5.5 mysql-server/root_password password '$PASSWORD
debconf-set-selections <<< 'mariadb-server-5.5 mysql-server/root_password_again password '$PASSWORD
echo "Enable the Openstack repository"
sleep 3
       apt -y install software-properties-common
       add-apt-repository -y cloud-archive:newton
       apt update && apt -y dist-upgrade
echo "Install the Openstack client"
sleep 3
       apt -y install python-openstackclient
echo "Start to Install Database"
sleep 3
       apt -y install mariadb-server python-pymysql
echo "Create and edit the files/etc/mysql/mariadb.conf.d/99-openstack.cnf"
cd /etc/mysql/mariadb.conf.d/
    if [ ! -f "$file" ] ; then
        # if not create the file
cat > $file << EOF

Compute node installation

Login to your compute node as root and copy the script below into you root directory


References

https://docs.openstack.org/newton/install-guide-ubuntu/