Category Archive TEKYHOST BLOG

By

Why choose ZIMBRA over Office 365

Zimbra is directly competing with office 365 for share of enterprise email market. A lot of our clients ask us. Why choose Zimbra over Office 365?
Lets see why we as consultants we always suggest Zimbra over Office 365 for any business with more then 10 mailboxes.

Pricing
Zimbra hands down wins the competition when it comes to pricing. Be it Network on Perm. deployment or hosted solution. There is huge difference in pricing and Zimbra is clear winner. On top of this Zimbra provides Free Open Source Edition that is available as evaluation software. In Office 365, there isn’t a provision of any “free account” and users need to pay a minimum monthly subscription.
Features
Office 365 includes the Microsoft suite of Office applications. Zimbra, in addition to email and calendar also offers a host of features such as file sharing, document management, simplified admin controls and an award-winning, AJAX based user interface. On top of that, Zimbra also offers useful features such as cross platform sync, platform search and email sorting, that Office 365 doesn’t. There is also 3rd party plugins that Zimbra fully supports but they are not available for Office 365
Customization
Zimbra is an open source software that means organizations can have more control over email operations as there is always a possibility to customize code to suit diverse business requirements. Office 365, on the other hand is a closed source software as only Microsoft is permitted to perform any changes to the code as and when required.
Platform or Device Support
Zimbra supports android, iOS and all leading web platforms. Office 365 also supports android, iOS and some web platforms but lucking supports for some web browsers.

Compare Features

Feature Comparison Guide Zimbra Office 365
Spell Check Y N
Custom dictionary Y N
Page navigation Y N
Print preview Y N
Many signatures Y N
Attachments in reply Y N
Address context in email Y N
Zip file of messages Y N
Appointment created from email Y N
Many message forward Y N
Email as attachment Y N
Contact CSV import / export Y Import Only
Copy and move contacts Y N
Time zone auto mods Y N
Declined appointments greyed out Y N
Small calendar view Y N
Date hover in small calendar view shows schedule Y N
iCal import Y N
Show calendar in iCal format Y N
Continuous, robust and fast search Y N
Searches saved Y N
Sharing contacts with internal, external and public users Y N
Sharing tasks with internal, external and public users Y N
Apps Y Office Only
Inbox size Configurable 25G
Attachment size Configurable 25M
Cross platform compatibility Y N

