Welcome to Christopher Hull's
OpenStack Projects Page

The OpenStack Configuration Service: Pluto

Installation, expansion and configuration management is a long avoided pain point in the OpenStack world. Pluto addresses this.

What is Pluto for OpenStack

Pluto is a command line tool for managing OpenStack configuration files (soon to be a service which runs across all hosts in a cluster). It allows you to view and edit these files in a familiar OpenStack command line like way. Pluto keeps an audit trail of your changes within the files. The tool was designed to allow you to easily install new versions of OpenStack based on the instructions provided for each release. Batch files follow the identical syntax found in the OpenStack install guide. Use of these files is faster and far less error prone than manual file editing. See samples and readme.

Database support coming soon. This will allow full configuration synchronization with one single tool.

Download Pluto
Click to download Pluto.tar

View the full README (includes sample sessions)
Click to see readme

Sample display of /etc/nova.conf

You can also edit key/value pairs just as easily without the need to sift thru all the conf files. The tool even allows global changes across files to insure duplicate data, such as auth_url, auth_strategy, rabbit_host, passwords, etc are all identical and synchronized where appropriate.
Batch file processing allows for easier installation of newer OpenStack releases such as Liberty. See Glance Liberty Install below.



Orion:src chris$ ./pluto.py show nova  -p /etc 
+-----------------------+--------------------------------+-------------------------------------------------+
| nova: Section         | Key                            | Value                                           |
+-----------------------+--------------------------------+-------------------------------------------------+
| DEFAULT               | network_api_class              |  nova.network.neutronv2.api.API                 |
| DEFAULT               | security_group_api             |  neutron                                        |
| DEFAULT               | linuxnet_interface_driver      |  nova.network.linux_net.LinuxOVSInterfaceDriver |
| DEFAULT               | firewall_driver                |  nova.virt.firewall.NoopFirewallDriver          |
| DEFAULT               | rpc_backend                    |  rabbit                                         |
| DEFAULT               | auth_strategy                  |  keystone                                       |
| DEFAULT               | my_ip                          |  172.22.10.5                                    |
| DEFAULT               | vncserver_proxyclient_address  |  172.22.10.5                                    |
| DEFAULT               | verbose                        |  True                                           |
| DEFAULT               | vnc_enabled                    |  True                                           |
| DEFAULT               | vncserver_listen               |  0.0.0.0                                        |
| DEFAULT               | vncserver_proxyclient_address  |  172.22.10.5                                    |
| DEFAULT               | novncproxy_base_url            |  http://controller:6080/vnc_auto.html           |
| DEFAULT               | verbose                        |  True                                           |
| DEFAULT               | network_api_class              |  nova.network.neutronv2.api.API                 |
| DEFAULT               | security_group_api             |  neutron                                        |
| DEFAULT               | linuxnet_interface_driver      |  nova.network.linux_net.LinuxOVSInterfaceDriver |
| DEFAULT               | firewall_driver                |  nova.virt.firewall.NoopFirewallDriver          |
| DEFAULT               | instances_path                 | /home/nova/instances                            |
| DEFAULT               | ram_allocation_ratio           | 3                                               |
| database              | connection                     |  mysql://nova:openg00dle@controller/nova        |
| glance                | host                           |  controller                                     |
| keystone_authtoken    | auth_uri                       |  http://controller:5000                         |
| keystone_authtoken    | auth_url                       |  http://controller:35357                        |
| keystone_authtoken    | auth_plugin                    |  password                                       |
| keystone_authtoken    | project_domain_id              |  default                                        |
| keystone_authtoken    | user_domain_id                 |  default                                        |
| keystone_authtoken    | project_name                   |  service                                        |
| keystone_authtoken    | username                       |  nova                                           |
| keystone_authtoken    | password                       |  sleestack                                      |
| neutron               | url                            |  http://controller:9696                         |
| neutron               | auth_strategy                  |  keystone                                       |
| neutron               | admin_auth_url                 |  http://controller:35357/v2.0                   |
| neutron               | admin_tenant_name              |  service                                        |
| neutron               | admin_username                 |  neutron                                        |
| neutron               | admin_password                 |  sleestack                                      |
| neutron               | service_metadata_proxy         |  True                                           |
| neutron               | metadata_proxy_shared_secret   |  METADATA_SEKRIT                                |
| oslo_concurrency      | lock_path                      |  /var/lib/nova/tmp                              |
| oslo_messaging_rabbit | rabbit_host                    |  controller                                     |
| oslo_messaging_rabbit | rabbit_userid                  |  openstack                                      |
| oslo_messaging_rabbit | rabbit_password                |  openg00dle232                                  |
+-----------------------+--------------------------------+-------------------------------------------------+

