User Tools

Site Tools


quickstack_opnfv_puppet_guide

OPNFV/QuickStack Puppet Module Guide

Overview

The purpose of this guide is to walk through necessary steps to install and run the puppet modules required to setup and OPNFV environment.


Install Puppet

Puppet installation guide can be found here.

Installing Puppet Modules

The following will show how to install puppet modules required for OPNFV. The directories used will be in the context of using production environment, which is what we use with Foreman. You are free to use whatever you want if not using Foreman.

If you have a proxy you will need to edit your puppet.conf:

vi /etc/puppet/puppet.conf

and add:

[main] http_proxy_host = your_proxy_server http_proxy_port = your_proxy_port

Now you can install your puppet modules:

Example :sudo puppet module install -i /etc/puppet/environments/production/modules saz/ntp

OpenStack Puppet Modules (OPM)

Now download the openstack puppet modules:

sudo yum install https://repos.fedorapeople.org/repos/openstack/openstack-juno/epel-7/openstack-puppet-modules-2014.2.8-1.el7.centos.noarch.rpm

You will need to edit your puppet.conf to include the path:

sudo vi /etc/puppet/puppet.conf

Append at the end of basemodulepath the newly installed module path which is /usr/share/openstack-puppet/modules/ :

basemodulepath = /etc/puppet/environments/common:/etc/puppet/modules:/usr/share/puppet/modules:/usr/share/openstack-puppet/modules/

Now just restart your Apache server:

sudo service httpd restart

OPNFV/Genesis Puppet Modules

cd /etc/puppet/environments/production/modules/

There clone the git repo of TryStack. This is a temporary copy of OPNFV, this should be changed to OPNFV repo once the commit is finished.

sudo git clone -b quickstack https://github.com/trozet/puppet-trystack.git

And rename it:

sudo mv puppet-trystack trystack

QuickStack Puppet Modules

QuickStack is part of a project called Astapor. Clone the following to any temporary directory. We will move the QuickStack module after.

sudo git clone -b opendaylight https://github.com/trozet/astapor.git

sudo mv /astapor/puppet/modules/quickstack/ /etc/puppet/environments/production/modules/quickstack

OpenDaylight Puppet Module

cd /etc/puppet/environments/production/modules/

There clone the git repo of OpenDaylight.

sudo git clone https://github.com/dfarrell07/puppet-opendaylight.git

And rename it:

sudo mv puppet-opendaylight opendaylight

wait_for Puppet Module

This module is used to wait for ODL to come up before OVS is connected.

cd /etc/puppet/environments/production/modules/

There clone the git repo of wait-for.

sudo git clone https://github.com/basti1302/puppet-wait-for.git

And rename it:

sudo mv puppet-wait-for wait-for

Running Puppet Modules

The OPNFV puppet modules are the only ones that need to be invoked onto a node. They will call the other puppet modules we just installed. The OPNFV modules require a bunch of global parameters to be set before puppet is invoked. With Foreman we do this by setting global parameters and overriding those parameters per host that are host specific.

If using puppet only you may want to create a site.pp file with your nodes in it and declare your variables there along with calls to the correct OPNFV class. Each node should have the generic genesis class (trystack) along with genesis::node_type (trystack::node_type), where node_type is compute, controller_networker, or tempest.

Then the global variables for OPNFV are as below. For the sake of simplicity all passwords/tokens can have the same value.

  • admin_email
  • admin_password
  • public_ip - Public IP of control node. Public API calls, through horizon, etc.
  • private_ip - Private IP of control node. Used for internal OpenStack communication, api calls, etc.
  • mysql_ip - Same as private IP.
  • mysql_root_password
  • amqp_ip - Same as private IP.
  • memcache_ip - Same as private IP.
  • neutron_ip - Same as private IP.
  • keystone_admin_token
  • keystone_db_password
  • horizon_secret_key
  • trystack_db_password
  • nova_user_password
  • nova_db_password
  • cinder_user_password
  • cinder_db_password
  • glance_user_password
  • glance_db_password
  • neutron_user_password
  • neutron_db_password
  • neutron_metadata_shared_secret
  • ceilometer_user_password
  • ceilometer_metering_secret
  • heat_user_password
  • heat_db_password
  • heat_auth_encrypt_key
  • swift_user_password
  • swift_shared_secret
  • swift_admin_password
  • ovs_tunnel_if - Interface that OVS will use to tunnel network data through. This will be overridden per host so you can set to “em1” for now.
  • odl_flag - Set to "true" if you want OpenDaylight used.
  • odl_rest_port - Optional. Specifies ODL REST API port. Defaults to 8081 to avoid conflicts with Swift.
  • odl_control_ip - Optional for controller_networker. Required for network node. ODL's IP. Defaults to private_ip for controller_networker.

quickstack_opnfv_puppet_guide.txt · Last modified: 2015/03/09 22:43 by Tim Rozet