Why is Zimbra better than Microsoft, Google

  • Lowest TCO in the industry
  • Secure, Private and Compliant by design
  • Access on any device, anywhere
  • Worldwide leader of open source email
  • Extensible through Zimlets, Rest API and more
  • Scales from 10 users to 40M users
  • Run on-prem or in a public or private cloud
  • Worldwide Partner Network to help you where you live and work
  • Why Choose Zimbra Network Edition

  • Now includes Zimbra Drive and Zimbra Chat!
  • Secure & Extensible (augmented with third-party security applications)
  • Private (deployable in-country through ecosystem of hosting partners)
  • Email and phone support plus 24/7 emergency service
  • Real-time synchronization with ActiveSync
  • Real-time backup and restore
  • Advanced search and file indexing for large inboxes
  • Built-in archiving and email compliance
  • Advanced store management and HSM
  • Web client rebranding
  • Multi-tenancy
  • Runs on Mac, Windows & Linux
  • At TEKYHOST we provide professional Zimbra Hosting and Consulting services.

    By

    Manually deploy OpenStack on Ubuntu 16.04

    There is many ways deploying OpenStack in production and POC environment. TEKYHOST provides consulting and support for OpenStack deployments. Most deployment use some sort of automation like Ansible, Puppet, Chief and so on. In this how to will look into installing and configuring OpenStack on Ubuntu 16.04 manually. We will use virtual machine and install all-in-one but procedure for installing OpenSTack on multiple systems would be the same with exception that some components installed on different systems.

    We will install everything on virtual system but in production you will need to use hardware and put much more thought in braking down your modules and figuring out redundancy and so on. The goal of this tutorial is just to show how everything is installed.

    This is long process with a lot of manual typing but it will let us see exactly how each component is installed and configured.

    The step by step process will include

    • Configuring the database server
    • Configuring the message queue
    • Configuring the memcached server
    • Configuring the identity service (Keystone)
    • Configuring the image service (Glance)
    • Configuring the compute service (Nova)
    • Installing and configuring a compute node (nova-compute)
    • Configuring the networking service (neutron)
    • Installing and configuring a compute node (neutron)
    • Installing the OpenStack dashboard
    • Adding the compute node to the OpenStack cluster
    We will be using password1 as password and IP 192.168.0.188 as controller’s management interface. When you run command’s please substitute with your own related information.

    Prerequisites

    • VirtualBox with 1 VM running 6GB RAM and 30GB HDD, 2vCPU, 2 NIC’s in Bridged mode
    • Hostnames should be resolvable /etc/hosts and hostname should be set to controller.local in /etc/network/hostname
    • 127.0.0.1 localhost
      192.168.0.188 controller.local controller
      
    • 2 nics – One of which configured with static IP (192.168.0.188). Both can for now be connected to same 192.168.0.0/24 network.
      
      # This file describes the network interfaces available on your system
      # and how to activate them. For more information, see interfaces(5).
      source /etc/network/interfaces.d/*
      # The loopback network interface
      auto lo
      iface lo inet loopback
      # The primary network interface
      auto enp0s3
      iface enp0s3 inet static
      address 192.168.0.188
      network 192.168.0.0
      netmask 255.255.255.0
      gateway 192.168.0.1
      dns-nameservers 8.8.8.8
      broadcast 192.168.0.255
      # The provider network interface
      auto enp0s8
      iface enp0s8 inet manual
      up ip link set dev $IFACE up
      down ip link set dev $IFACE down
      
    • Configure NTP
      apt install chrony
      service chrony restart
      
    • Upgrade the system and configure OpenStack repository
      apt install software-properties-common
      add-apt-repository cloud-archive:ocata
      apt update && apt dist-upgrade -y
      reboot
      apt install python-openstackclient crudini -y
      
      

    Installation

    Database server

    Install mariadb

    apt install mariadb-server python-pymysql
    

    Create configuration file

    /etc/mysql/mariadb.conf.d/90-openstack.cnf
    [mysqld]
    bind-address = 192.168.0.188
    default-storage-engine = innodb
    innodb_file_per_table = on
    max_connections = 4096
    collation-server = utf8_general_ci
    character-set-server = utf8
    

    Restart services and run secure_installation

    service mysql restart
    mysql_secure_installation
    

    Creating database for OpenStack services

    echo "CREATE DATABASE keystone;"|mysql
    echo "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'password1';"|mysql
    echo "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'password1';"|mysql
    echo "CREATE DATABASE glance;"|mysql
    echo "GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'password1';"|mysql
    echo "GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'password1';"|mysql
    echo "CREATE DATABASE nova_api;"|mysql
    echo "GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'password1';"|mysql
    echo "GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'password1';"|mysql
    echo "CREATE DATABASE nova;"|mysql
    echo "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'password1';"|mysql
    echo "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'password1';"|mysql
    echo "CREATE DATABASE nova_cell0;"|mysql
    echo "GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'password1';"|mysql
    echo "GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'password1';"|mysql
    echo "CREATE DATABASE neutron;"|mysql
    echo "GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'password1';"|mysql
    echo "GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'password1';"|mysql
    echo "CREATE DATABASE cinder;"|mysql
    echo "GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'password1';"|mysql
    echo "GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'password1';"|mysql
    

    Message queue

    Install RabbitMQ, an AMQP broker

    apt install rabbitmq-server
    rabbitmqctl add_user openstack password1
    rabbitmqctl set_permissions openstack ".*" ".*" ".*"
    

    Setup memcached server

    apt install memcached python-memcache
    service memcached restart
    

    identity service KeyStone

    Install components

    apt install keystone
    

    Make configuration changes

    crudini --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:password1@controller/keystone
    crudini --set /etc/keystone/keystone.conf token provider fernet
    su -s /bin/sh -c "keystone-manage db_sync" keystone
    keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
    keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
    keystone-manage bootstrap --bootstrap-password password1 \
    --bootstrap-admin-url http://controller.local:35357/v3/ \
    --bootstrap-internal-url http://controller.local:5000/v3/ \
    --bootstrap-public-url http://controller.local:5000/v3/ \
    --bootstrap-region-id RegionOne
    

    Configure apache

    sed -i -e '1iServerName controller.local\' /etc/apache2/apache2.conf
    service apache2 restart
    rm -f /var/lib/keystone/keystone.db
    

    Create file that contains environment variables that can be loaded any time.

    cd
     vi admin-rc 
    export OS_USERNAME=admin
    export OS_PASSWORD=password1
    export OS_PROJECT_NAME=admin
    export OS_USER_DOMAIN_NAME=Default
    export OS_PROJECT_DOMAIN_NAME=Default
    export OS_AUTH_URL=http://controller.local:35357/v3
    export OS_IDENTITY_API_VERSION=3
    

    Load the environment variables from the file. Then
    verify the configuration

    reboot
    source ~/admin-rc
    openstack token issue
    openstack user list
    

    Now we need to set up the domain, project, users, roles, and endpoints that will be used by various OpenStack services

    openstack project create --domain default \
    --description "Service Project" service
    openstack project create --domain default \
    --description "Demo Project" demo
    
    

    Create a non-admin user called demo user and map the non-privileged role called user role for the demo user

    openstack user create --domain default \
    --password-prompt demo
    openstack role create user
    openstack role add --project demo --user demo user
    

    Verify that the identity service was installed and configured correctly

    unset OS_AUTH_URL OS_PASSWORD
    openstack --os-auth-url http://controller:35357/v3 \
    --os-project-domain-name default --os-user-domain-name default \
    --os-project-name admin --os-username admin token issue
    openstack --os-auth-url http://controller:5000/v3 \
    --os-project-domain-name default --os-user-domain-name default \
    --os-project-name demo --os-username demo token issue
    

    Create another OpernRC file for the demo account

    vi demo-openrc 
    export OS_PROJECT_DOMAIN_NAME=Default
    export OS_USER_DOMAIN_NAME=Default
    export OS_PROJECT_NAME=demo
    export OS_USERNAME=demo
    export OS_PASSWORD=password1
    export OS_AUTH_URL=http://controller.local:5000/v3
    export OS_IDENTITY_API_VERSION=3
    export OS_IMAGE_API_VERSION=2
    
    

    Verify the environment file for the admin and demo account

    source ~/demo-openrc
    openstack token issue
    source ~/admin-rc
    openstack token issue
    

    Image service Glance

    Create service entety and API endpoints

    source ~/admin-rc
    
    openstack user create --domain default --password-prompt glance
    openstack role add --project service --user glance admin
    
    openstack service create --name glance \
    --description "OpenStack Image" image
    openstack endpoint create --region RegionOne \
    image public http://controller.local:9292
    openstack endpoint create --region RegionOne \
    image internal http://controller.local:9292
    openstack endpoint create --region RegionOne \
    image admin http://controller.local:9292
    
    

    Install Glance binaries

    apt install glance wget -y
    

    Edit /etc/glance/glance-api.conf with the following settigns

    crudini --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:password1@controller/glance
    crudini --set /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:password1@controller/glance
    crudini --set /etc/glance/glance-api.conf keystone_authtoken auth_uri http://controller:5000
    crudini --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://controller:35357
    crudini --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers controller:11211
    crudini --set /etc/glance/glance-api.conf keystone_authtoken auth_type password
    crudini --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name default
    crudini --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name default
    crudini --set /etc/glance/glance-api.conf keystone_authtoken project_name service
    crudini --set /etc/glance/glance-api.conf keystone_authtoken username glance
    crudini --set /etc/glance/glance-api.conf keystone_authtoken password password1
    crudini --set /etc/glance/glance-api.conf paste_deploy flavor keystone
    crudini --set /etc/glance/glance-api.conf glance_store stores file,http
    crudini --set /etc/glance/glance-api.conf glance_store default_store file
    crudini --set /etc/glance/glance-api.conf glance_store filesystem_store_datadir /var/lib/glance/images/
    
    
    crudini --set /etc/glance/glance-registry.conf keystone_authtoken auth_uri http://controller:5000
    crudini --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://controller:35357
    crudini --set /etc/glance/glance-registry.conf keystone_authtoken memcached_servers controller:11211
    crudini --set /etc/glance/glance-registry.conf keystone_authtoken auth_type password
    crudini --set /etc/glance/glance-registry.conf keystone_authtoken project_domain_name default
    crudini --set /etc/glance/glance-registry.conf keystone_authtoken user_domain_name default
    crudini --set /etc/glance/glance-registry.conf keystone_authtoken project_name service
    crudini --set /etc/glance/glance-registry.conf keystone_authtoken username glance
    crudini --set /etc/glance/glance-registry.conf keystone_authtoken password password1
    crudini --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
    

    populate the image service database

    su -s /bin/sh -c "glance-manage db_sync" glance
    service glance-registry restart
    service glance-api restart
    

    Download a test image from the Internet, and verify that it can be uploaded to the image server.

    source ~/admin-rc
    wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
    openstack image create "cirros" \
    --file cirros-0.3.5-x86_64-disk.img \
    --disk-format qcow2 --container-format bare \
    --public
    openstack image list
    
    

    Compute service Nova

    source ~/admin-rc
    Defining the Nova service and API endpoints in KeyStone

    openstack user create --domain default --password-prompt nova
    openstack role add --project service --user nova admin
    openstack service create --name nova --description "OpenStack Compute" compute
    openstack endpoint create --region RegionOne compute public http://controller.local:8774/v2.1
    openstack endpoint create --region RegionOne compute internal http://controller.local:8774/v2.1
    openstack endpoint create --region RegionOne compute admin http://controller.local:8774/v2.1
    openstack user create --domain default --password-prompt placement
    openstack role add --project service --user placement admin
    openstack service create --name placement --description "Placement API" placement
    openstack endpoint create --region RegionOne placement public http://controller.local:8778
    openstack endpoint create --region RegionOne placement internal http://controller.local:8778
    openstack endpoint create --region RegionOne placement admin http://controller.local:8778
    
    

    Installing and configuring the Nova components

    apt install nova-api nova-conductor nova-consoleauth nova-novncproxy nova-scheduler nova-placement-api -y
    

    Make changes to configuration file

    crudini --set /etc/nova/nova.conf api_database connection mysql+pymysql://nova:password1@controller/nova_api
    crudini --set /etc/nova/nova.conf database connection mysql+pymysql://nova:password1@controller/nova
    crudini --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:password1@controller
    crudini --set /etc/nova/nova.conf api auth_strategy keystone
    crudini --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
    crudini --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:35357
    crudini --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller:11211
    crudini --set /etc/nova/nova.conf keystone_authtoken auth_type password
    crudini --set /etc/nova/nova.conf keystone_authtoken project_domain_name default
    crudini --set /etc/nova/nova.conf keystone_authtoken user_domain_name default
    crudini --set /etc/nova/nova.conf keystone_authtoken project_name service
    crudini --set /etc/nova/nova.conf keystone_authtoken username nova
    crudini --set /etc/nova/nova.conf keystone_authtoken password password1
    crudini --set /etc/nova/nova.conf DEFAULT use_neutron True
    crudini --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
    crudini --set /etc/nova/nova.conf glance api_servers http://controller:9292
    crudini --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
    crudini --set /etc/nova/nova.conf placement os_region_name RegionOne
    crudini --set /etc/nova/nova.conf placement project_domain_name Default
    crudini --set /etc/nova/nova.conf placement project_name service
    crudini --set /etc/nova/nova.conf placement auth_type password
    crudini --set /etc/nova/nova.conf placement user_domain_name Default
    crudini --set /etc/nova/nova.conf placement auth_url http://controller:35357/v3
    crudini --set /etc/nova/nova.conf placement username placement
    crudini --set /etc/nova/nova.conf placement password password1
    crudini --set /etc/nova/nova.conf scheduler discover_hosts_in_cells_interval 300
    crudini --set /etc/nova/nova.conf DEFAULT my_ip 192.168.0.188
    crudini --set /etc/nova/nova.conf vnc enabled true
    crudini --set /etc/nova/nova.conf vnc vncserver_listen 192.168.0.188
    crudini --set /etc/nova/nova.conf vnc vncserver_proxyclient_address 192.168.0.188
    

    Populate the Nova service database and then finalize the installation

    su -s /bin/sh -c "nova-manage api_db sync" nova
    su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
    su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
    su -s /bin/sh -c "nova-manage db sync" nova
    

    ignore any deprecation messages

    Verify installation

    nova-manage cell_v2 list_cells
    

    finalize the Nova installation by restarting all of the Nova components

    service nova-api restart
    service nova-consoleauth restart
    service nova-scheduler restart
    service nova-conductor restart
    service nova-novncproxy restart
    

    Installing and configuring a compute node

    apt install nova-compute -y
    

    Make configuration changes

    crudini --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:password1@controller
    crudini --set /etc/nova/nova.conf api auth_strategy keystone
    crudini --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
    crudini --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:35357
    crudini --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller:11211
    crudini --set /etc/nova/nova.conf keystone_authtoken auth_type password
    crudini --set /etc/nova/nova.conf keystone_authtoken project_domain_name default
    crudini --set /etc/nova/nova.conf keystone_authtoken user_domain_name default
    crudini --set /etc/nova/nova.conf keystone_authtoken project_name service
    crudini --set /etc/nova/nova.conf keystone_authtoken username nova
    crudini --set /etc/nova/nova.conf keystone_authtoken password password1
    crudini --set /etc/nova/nova.conf DEFAULT use_neutron True
    crudini --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
    crudini --set /etc/nova/nova.conf glance api_servers http://controller:9292
    crudini --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
    crudini --set /etc/nova/nova.conf placement os_region_name RegionOne
    crudini --set /etc/nova/nova.conf placement project_domain_name Default
    crudini --set /etc/nova/nova.conf placement project_name service
    crudini --set /etc/nova/nova.conf placement auth_type password
    crudini --set /etc/nova/nova.conf placement user_domain_name Default
    crudini --set /etc/nova/nova.conf placement auth_url http://controller:35357/v3
    crudini --set /etc/nova/nova.conf placement username placement
    crudini --set /etc/nova/nova.conf placement password password1
    crudini --set /etc/nova/nova.conf scheduler discover_hosts_in_cells_interval 300
    crudini --set /etc/nova/nova.conf DEFAULT my_ip 192.168.0.188
    crudini --set /etc/nova/nova.conf vnc enabled true
    crudini --set /etc/nova/nova.conf vnc vncserver_listen 0.0.0.0
    crudini --set /etc/nova/nova.conf vnc vncserver_proxyclient_address 192.168.0.188
    crudini --set /etc/nova/nova.conf vnc novncproxy_base_url http://192.168.0.188:6080/vnc_auto.html
    crudini --set /etc/nova/nova-compute.conf libvirt virt_type qemu
    
    

    Finalize the installation

    service nova-compute restart
    

    Verify the operation of the compute service

    source ~/admin-rc
    openstack compute service list
    openstack catalog list
    openstack image list
    nova-status upgrade check
    

    Networking service neutron

    source ~/admin-rc
    
    openstack user create --domain default --password-prompt neutron
    openstack role add --project service --user neutron admin
    
    openstack service create --name neutron \
    --description "OpenStack Networking" network
    openstack endpoint create --region RegionOne \
    network public http://controller.local:9696
    openstack endpoint create --region RegionOne \
    network internal http://controller.local:9696
    openstack endpoint create --region RegionOne \
    network admin http://controller.local:9696
    
    apt install neutron-server neutron-plugin-ml2 \
    neutron-linuxbridge-agent neutron-l3-agent neutron-dhcp-agent \
    neutron-metadata-agent -y
    
    crudini --set /etc/neutron/neutron.conf database connection mysql+pymysql://neutron:password1@controller/neutron
    crudini --set /etc/neutron/neutron.conf DEFAULT core_plugin ml2
    crudini --set /etc/neutron/neutron.conf DEFAULT service_plugins router
    crudini --set /etc/neutron/neutron.conf DEFAULT allow_overlapping_ips true
    crudini --set /etc/neutron/neutron.conf DEFAULT transport_url rabbit://openstack:password1@controller
    crudini --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone
    crudini --set /etc/neutron/neutron.conf keystone_authtoken auth_uri http://controller:5000
    crudini --set /etc/neutron/neutron.conf keystone_authtoken auth_url http://controller:35357
    crudini --set /etc/neutron/neutron.conf keystone_authtoken memcached_servers controller:11211
    crudini --set /etc/neutron/neutron.conf keystone_authtoken auth_type password
    crudini --set /etc/neutron/neutron.conf keystone_authtoken project_domain_name default
    crudini --set /etc/neutron/neutron.conf keystone_authtoken user_domain_name default
    crudini --set /etc/neutron/neutron.conf keystone_authtoken project_name service
    crudini --set /etc/neutron/neutron.conf keystone_authtoken username neutron
    crudini --set /etc/neutron/neutron.conf keystone_authtoken password password1
    crudini --set /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_status_changes true
    crudini --set /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_data_changes true
    crudini --set /etc/neutron/neutron.conf nova auth_url http://controller:35357
    crudini --set /etc/neutron/neutron.conf nova auth_type password
    crudini --set /etc/neutron/neutron.conf nova project_domain_name default
    crudini --set /etc/neutron/neutron.conf nova user_domain_name default
    crudini --set /etc/neutron/neutron.conf nova region_name RegionOne
    crudini --set /etc/neutron/neutron.conf nova project_name service
    crudini --set /etc/neutron/neutron.conf nova username nova
    crudini --set /etc/neutron/neutron.conf nova password password1
    

    configuring the Modular Layer 2 (ML2)

    crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers flat,vlan,vxlan
    crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vxlan
    crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers linuxbridge,l2population
    crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 extension_drivers port_security
    crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_flat flat_networks provider
    crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_vxlan vni_ranges 1:1000
    crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_ipset true
    

    Configuring the Linux bridge agent

    crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini linux_bridge physical_interface_mappings provider:enp0s8
    crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan local_ip 192.168.0.188
    crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan enable_vxlan true
    crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan l2_population true
    crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup enable_security_group true
    crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini \
    securitygroup firewall_driver \
    neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
    

    Configuring the layer-3, DHCP agent

    crudini --set /etc/neutron/l3_agent.ini DEFAULT interface_driver linuxbridge
    crudini --set /etc/neutron/dhcp_agent.ini DEFAULT interface_driver linuxbridge
    crudini --set /etc/neutron/dhcp_agent.ini DEFAULT dhcp_driver neutron.agent.linux.dhcp.Dnsmasq
    crudini --set /etc/neutron/dhcp_agent.ini DEFAULT enable_isolated_metadata true
    crudini --set /etc/neutron/metadata_agent.ini DEFAULT nova_metadata_ip controller
    crudini --set /etc/neutron/metadata_agent.ini DEFAULT metadata_proxy_shared_secret METADATA_SECRET
    

    Configuring the Nova service to use the neutron service

    crudini --set /etc/nova/nova.conf neutron url http://controller:9696
    crudini --set /etc/nova/nova.conf neutron auth_url http://controller:35357
    crudini --set /etc/nova/nova.conf neutron auth_type password
    crudini --set /etc/nova/nova.conf neutron project_domain_name default
    crudini --set /etc/nova/nova.conf neutron user_domain_name default
    crudini --set /etc/nova/nova.conf neutron region_name RegionOne
    crudini --set /etc/nova/nova.conf neutron project_name service
    crudini --set /etc/nova/nova.conf neutron username neutron
    crudini --set /etc/nova/nova.conf neutron password password1
    crudini --set /etc/nova/nova.conf neutron service_metadata_proxy true
    crudini --set /etc/nova/nova.conf neutron metadata_proxy_shared_secret METADATA_SECRET
    su -s /bin/sh -c "neutron-db-manage \
    --config-file /etc/neutron/neutron.conf \
    --config-file /etc/neutron/plugins/ml2/ml2_conf.ini \
    upgrade head" neutron
    
    

    finalize the installation by restarting the neutron

    service nova-api restart
    service neutron-server restart
    service neutron-linuxbridge-agent restart
    service neutron-dhcp-agent restart
    service neutron-metadata-agent restart
    service neutron-l3-agent restart
    
    

    Installing the OpenStack dashboard

    apt install openstack-dashboard -y
    
    sed -i 's/ubuntu/default/' /etc/openstack-dashboard/local_settings.py
    sed -i 's/v2.0/v3/' /etc/openstack-dashboard/local_settings.py
    sed -i 's/_member_/user/' /etc/openstack-dashboard/local_settings.py
    sed -i 's/127.0.0.1/controller/' /etc/openstack-dashboard/local_settings.py
    vi /etc/openstack-dashboard/local_settings.py 
    SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
    OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"
    OPENSTACK_API_VERSIONS = {
    "identity": 3,
    "image": 2,
    }
    
    service apache2 restart
    
    

    If you have problems accessing horizon make sure the following are set

    /etc/openstack-dashboard/local_settings.py 
    
    SESSION_ENGINE='django.contrib.sessions.backends.cache'
    
    CACHES = {
        'default': {
           #
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',
        }
    }
    
    /etc/apache2/apache2.conf
    
    Directory /
    
        Options FollowSymLinks
        AllowOverride all
        Require all granted
    
     Directory /usr/share
    
        AllowOverride all
        Require all granted
    
     Directory /var/www/
    
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    
    
    
    

    Log location

    Service name Log files location
    Horizon Controller node:
    /var/log/apache2/horizon_access.log
    /var/log/apache2/horizon_error.log
    KeyStone Controller node:
    /var/log/apache2/error.log
    /var/log/apache2/access.log
    /var/log/apache2/keystone_wsgi_admin_access.log
    /var/log/apache2/keystone_wsgi_admin_error.log
    /var/log/apache2/keystone_wsgi_main_access.log
    /var/log/apache2/keystone_wsgi_main_error.log
    MySQL Controller node:
    /var/log/syslog
    /var/log/mysql/error.log
    RabbitMQ Controller node:
    /var/log/rabbitmq/
    Nova Controller and compute node:
    /var/log/nova/
    Glance Controller node:
    /var/log/glance/
    Neutron Controller and compute node:
    /var/log/neutron/
    Cinder Storage node:
    /var/log/cinder/
    By

    Choosing Linux File System

    When choosing File system(disk file system) for Linux installation most of the users will choose default which will be XFS(on most modern Linux distributions), but there is quite a few of file systems available. Lets take a look at different Linux file systems and see what similarities and differences they have.

    Unlike Windows Linux kernel supports many different types of filesystems. Linux can also read and write to Windows filesystems.
    Read More

    By

    Deploy Squid proxy for caching and filtering for safe INTERNET browsing

    The problem we trying to solve in our case is unsafe INTERNET browsing and poor INTERNET access speeds. The solution that we will be implementing will be Squid proxy server positioned on internal network and providing caching as well as filtering for all internal clients requests.

    Proxy Server overview

    A proxy server is a computer system positioned between the client requesting a web document and the target server. In its simplest form, a proxy server facilitates communication between client and target server without modifying requests or replies. In our case we will be implementing a proxy server that can filter requests based on various rules and will allow communication only when requests can be validated against the available rules. The rules are generally based on an IP address of a client or target server, protocol, content type of web documents, web content type, and so on.
    Read More

    By

    OpenStack and quick PoC deployment using PackStack on CentOS7 and DevStack on Ubuntu

    At TEKYHOST we provide OpenStack consulting for Private and Public deployments

    Introduction to OpenStack

    OpenStack is a set of software tools for building and managing cloud computing platforms for public and private clouds. Backed by some of the biggest companies in software development and hosting, as well as thousands of individual community members, many think that OpenStack is the future of cloud computing. OpenStack is managed by the OpenStack Foundation, a non-profit that oversees both development and community-building around the project.
    Read More