first stab at a nova README

This commit is contained in:
Darren Birkett
2012-04-24 13:56:33 +01:00
parent 52a5007acd
commit 7469717589

175
README.md
View File

@@ -1,10 +1,25 @@
Description
===========
Installs the Openstack compute service (codename: nova) from packages.
http://nova.openstack.org
Requirements
============
## Cookbooks
Chef 0.10.0 or higher required (for Chef environment use).
Platforms
--------
* Ubuntu-12.04
* Fedora-17
Cookbooks
---------
The following cookbooks are dependencies:
* apt
* database
@@ -14,14 +29,162 @@ Requirements
* openssh
* rabbitmq
## Platforms
Resources/Providers
===================
None
Recipes
=======
api-ec2
----
-includes recipe `nova-common`
-installs AWS EC2 compatible API and configures the service and endpoints in keystone
api-metadata
----
-includes recipe `nova-common`
-Installs the nova metadata package
api-os-compute
----
-includes recipe `nova-common`
-installs OS API and configures the service and endpoints in keystone
api-os-volume
----
-includes recipe `nova-common`
-installs the OpenStack volume service API
apt
----
-performs an apt-get update
compute
----
-includes recipes `nova-common`, `api-metadata`, `network`
-installs nova-compute service
libvirt
----
-installs libvirt, used by nova compute for management of the virtual machine environment
network
----
-includes recipe `nova-common`
-installs nova network service
nova-common
----
-Builds the basic nova.conf config file with details of the rabbitmq, mysql, glance and keystone servers. Also builds a .novarc file for root with appropriate environment variables to interact with the nova client cli.
nova-setup
----
-includes recipes `nova-common`, `mysql:client`
-sets up the nova database on the mysql server, including the initial schema and subsequent creation of the appropriate networks
scheduler
----
-includes recipe `nova-common`
-nstalls nova scheduler service
vncproxy
----
-includes recipe `nova-common`
-installs and configures the vncproxy service for console access to vms
volume
----
-includes recipes `nova-common`, `api-os-volume`
-installs nova volume service and configures the service and endpoints in keystone
* Ubuntu
* Fedora
Attributes
==========
Usage
=====
`nova["db"]` - name of nova database
`nova["db_user"]` - username for nova database access
`nova["db_passwd"]` - password for nova database access
`nova["db_ipaddress"]` - ip address for nova api to bind to
`nova["service_tenant_name"]` - tenant name used by nova when interacting with keystone
`nova["service_user"]` - user name used by nova when interacting with keystone
`nova["service_pass"]` - user password used by nova when interacting with keystone
`nova["service_role"]` - user role used by nova when interacting with keystone
`nova["compute"]["adminURL"]` - defines the url used to access the OS API for admin functions
`nova["compute"]["internalURL"]` - defines the url used to access the OS API for user functions from an internal network
`nova["compute"]["publicURL"]` - defines the url used to access the OS API for user functions from an external network
`nova["ec2"]["adminURL"]` - defines the url used to access the AWS EC2 compatible API for admin functions
`nova["ec2"]["internalURL"]` - defines the url used to access the AWS EC2 compatible API for user functions from an internal network
`nova["ec2"]["publicURL"]` - defines the url used to access the AWS EC2 compatible API for user functions from an external network
`volume["api_port"]` - port on which nova volumes api runs
`volume["ipaddress"]` - ip address where nova volumes api runs
`volume["adminURL"]` - the url used to access the nova volumes API for admin functions
`volume["internalURL"]` - the url used to access the nova volumes API for user functions from an internal network
`volume["publicURL"]` - the url used to access the nova volumes API for user functions from an external network
`public["label"]` - network label to be assigned to the public network on creation
`public["ipv4_cidr"]` - network to be created (in cidr notation eg 192.168.100.0/24)
`public["num_networks"]` - number of networks to be created
`public["network_size"]` - number of IP addresses to be used in this network
`public["bridge"]` - bridge to be created for accessing the vm network (eg br100)
`public["bridge_dev"]` - physical device on which the bridge device should be attached (eg eth2)
`public["dns1"]` - dns server 1
`public["dns2"]` - dns server 2
`private["label"]` - network label to be assigned to the private network on creation
`private["ipv4_cidr"]` - network to be created (in cidr notation eg 192.168.200.0/24)
`private["num_networks"]` - number of networks to be created
`private["network_size"]` - number of IP addresses to be used in this network
`private["bridge"]` - bridge to be created for accessing the vm network (eg br200)
`private["bridge_dev"]` - physical device on which the bridge device should be attached (eg eth3)
`virt_type` - what hypervisor software layer to use with libvirt (eg kvm, qemu)
`libvirt["auth_tcp"]` - the type of authentication your libvirt layer requires
`libvirt["ssh"]["private_key"]` - private key to use if using ssh authentication to your libvirt layer
`libvirt["ssh"]["public_key"]` - public key to use if using ssh authentication to your libvirt layer
Templates
=====
`api-paste.ini.erb` - paste config for nova api middleware
`libvirt-bin.erb` - initscript for starting libvirtd
`libvirtd-ssh-config` - config file for libvirt ssh auth
`libvirtd-ssh-private-key.erb` - private ssh key for libvirt ssh
`libvirtd-ssh-public-key.erb` - public ssh key for libvirt ssh auth
`libvirtd.conf.erb` - libvirt config file
`local_settings.py.erb` - dashboard (horizon) config file
`mysql-server.seed.erb` - debian preseed file for configuring mysql
`nova-mysql.cnf.erb` - mysql config file
`nova.conf.erb` - basic nova.conf file
`novarc.erb` - contains environment variable settings to enable easy use of the nova client
License and Author
==================
Author:: Justin Shepherd (<justin.shepherd@rackspace.com>)
Author:: Jason Cannavale (<jason.cannavale@rackspace.com>)
Author:: Ron Pedde (<ron.pedde@rackspace.com>)
Author:: Joseph Breu (<joseph.breu@rackspace.com>)
Author:: William Kelly (<william.kelly@rackspace.com>)
Author:: Darren Birkett (<darren.birkett@rackspace.co.uk>)
Author:: Evan Callicoat (<evan.callicoat@rackspace.com>)
Copyright 2012, Rackspace, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.