In this article, I will explore how to install and configure OpenStack in an easy way.

Let start to discuss OpenStack little bit. It is a broad and very complicated system because it uses a lot of services which work together via API. It supports a lot of Hypervisors (KVM, XEN, Qemu, ESXI, HyperV). I will describe some of the services as following:

Nova – Controls all compute nodes (which are hypervisors – KVM, XEN, Qemu, ESXI, HyperV).

Horizon – The dashboard, WEB user interface.

Keystone – Identity service. Identifies the tenant users and gives access to the internal resources.

Swift – Object storage service. Represent access to the object storage via API.

Glance – Image manager. Controls images for virtual instances.

Cinder – Block storage service. Controls block devices used by virtual instances.

Neutron – A Software Defined Networking service. Controls network resources between instances, Controller and Compute nodes via OpenvSwitch (software-based network switch) which supports VXLAN. Agents are used as a communication point. It is the most complicated service in the OpenStack.

The configuration of OpenStack is consists of one Controller and three Compute nodes with CentOS7.2 operating system. The network topology will be as following:

schema-opemstack
Prior to starting the installation and configuration we must use DNS names or /etc/hosts file for all Linux machines. I use openstack.az domain name and my A records as following:

 controller IN A 85.132.72.10
 compute1 IN A 85.132.72.11
 compute2 IN A 85.132.72.12
 compute3 IN A 85.132.72.13

root password for all servers is the same.
The following steps must be performed on all servers (controller and compute nodes).

Change network card name to legacy ethX format.

Add net.ifnames=0 biosdevname=0 to the end of the GRUB_CMDLINE_LINUX variable in the /etc/default/grub file:

[root@controller ~]# cat /etc/default/grub
 GRUB_TIMEOUT=5
 GRUB_DEFAULT=saved
 GRUB_DISABLE_SUBMENU=true
 GRUB_TERMINAL_OUTPUT="console"
 GRUB_CMDLINE_LINUX="rd.lvm.lv=centos_controller/root rd.lvm.lv=centos_controller/swap rhgb quiet net.ifnames=0 biosdevname=0"
 GRUB_DISABLE_RECOVERY="true"

Create /etc/sysconfig/network-scripts/ifcfg-eth0 file and add the following lines to it (Do not forget to change IP address for all servers):

 TYPE=Ethernet
 BOOTPROTO=none
 DEFROUTE=yes
 IPV4_FAILURE_FATAL=no
 IPV6INIT=no
 IPV6_AUTOCONF=yes
 IPV6_DEFROUTE=yes
 IPV6_PEERDNS=yes
 IPV6_PEERROUTES=yes
 IPV6_FAILURE_FATAL=no
 NAME=eth0
 DEVICE=eth0
 ONBOOT=yes
 IPADDR=85.132.72.10
 PREFIX=24
 GATEWAY=85.132.72.1
 DNS1=8.8.8.8
 DNS2=8.8.4.4
 DOMAIN=openstack.az

Create /etc/sysconfig/network-scripts/ifcfg-eth1 file and add the following lines to it (Do not forget to change IP address for all servers):

 TYPE=Ethernet
 BOOTPROTO=none
 DEFROUTE=yes
 IPV4_FAILURE_FATAL=no
 IPV6INIT=no
 IPV6_AUTOCONF=yes
 IPV6_DEFROUTE=yes
 IPV6_PEERDNS=yes
 IPV6_PEERROUTES=yes
 IPV6_FAILURE_FATAL=no
 NAME=eth1
 DEVICE=eth1
 ONBOOT=yes
 IPADDR0=172.16.0.10
 PREFIX0=24