Sample Glance Liberty Installation / Upgrade file for use with Pluto.

# Pluto - OpenStack Configuration Manager
# Batch file for OpenStack Liberty Glance installation
#
# This batch file contains instructions for installing Liberty Glance as seen here.
# http://docs.openstack.org/liberty/install-guide-rdo/glance-install.html
# You can more or less cut and paste config file instructions from the above page.
# See below.

# Processor Directives
#
# There are a small number of processor directives in this file.  
# They all begin with a "&"

# Processor Directive  &INSTALL_NOTE
# This processor will automatically add comments to .conf files.
# This allows you to track changes and do some debugging if necessary.
# This note simply marks the initial installation.
&INSTALL_NOTE Liberty Glance service initial install

# Processor Directive  &CONF_FILE_NAME
# All subsequent modifications will take place for the conf file specified here.
# No need for full path.  File searches are constrained by a root spec plus list
# of known OpenStack dirs ( /etc plus /nova, /glance, /neutron...)

# Variable Resolution
#
# Variables seen thruout the install guide, such as GLANCE_DBPASS are automatically resolved 
# based on dictionary settings.
# Find them in variables.py  OPENSTACK_VARIABLES and change them to your liking.
# You can cut and paste settings right out of the OpenStack install instructions.
# We skip "..." and lines beginning with a '#' among others.

# ====================================================================================
# Start of instructions from OpenStack Install Guide


# Edit the /etc/glance/glance-api.conf file and complete the following actions:
&CONF_FILE_NAME glance-api.conf

# In the [database] section, configure database access:
[database]
...
connection = mysql://glance:GLANCE_DBPASS@controller/glance

# In the [keystone_authtoken] and [paste_deploy] sections, configure Identity service access:
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = glance
password = GLANCE_PASS

[paste_deploy]
...
flavor = keystone

# In the [glance_store] section, configure the local file system store and location of image files:
[glance_store]
...
default_store = file
filesystem_store_datadir = GLANCE_IMAGE_STORE

# In the [DEFAULT] section, configure the noop notification driver to disable 
# notifications because they only pertain to the optional Telemetry service:
[DEFAULT]
...
notification_driver = noop

# (Optional) To assist with troubleshooting, enable verbose logging in the [DEFAULT] section:
[DEFAULT]
...
verbose = True


#--------------------------------------------------------------------------------------
# Edit the /etc/glance/glance-registry.conf file and complete the following actions:
&CONF_FILE_NAME glance-registry.conf

# In the [database] section, configure database access:
[database]
...
connection = mysql://glance:GLANCE_DBPASS@controller/glance

# In the [keystone_authtoken] and [paste_deploy] sections, configure Identity service access:
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = glance
password = GLANCE_PASS

[paste_deploy]
...
flavor = keystone

# In the [DEFAULT] section, configure the noop notification driver to disable 
# notifications because they only pertain to the optional Telemetry service:

[DEFAULT]
...
notification_driver = noop

# (Optional) To assist with troubleshooting, enable verbose logging in the [DEFAULT] section:

[DEFAULT]
...
verbose = True





Back to Chris Hull's Career Page
Back to Chris Hull's Homepage

Page last updated on March 2 2016.