Difference between revisions of "How to install Openstack Newton"
Line 135: | Line 135: | ||
==Controller node installation== | ==Controller node installation== | ||
Login to your controller node as root and copy the script below into you root directory | 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 | 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 | ||
+ | #10.192.0.38 is the IP address of eno1 which is the mgmt interface | ||
+ | |||
+ | 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== | ==Compute node installation== |
Revision as of 14:17, 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
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 #10.192.0.38 is the IP address of eno1 which is the mgmt interface
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