Update GRUB configuration file and reboot all servers:

 [root@controller ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
 [root@controller ~]# reboot

 

Perform the system update, install required tools and update the system time (at the end restart the system):

[root@controller ~]# yum update -y
 [root@controller ~]# yum -y install net-tools vim ntpdate ntp yum-utils git
 [root@controller ~]# yum -y install epel-release
 [root@controller ~]# yum -y install nload trafshow htop sshpass bind-utils
 [root@controller ~]# yum -y install erlang --skip-broken
 [root@controller ~]# ntpdate 0.asia.pool.ntp.org
 Disable firewall, NetworkManager, SeLinux and add the environment variables:
 [root@controller ~]# systemctl disable firewalld
 [root@controller ~]# systemctl stop firewalld
 [root@controller ~]# systemctl stop NetworkManager
 [root@controller ~]# systemctl disable NetworkManager
 [root@controller ~]# cat /etc/selinux/config | grep -v '^#' | grep disabled
 SELINUX=disabled
 [root@controller ~]# cat /etc/environment
 LANG=en_US.utf-8
 LC_ALL=en_US.utf-8
 [root@controller ~]# reboot
 Take snapshot of your virtual machines and install OpenStack repositories:
 [root@controller ~]# yum install -y centos-release-openstack-mitaka
 [root@controller ~]# yum repolist | grep OpenStack
 centos-openstack-mitaka/x86_64 CentOS-7 - OpenStack mitaka 1,252

[root@controller ~]# yum --enablerepo=epel info erlang
 [root@controller ~]# yum --enablerepo=epel -y install erlang

The following steps must be performed only on the controller.openstack.az

 

[root@controller ~]# yum install -y openstack-packstack

Generate the answer file for our OpenStack configuration:
[root@controller ~]# packstack –gen-answer-file=/root/answer.txt

Content of the answer.txt file will be as indicated below:

 # cat /root/answer.txt | grep -v '^#' | grep -v '^$'
 [general]
 CONFIG_SSH_KEY=/root/.ssh/id_rsa.pub
 # Password for API and horizon interface
 CONFIG_DEFAULT_PASSWORD=My0PensT@ckp@44w0rd
 CONFIG_SERVICE_WORKERS=%{::processorcount}
 CONFIG_MARIADB_INSTALL=y
 CONFIG_GLANCE_INSTALL=y
 CONFIG_CINDER_INSTALL=y
 CONFIG_MANILA_INSTALL=n
 CONFIG_NOVA_INSTALL=y
 CONFIG_NEUTRON_INSTALL=y
 CONFIG_HORIZON_INSTALL=y
 CONFIG_SWIFT_INSTALL=y
 CONFIG_CEILOMETER_INSTALL=y
 CONFIG_AODH_INSTALL=y
 CONFIG_GNOCCHI_INSTALL=y
 CONFIG_SAHARA_INSTALL=n
 CONFIG_HEAT_INSTALL=n
 CONFIG_TROVE_INSTALL=n
 CONFIG_IRONIC_INSTALL=n
 CONFIG_CLIENT_INSTALL=y
 CONFIG_NTP_SERVERS=0.asia.pool.ntp.org
 CONFIG_NAGIOS_INSTALL=y
 EXCLUDE_SERVERS=
 CONFIG_DEBUG_MODE=n
 CONFIG_CONTROLLER_HOST=85.132.72.10
 CONFIG_COMPUTE_HOSTS=85.132.72.11,85.132.72.12,85.132.72.13
 CONFIG_NETWORK_HOSTS=85.132.72.10
 CONFIG_VMWARE_BACKEND=n
 CONFIG_UNSUPPORTED=n
 CONFIG_USE_SUBNETS=n
 CONFIG_VCENTER_HOST=
 CONFIG_VCENTER_USER=
 CONFIG_VCENTER_PASSWORD=
 CONFIG_VCENTER_CLUSTER_NAMES=
 CONFIG_STORAGE_HOST=85.132.72.10
 CONFIG_SAHARA_HOST=85.132.72.10
 CONFIG_USE_EPEL=n
 CONFIG_REPO=
 CONFIG_ENABLE_RDO_TESTING=n
 CONFIG_RH_USER=
 CONFIG_SATELLITE_URL=
 CONFIG_RH_SAT6_SERVER=
 CONFIG_RH_PW=
 CONFIG_RH_OPTIONAL=y
 CONFIG_RH_PROXY=
 CONFIG_RH_SAT6_ORG=
 CONFIG_RH_SAT6_KEY=
 CONFIG_RH_PROXY_PORT=
 CONFIG_RH_PROXY_USER=
 CONFIG_RH_PROXY_PW=
 CONFIG_SATELLITE_USER=
 CONFIG_SATELLITE_PW=
 CONFIG_SATELLITE_AKEY=
 CONFIG_SATELLITE_CACERT=
 CONFIG_SATELLITE_PROFILE=
 CONFIG_SATELLITE_FLAGS=
 CONFIG_SATELLITE_PROXY=
 CONFIG_SATELLITE_PROXY_USER=
 CONFIG_SATELLITE_PROXY_PW=
 CONFIG_SSL_CACERT_FILE=/etc/pki/tls/certs/selfcert.crt
 CONFIG_SSL_CACERT_KEY_FILE=/etc/pki/tls/private/selfkey.key
 CONFIG_SSL_CERT_DIR=~/packstackca/
 CONFIG_SSL_CACERT_SELFSIGN=y
 CONFIG_SELFSIGN_CACERT_SUBJECT_C=--
 CONFIG_SELFSIGN_CACERT_SUBJECT_ST=State
 CONFIG_SELFSIGN_CACERT_SUBJECT_L=City
 CONFIG_SELFSIGN_CACERT_SUBJECT_O=openstack
 CONFIG_SELFSIGN_CACERT_SUBJECT_OU=packstack
 CONFIG_SELFSIGN_CACERT_SUBJECT_CN=controller.openstack.az
 CONFIG_SELFSIGN_CACERT_SUBJECT_MAIL=admin@controller.openstack.az
 CONFIG_AMQP_BACKEND=rabbitmq
 CONFIG_AMQP_HOST=85.132.72.10
 CONFIG_AMQP_ENABLE_SSL=n
 CONFIG_AMQP_ENABLE_AUTH=n
 CONFIG_AMQP_NSS_CERTDB_PW=PW_PLACEHOLDER
 CONFIG_AMQP_AUTH_USER=amqp_user
 CONFIG_AMQP_AUTH_PASSWORD=PW_PLACEHOLDER
 CONFIG_MARIADB_HOST=85.132.72.10
 CONFIG_MARIADB_USER=root
 CONFIG_MARIADB_PW=515ab918190c4234
 CONFIG_KEYSTONE_DB_PW=8416870b005046cf
 CONFIG_KEYSTONE_DB_PURGE_ENABLE=True
 CONFIG_KEYSTONE_REGION=RegionOne
 CONFIG_KEYSTONE_ADMIN_TOKEN=fe8f91a28e4c4499a3203b1c21db28a9
 CONFIG_KEYSTONE_ADMIN_EMAIL=root@localhost
 CONFIG_KEYSTONE_ADMIN_USERNAME=admin
 CONFIG_KEYSTONE_ADMIN_PW=My0PensT@ckp@44w0rd
 CONFIG_KEYSTONE_DEMO_PW=265296c9b01543ab
 CONFIG_KEYSTONE_API_VERSION=v2.0
 CONFIG_KEYSTONE_TOKEN_FORMAT=UUID
 CONFIG_KEYSTONE_SERVICE_NAME=httpd
 CONFIG_KEYSTONE_IDENTITY_BACKEND=sql
 CONFIG_KEYSTONE_LDAP_URL=ldap://85.132.72.10
 CONFIG_KEYSTONE_LDAP_USER_DN=
 CONFIG_KEYSTONE_LDAP_USER_PASSWORD=
 CONFIG_KEYSTONE_LDAP_SUFFIX=
 CONFIG_KEYSTONE_LDAP_QUERY_SCOPE=one
 CONFIG_KEYSTONE_LDAP_PAGE_SIZE=-1
 CONFIG_KEYSTONE_LDAP_USER_SUBTREE=
 CONFIG_KEYSTONE_LDAP_USER_FILTER=
 CONFIG_KEYSTONE_LDAP_USER_OBJECTCLASS=
 CONFIG_KEYSTONE_LDAP_USER_ID_ATTRIBUTE=
 CONFIG_KEYSTONE_LDAP_USER_NAME_ATTRIBUTE=
 CONFIG_KEYSTONE_LDAP_USER_MAIL_ATTRIBUTE=
 CONFIG_KEYSTONE_LDAP_USER_ENABLED_ATTRIBUTE=
 CONFIG_KEYSTONE_LDAP_USER_ENABLED_MASK=-1
 CONFIG_KEYSTONE_LDAP_USER_ENABLED_DEFAULT=TRUE
 CONFIG_KEYSTONE_LDAP_USER_ENABLED_INVERT=n
 CONFIG_KEYSTONE_LDAP_USER_ATTRIBUTE_IGNORE=
 CONFIG_KEYSTONE_LDAP_USER_DEFAULT_PROJECT_ID_ATTRIBUTE=
 CONFIG_KEYSTONE_LDAP_USER_ALLOW_CREATE=n
 CONFIG_KEYSTONE_LDAP_USER_ALLOW_UPDATE=n
 CONFIG_KEYSTONE_LDAP_USER_ALLOW_DELETE=n
 CONFIG_KEYSTONE_LDAP_USER_PASS_ATTRIBUTE=
 CONFIG_KEYSTONE_LDAP_USER_ENABLED_EMULATION_DN=
 CONFIG_KEYSTONE_LDAP_USER_ADDITIONAL_ATTRIBUTE_MAPPING=
 CONFIG_KEYSTONE_LDAP_GROUP_SUBTREE=
 CONFIG_KEYSTONE_LDAP_GROUP_FILTER=
 CONFIG_KEYSTONE_LDAP_GROUP_OBJECTCLASS=
 CONFIG_KEYSTONE_LDAP_GROUP_ID_ATTRIBUTE=
 CONFIG_KEYSTONE_LDAP_GROUP_NAME_ATTRIBUTE=
 CONFIG_KEYSTONE_LDAP_GROUP_MEMBER_ATTRIBUTE=
 CONFIG_KEYSTONE_LDAP_GROUP_DESC_ATTRIBUTE=
 CONFIG_KEYSTONE_LDAP_GROUP_ATTRIBUTE_IGNORE=
 CONFIG_KEYSTONE_LDAP_GROUP_ALLOW_CREATE=n
 CONFIG_KEYSTONE_LDAP_GROUP_ALLOW_UPDATE=n
 CONFIG_KEYSTONE_LDAP_GROUP_ALLOW_DELETE=n
 CONFIG_KEYSTONE_LDAP_GROUP_ADDITIONAL_ATTRIBUTE_MAPPING=
 CONFIG_KEYSTONE_LDAP_USE_TLS=n
 CONFIG_KEYSTONE_LDAP_TLS_CACERTDIR=
 CONFIG_KEYSTONE_LDAP_TLS_CACERTFILE=
 CONFIG_KEYSTONE_LDAP_TLS_REQ_CERT=demand
 CONFIG_GLANCE_DB_PW=1de6f97dfc8a44bc
 CONFIG_GLANCE_KS_PW=523b0e96696a44a8
 CONFIG_GLANCE_BACKEND=file
 CONFIG_CINDER_DB_PW=e5e15d13737f4f51
 CONFIG_CINDER_DB_PURGE_ENABLE=True
 CONFIG_CINDER_KS_PW=25e60e7a2d9c4987
 CONFIG_CINDER_BACKEND=lvm
 CONFIG_CINDER_VOLUMES_CREATE=y
 CONFIG_CINDER_VOLUMES_SIZE=20G
 CONFIG_CINDER_GLUSTER_MOUNTS=
 CONFIG_CINDER_NFS_MOUNTS=
 CONFIG_CINDER_NETAPP_LOGIN=
 CONFIG_CINDER_NETAPP_PASSWORD=
 CONFIG_CINDER_NETAPP_HOSTNAME=
 CONFIG_CINDER_NETAPP_SERVER_PORT=80
 CONFIG_CINDER_NETAPP_STORAGE_FAMILY=ontap_cluster
 CONFIG_CINDER_NETAPP_TRANSPORT_TYPE=http
 CONFIG_CINDER_NETAPP_STORAGE_PROTOCOL=nfs
 CONFIG_CINDER_NETAPP_SIZE_MULTIPLIER=1.0
 CONFIG_CINDER_NETAPP_EXPIRY_THRES_MINUTES=720
 CONFIG_CINDER_NETAPP_THRES_AVL_SIZE_PERC_START=20
 CONFIG_CINDER_NETAPP_THRES_AVL_SIZE_PERC_STOP=60
 CONFIG_CINDER_NETAPP_NFS_SHARES=
 CONFIG_CINDER_NETAPP_NFS_SHARES_CONFIG=/etc/cinder/shares.conf
 CONFIG_CINDER_NETAPP_VOLUME_LIST=
 CONFIG_CINDER_NETAPP_VFILER=
 CONFIG_CINDER_NETAPP_PARTNER_BACKEND_NAME=
 CONFIG_CINDER_NETAPP_VSERVER=
 CONFIG_CINDER_NETAPP_CONTROLLER_IPS=
 CONFIG_CINDER_NETAPP_SA_PASSWORD=
 CONFIG_CINDER_NETAPP_ESERIES_HOST_TYPE=linux_dm_mp
 CONFIG_CINDER_NETAPP_WEBSERVICE_PATH=/devmgr/v2
 CONFIG_CINDER_NETAPP_STORAGE_POOLS=
 CONFIG_IRONIC_DB_PW=PW_PLACEHOLDER
 CONFIG_IRONIC_KS_PW=PW_PLACEHOLDER
 CONFIG_NOVA_DB_PURGE_ENABLE=True
 CONFIG_NOVA_DB_PW=8ebb03ccc7b14662
 CONFIG_NOVA_KS_PW=281c14a5b3c74632
 CONFIG_NOVA_SCHED_CPU_ALLOC_RATIO=16.0
 CONFIG_NOVA_SCHED_RAM_ALLOC_RATIO=1.5
 CONFIG_NOVA_COMPUTE_MIGRATE_PROTOCOL=tcp
 CONFIG_NOVA_COMPUTE_MANAGER=nova.compute.manager.ComputeManager
 CONFIG_VNC_SSL_CERT=
 CONFIG_VNC_SSL_KEY=
 CONFIG_NOVA_PCI_ALIAS=
 CONFIG_NOVA_PCI_PASSTHROUGH_WHITELIST=
 CONFIG_NOVA_COMPUTE_PRIVIF=
 CONFIG_NOVA_NETWORK_MANAGER=nova.network.manager.FlatDHCPManager
 CONFIG_NOVA_NETWORK_PUBIF=eth0
 CONFIG_NOVA_NETWORK_PRIVIF=
 CONFIG_NOVA_NETWORK_FIXEDRANGE=192.168.32.0/22
 CONFIG_NOVA_NETWORK_FLOATRANGE=10.3.4.0/22
 CONFIG_NOVA_NETWORK_AUTOASSIGNFLOATINGIP=n
 CONFIG_NOVA_NETWORK_VLAN_START=100
 CONFIG_NOVA_NETWORK_NUMBER=1
 CONFIG_NOVA_NETWORK_SIZE=255
 CONFIG_NEUTRON_KS_PW=d74354036c544de8
 CONFIG_NEUTRON_DB_PW=67b23ec175db4b19
 CONFIG_NEUTRON_L3_EXT_BRIDGE=br-ex
 CONFIG_NEUTRON_METADATA_PW=311385b3f5fe474d
 CONFIG_LBAAS_INSTALL=n
 CONFIG_NEUTRON_METERING_AGENT_INSTALL=y
 CONFIG_NEUTRON_FWAAS=n
 CONFIG_NEUTRON_VPNAAS=n
 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan
 CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vxlan
 CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch
 CONFIG_NEUTRON_ML2_FLAT_NETWORKS=*
 CONFIG_NEUTRON_ML2_VLAN_RANGES=
 CONFIG_NEUTRON_ML2_TUNNEL_ID_RANGES=
 CONFIG_NEUTRON_ML2_VXLAN_GROUP=
 CONFIG_NEUTRON_ML2_VNI_RANGES=10:100
 CONFIG_NEUTRON_L2_AGENT=openvswitch
 CONFIG_NEUTRON_ML2_SUPPORTED_PCI_VENDOR_DEVS=['15b3:1004', '8086:10ca']
 CONFIG_NEUTRON_ML2_SRIOV_AGENT_REQUIRED=n
 CONFIG_NEUTRON_ML2_SRIOV_INTERFACE_MAPPINGS=
 CONFIG_NEUTRON_LB_INTERFACE_MAPPINGS=
 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-eth1
 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-eth1:eth1
 CONFIG_NEUTRON_OVS_BRIDGES_COMPUTE=
 CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1
 CONFIG_NEUTRON_OVS_TUNNEL_SUBNETS=
 CONFIG_NEUTRON_OVS_VXLAN_UDP_PORT=4789
 CONFIG_MANILA_DB_PW=PW_PLACEHOLDER
 CONFIG_MANILA_KS_PW=PW_PLACEHOLDER
 CONFIG_MANILA_BACKEND=generic
 CONFIG_MANILA_NETAPP_DRV_HANDLES_SHARE_SERVERS=false
 CONFIG_MANILA_NETAPP_TRANSPORT_TYPE=https
 CONFIG_MANILA_NETAPP_LOGIN=admin
 CONFIG_MANILA_NETAPP_PASSWORD=
 CONFIG_MANILA_NETAPP_SERVER_HOSTNAME=
 CONFIG_MANILA_NETAPP_STORAGE_FAMILY=ontap_cluster
 CONFIG_MANILA_NETAPP_SERVER_PORT=443
 CONFIG_MANILA_NETAPP_AGGREGATE_NAME_SEARCH_PATTERN=(.*)
 CONFIG_MANILA_NETAPP_ROOT_VOLUME_AGGREGATE=
 CONFIG_MANILA_NETAPP_ROOT_VOLUME_NAME=root
 CONFIG_MANILA_NETAPP_VSERVER=
 CONFIG_MANILA_GENERIC_DRV_HANDLES_SHARE_SERVERS=true
 CONFIG_MANILA_GENERIC_VOLUME_NAME_TEMPLATE=manila-share-%s
 CONFIG_MANILA_GENERIC_SHARE_MOUNT_PATH=/shares
 CONFIG_MANILA_SERVICE_IMAGE_LOCATION=https://www.dropbox.com/s/vi5oeh10q1qkckh/ubuntu_1204_nfs_cifs.qcow2
 CONFIG_MANILA_SERVICE_INSTANCE_USER=ubuntu
 CONFIG_MANILA_SERVICE_INSTANCE_PASSWORD=ubuntu
 CONFIG_MANILA_NETWORK_TYPE=neutron
 CONFIG_MANILA_NETWORK_STANDALONE_GATEWAY=
 CONFIG_MANILA_NETWORK_STANDALONE_NETMASK=
 CONFIG_MANILA_NETWORK_STANDALONE_SEG_ID=
 CONFIG_MANILA_NETWORK_STANDALONE_IP_RANGE=
 CONFIG_MANILA_NETWORK_STANDALONE_IP_VERSION=4
 CONFIG_MANILA_GLUSTERFS_SERVERS=
 CONFIG_MANILA_GLUSTERFS_NATIVE_PATH_TO_PRIVATE_KEY=
 CONFIG_MANILA_GLUSTERFS_VOLUME_PATTERN=
 CONFIG_MANILA_GLUSTERFS_TARGET=
 CONFIG_MANILA_GLUSTERFS_MOUNT_POINT_BASE=
 CONFIG_MANILA_GLUSTERFS_NFS_SERVER_TYPE=gluster
 CONFIG_MANILA_GLUSTERFS_PATH_TO_PRIVATE_KEY=
 CONFIG_MANILA_GLUSTERFS_GANESHA_SERVER_IP=
 CONFIG_HORIZON_SSL=y
 CONFIG_HORIZON_SECRET_KEY=ccd27738725b485aa76bc8aa531b45a9
 CONFIG_HORIZON_SSL_CERT=
 CONFIG_HORIZON_SSL_KEY=
 CONFIG_HORIZON_SSL_CACERT=
 CONFIG_SWIFT_KS_PW=f8595dcbf44a4ffa
 CONFIG_SWIFT_STORAGES=
 CONFIG_SWIFT_STORAGE_ZONES=1
 CONFIG_SWIFT_STORAGE_REPLICAS=1
 CONFIG_SWIFT_STORAGE_FSTYPE=ext4
 CONFIG_SWIFT_HASH=8ee0a4b4687746df
 CONFIG_SWIFT_STORAGE_SIZE=2G
 CONFIG_HEAT_DB_PW=PW_PLACEHOLDER
 CONFIG_HEAT_AUTH_ENC_KEY=44ea37cccabe4814
 CONFIG_HEAT_KS_PW=PW_PLACEHOLDER
 CONFIG_HEAT_CLOUDWATCH_INSTALL=n
 CONFIG_HEAT_CFN_INSTALL=n
 CONFIG_HEAT_DOMAIN=heat
 CONFIG_HEAT_DOMAIN_ADMIN=heat_admin
 CONFIG_HEAT_DOMAIN_PASSWORD=PW_PLACEHOLDER
 CONFIG_PROVISION_DEMO=n
 CONFIG_PROVISION_TEMPEST=n
 CONFIG_PROVISION_DEMO_FLOATRANGE=172.24.4.224/28
 CONFIG_PROVISION_IMAGE_NAME=cirros
 CONFIG_PROVISION_IMAGE_URL=http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
 CONFIG_PROVISION_IMAGE_FORMAT=qcow2
 CONFIG_PROVISION_IMAGE_SSH_USER=cirros
 CONFIG_TEMPEST_HOST=
 CONFIG_PROVISION_TEMPEST_USER=
 CONFIG_PROVISION_TEMPEST_USER_PW=PW_PLACEHOLDER
 CONFIG_PROVISION_TEMPEST_FLOATRANGE=172.24.4.224/28
 CONFIG_PROVISION_TEMPEST_REPO_URI=https://github.com/openstack/tempest.git
 CONFIG_PROVISION_TEMPEST_REPO_REVISION=master
 CONFIG_RUN_TEMPEST=n
 CONFIG_RUN_TEMPEST_TESTS=smoke
 CONFIG_PROVISION_OVS_BRIDGE=y
 CONFIG_GNOCCHI_DB_PW=0b8428077a2d403a
 CONFIG_GNOCCHI_KS_PW=5aee8fd702ab4af1
 CONFIG_CEILOMETER_SECRET=bd79e591c06b4b61
 CONFIG_CEILOMETER_KS_PW=621893efdab3407a
 CONFIG_CEILOMETER_SERVICE_NAME=httpd
 CONFIG_CEILOMETER_COORDINATION_BACKEND=redis
 CONFIG_CEILOMETER_METERING_BACKEND=database
 CONFIG_MONGODB_HOST=85.132.72.10
 CONFIG_REDIS_MASTER_HOST=85.132.72.10
 CONFIG_REDIS_PORT=6379
 CONFIG_REDIS_HA=n
 CONFIG_REDIS_SLAVE_HOSTS=
 CONFIG_REDIS_SENTINEL_HOSTS=
 CONFIG_REDIS_SENTINEL_CONTACT_HOST=
 CONFIG_REDIS_SENTINEL_PORT=26379
 CONFIG_REDIS_SENTINEL_QUORUM=2
 CONFIG_REDIS_MASTER_NAME=mymaster
 CONFIG_AODH_KS_PW=53e095eb1da34c78
 CONFIG_TROVE_DB_PW=PW_PLACEHOLDER
 CONFIG_TROVE_KS_PW=PW_PLACEHOLDER
 CONFIG_TROVE_NOVA_USER=trove
 CONFIG_TROVE_NOVA_TENANT=services
 CONFIG_TROVE_NOVA_PW=PW_PLACEHOLDER
 CONFIG_SAHARA_DB_PW=PW_PLACEHOLDER
 CONFIG_SAHARA_KS_PW=PW_PLACEHOLDER
 CONFIG_NAGIOS_PW=d0089c5be8a941cf

To configure ssh token authentication automatically you can use the script from my GitHub repository:

[root@controller ~]# git clone https://github.com/jamalshahverdiev/unix-linux-shell-codes.git
 [root@controller ~]# cd unix-linux-shell-codes/ssh-token-creater/

Edit the iplist file, add IP addresses of the Controller and all Compute nodes (root password for all servers must be the same):

[root@controller ~]# cat unix-linux-shell-codes/ssh-token-creater/iplist
 controller.openstack.az
 compute1.openstack.az
 compute2.openstack.az
 compute3.openstack.az

Execute the script and after that SSH token authentication will be ready:

 [root@controller ~]# ./ssh-auth-token.sh
 Start the configuration of OpenStack:

[root@controller ~]# packstack --answer-file /root/answer.txt
 **** Installation completed successfully ******

Additional information:
 * File /root/keystonerc_admin has been created on OpenStack client host 85.132.72.10. To use the command line tools you need to source the file.
 * NOTE : A certificate was generated to be used for ssl, You should change the ssl certificate configured in /etc/httpd/conf.d/ssl.conf on 85.132.72.10 to use a CA signed cert.
 * To access the OpenStack Dashboard browse to https://85.132.72.10/dashboard .
 Please, find your login credentials stored in the keystonerc_admin in your home directory.
 * To use Nagios, browse to http://85.132.72.10/nagios username: nagiosadmin, password: d0089c5be8a941cf
 * The installation log file is available at: /var/tmp/packstack/20161011-224731-eVrMYj/openstack-setup.log
 * The generated manifests are available at: /var/tmp/packstack/20161011-224731-eVrMYj/manifests
 As we can see we have the dashboard and the monitoring URLs to the Nagios.

WEB UI for control OpenStack:
 https://85.132.72.10/dashboard

Nagios administrator WEB UI for servers and resources monitoring:
 http://85.132.72.10/nagios
 username: nagiosadmin
 password: d0089c5be8a941cf
nagios
nagios2

After installation, we must change network configuration for all servers as follows

Create the /etc/sysconfig/network-scripts/ifcfg-eth0 file and add the following lines to it:

 # cat /etc/sysconfig/network-scripts/ifcfg-eth0
 DEVICE=eth0
 BOOTPROTO="none"
 TYPE="OVSPort"
 OVS_BRIDGE=br-ex
 ONBOOT="yes"
 DEVICETYPE=ovs

Create the /etc/sysconfig/network-scripts/ifcfg-eth1 file and add the following lines to it:

 # cat /etc/sysconfig/network-scripts/ifcfg-eth1
 DEVICE=eth1
 NAME=eth1
 DEVICETYPE=ovs
 TYPE=OVSPort
 OVS_BRIDGE=br-eth1
 ONBOOT=yes
 BOOTPROTO=none

Create the /etc/sysconfig/network-scripts/ifcfg-br-ex file and add the following lines to it (Do not forget to change IP address for all servers):

 # cat /etc/sysconfig/network-scripts/ifcfg-br-ex
 TYPE="OVSBridge"
 DEVICE=br-ex
 BOOTPROTO="static"
 DEVICETYPE=ovs
 ONBOOT="yes"
 IPADDR0=85.132.72.10
 PREFIX0=24
 GATEWAY=85.132.72.1
 DNS1=85.132.57.58
 DNS2=85.132.57.59
 PEERDNS="yes"
 USERCTL="yes"
 DOMAIN=openstack.az

 

Create /etc/sysconfig/network-scripts/ifcfg-br-eth1 file and add the following lines to this file(Do not forget change IP address for all servers):

 # cat /etc/sysconfig/network-scripts/ifcfg-br-eth1
 DEFROUTE=yes
 ONBOOT=yes
 DEVICE=br-eth1
 NAME=br-eth1
 DEVICETYPE=ovs
 OVSBOOTPROTO="static"
 TYPE=OVSBridge
 IPADDR0=172.16.0.10
 PREFIX0=24

Restart all servers:

 [root@controller ~]# reboot
 [root@compute1 ~]# reboot
 [root@compute2 ~]# reboot
 [root@compute3 ~]# reboot

 

The output of the ovs-vsctl show command in the controller node must be as follows:

 

[root@controller ~]# ovs-vsctl show
 018b3e81-63c7-48f4-b84c-7040efd5789a
 Bridge br-ex
 Port br-ex
 Interface br-ex
 type: internal
 Port "qg-3f61f7a5-fe"
 Interface "qg-3f61f7a5-fe"
 type: internal
 Port "eth0"
 Interface "eth0"
 Bridge br-tun
 fail_mode: secure
 Port "vxlan-ac10000c"
 Interface "vxlan-ac10000c"
 type: vxlan
 options: {df_default="true", in_key=flow, local_ip="172.16.0.10", out_key=flow, remote_ip="172.16.0.12"}
 Port br-tun
 Interface br-tun
 type: internal
 Port patch-int
 Interface patch-int
 type: patch
 options: {peer=patch-tun}
 Port "vxlan-ac10000b"
 Interface "vxlan-ac10000b"
 type: vxlan
 options: {df_default="true", in_key=flow, local_ip="172.16.0.10", out_key=flow, remote_ip="172.16.0.11"}
 Port "vxlan-ac10000d"
 Interface "vxlan-ac10000d"
 type: vxlan
 options: {df_default="true", in_key=flow, local_ip="172.16.0.10", out_key=flow, remote_ip="172.16.0.13"}
 Bridge br-int
 fail_mode: secure
 Port "tapa484be32-c7"
 tag: 1
 Interface "tapa484be32-c7"
 type: internal
 Port "int-br-eth1"
 Interface "int-br-eth1"
 type: patch
 options: {peer="phy-br-eth1"}
 Port "qr-f76daf2e-7e"
 tag: 1
 Interface "qr-f76daf2e-7e"
 type: internal
 Port patch-tun
 Interface patch-tun
 type: patch
 options: {peer=patch-int}
 Port br-int
 Interface br-int
 type: internal
 Bridge "br-eth1"
 Port "phy-br-eth1"
 Interface "phy-br-eth1"
 type: patch
 options: {peer="int-br-eth1"}
 Port "br-eth1"
 Interface "br-eth1"
 type: internal
 Port "eth1"
 Interface "eth1"
 ovs_version: "2.5.0"

To check the status of the OpenStack services use the following command:

 [root@controller ~]# openstack-status
Open the https://controller.openstack.az link in your browser after reboot. Username will be admin and password will be My0PensT@ckp@44w0rd.

stack

The next step is to configure a new Project for our tenant users. Please go to the Identity -> Projects -> Create Project, add the project name Engineering and press the Create Project button.

propjec

We must to add 2 new users. The users will be user (simple user with simple privileges) and adm (admin user with tenant admin privileges)
Go to the Identity -> Users -> Create User page

user

admin_user
In the Next step we must create our new Flavor for our Tenant. Go to the Admin -> Flavors -> Create Flavor page.

flavor

Then we must download new image templates from the official OpenStack web page:

http://docs.openstack.org/image-guide/obtain-images.html

Now we can Sign Out and Login back with username user.
Go to the Project -> Compute -> Images -> Create Image

As the first image I selected CentOS6.7 and URL is http://cloud.centos.org/centos/6/images/CentOS-6-x86_64-GenericCloud-1608.qcow2

We must copy and paste this URL in the Image location place.

image

Repeat this step for Debian and Ubuntu. Used URLS are following:

http://cdimage.debian.org/cdimage/openstack/8.6.0/debian-8.6.0-openstack-amd64.qcow2
 http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img

At the next step, we must configure the network for our new tenant environment.

Go to the Project -> Network -> Networks -> Create Network

Enter the network name – int – and click Subnet button:

netw1
Enter the Subnet name and Local network address for Virtual Instances and press Next button.

net2

Enter the subnet range and DNS for Virtual Instances and press Create button.

submet

Press Create Network button again to create External network (repeat above steps).

Enter network name – Ext – and select Subnet tab

ext1
Enter Subnet Name, Network Address, Gateway IP and select Subnet Details.

ext2

Uncheck “Enable DHCP”, enter a range of IP addresses, DNS IP addresses, and press Create button.

ext3

Go to the Project -> Network -> Routers -> Create Router

Enter Router Name and press Create Router button.

rooter
Log out from the system and log back in with the tenant admin (username: adm) user. Go to the Admin -> System -> Networks and click Edit Network for the network ext

network1
Select the External Network checkbox and press Save Changes button:

editnet

Sign Out from the system as tenant admin (username: adm) and Sign In back with tenant user (username: user)

Go to the Project -> Network -> Routers and press button Set Gateway for our router

rooter1

Select External Network (our external subnet: ext) and press Submit button:

gateway

 

Click to the router link:

rooter-link
Go to the Interfaces -> Add Interface, select Subnet as local subnet (local subnet is 192.168.0.0/24 for internal network interface on our software router) int and press Submit button

interface

As a result we will see the following configuration of the router:

roota

Next, we must configure Floating IP addresses. Go to the Project -> Compute -> Access & Security and select tab Floating IPs

access
Then press Allocate IP To Project button. Select ext pool and press Allocate IP button:

alocate

Repeat this step for every PUBLIC IP address (which is already specified in our ext pool). In my case result was the following:

access-security
Go to the Security Groups -> Create Security Group and press Create Security Group button:

secu-group

Press Manage Rules:

acces-secu-rules

Press Add Rule button and add rules for incoming ICMP, SSH, HTTPS:

ICMP:

add-rule

SSH:

ssh-rule
HTTPS:

https-rule

At the end we accept the HTTP traffic from other instances:

http-rule

End result will be as following:

manage-security

Go back to the Project -> Access & Security page and select Key Pairs tab and press Create Key Pair button

acc2

Enter Key pair Name and press Create Key Pair button:

key-par
Save this file in the secure place. You will use this key to connect to your virtual instances over SSH.

ssh-keys
Now we have finished the network configuration. Go to the Project -> Network -> Network Topology page to perform a check.

topology

At the end of the network configuration we can see network namespaces with the following commands:

[root@controller ~]# source keystonerc_admin
 [root@controller ~]# ip netns list
 qrouter-5d866ee6-2317-4391         -ba7f-f7d69d9463bf
 qdhcp-c3976dc5-d61c-40b7-8d7b-a5c1e7ed9c76

[root@controller ~]# ip netns exec qrouter-5d866ee6-2317-4391         -ba7f-f7d69d9463bf ip a
 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 valid_lft forever preferred_lft forever
 inet6 ::1/128 scope host
 valid_lft forever preferred_lft forever
 10: qg-3f61f7a5-fe: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN
 link/ether fa:16:3e:2c:da:75 brd ff:ff:ff:ff:ff:ff
 inet 85.132.72.40/24 brd 85.132.72.255 scope global qg-3f61f7a5-fe
 valid_lft forever preferred_lft forever
 inet 85.132.72.41/32 brd 85.132.72.41 scope global qg-3f61f7a5-fe
 valid_lft forever preferred_lft forever
 inet 85.132.72.44/32 brd 85.132.72.44 scope global qg-3f61f7a5-fe
 valid_lft forever preferred_lft forever
 inet6 fe80::f816:3eff:fe2c:da75/64 scope link
 valid_lft forever preferred_lft forever
 11: qr-f76daf2e-7e: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN
 link/ether fa:16:3e:e9:61:7f brd ff:ff:ff:ff:ff:ff
 inet 192.168.0.1/24 brd 192.168.0.255 scope global qr-f76daf2e-7e
 valid_lft forever preferred_lft forever
 inet6 fe80::f816:3eff:fee9:617f/64 scope link
 valid_lft forever preferred_lft forever

[root@controller ~]# ip netns exec qdhcp-c3976dc5-d61c-40b7-8d7b-a5c1e7ed9c76 ip a
 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 valid_lft forever preferred_lft forever
 inet6 ::1/128 scope host
 valid_lft forever preferred_lft forever
 9: tapa484be32-c7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN
 link/ether fa:16:3e:1e:39:8b brd ff:ff:ff:ff:ff:ff
 inet 192.168.0.100/24 brd 192.168.0.255 scope global tapa484be32-c7
 valid_lft forever preferred_lft forever
 inet6 fe80::f816:3eff:fe1e:398b/64 scope link
 valid_lft forever preferred_lft forever

[root@controller ~]# ip netns exec qdhcp-c3976dc5-d61c-40b7-8d7b-a5c1e7ed9c76 netstat -rn
 Kernel IP routing table
 Destination Gateway Genmask Flags MSS Window irtt Iface
 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 tapa484be32-c7
 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tapa484be32-c7
 [root@controller ~]# ip netns exec qdhcp-c3976dc5-d61c-40b7-8d7b-a5c1e7ed9c76 ifconfig
 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
 inet 127.0.0.1 netmask 255.0.0.0
 inet6 ::1 prefixlen 128 scopeid 0x10<host>
 loop txqueuelen 0 (Local Loopback)
 RX packets 2 bytes 1152 (1.1 KiB)
 RX errors 0 dropped 0 overruns 0 frame 0
 TX packets 2 bytes 1152 (1.1 KiB)
 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

tapa484be32-c7: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
 inet 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255
 inet6 fe80::f816:3eff:fe1e:398b prefixlen 64 scopeid 0x20<link>
 ether fa:16:3e:1e:39:8b txqueuelen 0 (Ethernet)
 RX packets 2311 bytes 101612 (99.2 KiB)
 RX errors 0 dropped 0 overruns 0 frame 0
 TX packets 20 bytes 3888 (3.7 KiB)
 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

You can get the overall configuration using the following commands:

 

[root@controller ~(admin)]# neutron net-list
 +--------------------------------------+------+-----------------------------------------------------+
 | id | name | subnets |
 +--------------------------------------+------+-----------------------------------------------------+
 | c3976dc5-d61c-40b7-8d7b-a5c1e7ed9c76 | int | 41773c84-0b12-44cd-aca3-5f968fa9c5b3 192.168.0.0/24 |
 | ded7faf6-986b-40fc-ac6a-554cc4003003 | ext | 9a61a1e3-03cb-4b28-ac76-76e04c8f2ac8 85.132.72.0/24 |
 +--------------------------------------+------+-----------------------------------------------------+
[root@controller ~(admin)]# neutron net-show c3976dc5-d61c-40b7-8d7b-a5c1e7ed9c76
 +---------------------------+--------------------------------------+
 | Field | Value |
 +---------------------------+--------------------------------------+
 | admin_state_up | True |
 | availability_zone_hints | |
 | availability_zones | nova |
 | created_at | 2016-10-14T06:12:45 |
 | description | |
 | id | c3976dc5-d61c-40b7-8d7b-a5c1e7ed9c76 |
 | ipv4_address_scope | |
 | ipv6_address_scope | |
 | mtu | 1450 |
 | name | int |
 | provider:network_type | vxlan |
 | provider:physical_network | |
 | provider:segmentation_id | 64 |
 | router:external | False |
 | shared | False |
 | status | ACTIVE |
 | subnets | 41773c84-0b12-44cd-aca3-5f968fa9c5b3 |
 | tags | |
 | tenant_id | 9b304efca082491da73a84b0c9875d53 |
 | updated_at | 2016-10-14T06:12:45 |
 +---------------------------+--------------------------------------+
 [root@controller ~(admin)]# neutron router-list
 +--------------------------------------+--------+---------------------------------------------------------------------+-------------+-------+
 | id | name | external_gateway_info | distributed | ha |
 +--------------------------------------+--------+---------------------------------------------------------------------+-------------+-------+
 | 5d866ee6-2317-4391         -ba7f-f7d69d9463bf | router | {"network_id": "ded7faf6-986b-40fc-ac6a-554cc4003003", | False | False |
 | | | "enable_snat": true, "external_fixed_ips": [{"subnet_id": "9a61a1e3 | | |
 | | | -03cb-4b28-ac76-76e04c8f2ac8", "ip_address": "85.132.72.40"}]} | | |
 +--------------------------------------+--------+---------------------------------------------------------------------+-------------+-------+
 [root@controller ~(admin)]# neutron router-show 5d866ee6-2317-4391         -ba7f-f7d69d9463bf
 +-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
 | Field | Value |
 +-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+
 | admin_state_up | True |
 | availability_zone_hints | |
 | availability_zones | nova |
 | description | |
 | distributed | False |
 | external_gateway_info | {"network_id": "ded7faf6-986b-40fc-ac6a-554cc4003003", "enable_snat": true, "external_fixed_ips": [{"subnet_id": "9a61a1e3-03cb- |
 | | 4b28-ac76-76e04c8f2ac8", "ip_address": "85.132.72.40"}]} |
 | ha | False |
 | id | 5d866ee6-2317-4391         -ba7f-f7d69d9463bf |
 | name | router |
 | routes | |
 | status | ACTIVE |
 | tenant_id | 9b304efca082491da73a84b0c9875d53 |
 +-------------------------+------------------------------------------------------------------------------------------------------------------------------------------------+

 

[root@controller ~(admin)]# neutron subnet-list
 +--------------------------------------+------------+----------------+----------------------------------------------------+
 | id | name | cidr | allocation_pools |
 +--------------------------------------+------------+----------------+----------------------------------------------------+
 | 41773c84-0b12-44cd-aca3-5f968fa9c5b3 | subint | 192.168.0.0/24 | {"start": "192.168.0.100", "end": "192.168.0.200"} |
 | 9a61a1e3-03cb-4b28-ac76-76e04c8f2ac8 | ext-subnet | 85.132.72.0/24 | {"start": "85.132.72.40", "end": "85.132.72.240"} |
 +--------------------------------------+------------+----------------+----------------------------------------------------+
[root@controller ~(admin)]# neutron subnet-show 9a61a1e3-03cb-4b28-ac76-76e04c8f2ac8
 +-------------------+---------------------------------------------------+
 | Field | Value |
 +-------------------+---------------------------------------------------+
 | allocation_pools | {"start": "85.132.72.40", "end": "85.132.72.240"} |
 | cidr | 85.132.72.0/24 |
 | created_at | 2016-10-14T06:14:51 |
 | description | |
 | dns_nameservers | 8.8.8.8 |
 | | 8.8.4.4 |
 | enable_dhcp | False |
 | gateway_ip | 85.132.72.1 |
 | host_routes | |
 | id | 9a61a1e3-03cb-4b28-ac76-76e04c8f2ac8 |
 | ip_version | 4 |
 | ipv6_address_mode | |
 | ipv6_ra_mode | |
 | name | ext-subnet |
 | network_id | ded7faf6-986b-40fc-ac6a-554cc4003003 |
 | subnetpool_id | |
 | tenant_id | 9b304efca082491da73a84b0c9875d53 |
 | updated_at | 2016-10-14T06:14:51 |
 +-------------------+---------------------------------------------------+

Create new Instance

Sign in as the tenant user (username: user). Go to the Project -> Compute -> Instances and press Launch Instance button. Enter the name of the instance and press Next button:

lunch2

Select the Debian Image and press Next button:

debian

Select m2.small flavor which we created before and press Next button:

lunch
Select int interface to use IP address from the 192.168.0.0/24 subnet for the new instance and press Next button:

int

Go to the Security Groups, select sec1 and press Next button:

sec1
Press Key Pair button, select engkey Key Pair which we created before and press Launch Instance button:

enkey

The result must be as following:

instance1

In the right side of our Virtual Instance in the drop down list select Associate Floating IP

asso-ip

Select one of IP addresses which we created before and press Associate button:

floatip
Then press to the instance name (in our case the name was WEB which we created before) and go to the Console tab.

instanceweb

The Debian server console looks like this:

console
By default, Debian image has the debian user. We must connect to this server via SSH from another Linux or Windows machine with the engkey.pem file which we generated before:

Note: Do not forget to upload the engkey.pem file to you client (Linux or
Windows) machine, which will be use to connect to the Debian server.

root@wifinat:/home/jamal # ssh -i /home/jamal/engkey.pem debian@85.132.72.41
 The authenticity of host '85.132.72.41 (85.132.72.41)' can't be established.
 ECDSA key fingerprint is 9e:64:48:46:f4:b5:6c:cf:2b:ab:b1:57:4a:cf:0c:ba.
 Are you sure you want to continue connecting (yes/no)? yes
debian@web:~$ sudo -s
 root@web:/home/debian# ifconfig
 eth0 Link encap:Ethernet HWaddr fa:16:3e:e3:88:e6
 inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
 inet6 addr: fe80::f816:3eff:fee3:88e6/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST MTU:1400 Metric:1
 RX packets:175 errors:0 dropped:0 overruns:0 frame:0
 TX packets:217 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:21462 (20.9 KiB) TX bytes:22120 (21.6 KiB)

lo Link encap:Local Loopback
 inet addr:127.0.0.1 Mask:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
 UP LOOPBACK RUNNING MTU:65536 Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Congratulations your OpenStack environment is ready

Advertisements