summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMihai Prica <prica.mihai@gmail.com>2013-07-05 18:38:57 +0300
committerBruce Ashfield <bruce.ashfield@windriver.com>2013-08-28 18:41:58 -0400
commit368bd958a261ad4d08d4d9194e7088855a05cd59 (patch)
tree1b5cf3b760320389ad32ee9555d2cc4558af9fbe
parent00db615d7e92cf662934fed0b4b241fb48e16502 (diff)
downloadmeta-cloud-services-368bd958a261ad4d08d4d9194e7088855a05cd59.tar.gz
DOC: Added draft for layer documentation
Signed-off-by: Mihai Prica <prica.mihai@gmail.com>
-rw-r--r--meta-openstack/DOC96
1 files changed, 96 insertions, 0 deletions
diff --git a/meta-openstack/DOC b/meta-openstack/DOC
new file mode 100644
index 0000000..f00ae86
--- /dev/null
+++ b/meta-openstack/DOC
@@ -0,0 +1,96 @@
1Meta-OpenStack
2==============
3
4Description
5-----------
6The meta-openstack layer provides support for building the OpenStack packages.
7It contains recipes for the nova, glance, keystone, cinder, quantum, swift and
8horizon components and their dependencies.
9
10Components
11----------
12* All the openstack packages are python packages so they can be found in the
13recipes-devtools/python folder. Each component has been split into multiple
14packages similar to the ones used by other Linux distributions.
15
16* The configuration files for each package can be found in the folder with the
17package name. The debug and verbose options have been enabled for capturing
18meaningful information in the logs. The configurations have been done using
19devstack as a model. Each package has to initialize the database before it is
20used for the first time. This is done using a postinstall script that is run
21the first time the image is booted. Due to this, the image boot time is longer
22the first time.
23
24* System-V initscripts are also provided that start the services at boot time.
25
26* The postgresql package is used for the database backend. The layer contains
27an initscript that starts the DB server at boot time. Tests were also done
28using sqlite3 and MySQL and there were no errors.
29
30* The RabbitMQ server is used for the AMQP message queues. The server is
31started at boot time with the default configuration.
32
33* The dashboard(horizon) component is still under development.
34
35* Three new packagegroups have been defined:
36** packagegroup-cloud-controller - required packages for building a controller
37node. This provides all functionality except the hosting of the virtual
38machines or providing network services. This includes the postgresql-server,
39rabbitmq-server and all the openstack services except the nova-compute
40component.
41** packagegroup-cloud-compute - packages for a processing node. This node runs
42the compute service as well as the network service agent (in our case, the
43Open vSwitch plugin agent). This server also manages the KVM hypervisor.
44** packagegroup-cloud-network: this provides networking services like DHCP,
45layer 2 switching, layer 3 routing and metadata connectivity.
46
47* Multiple packagegroups can be used in the same image to get a image that can
48be used both as a controller and compute node.
49
50Dependencies
51------------
52* This layers depends on components from the poky, meta-virtualization and
53meta-openembedded layers. You can find the exact URIs of the repos and the
54necessary revisions in the README file.
55
56Building an image
57-----------------
58* There are two new target images: nova-image-compute and nova-image-controller
59that contain the packagegroups with the same name, that have been describe
60above.
61
62* Once a buildir has been initialized you have to append the necessary layers
63to the bblayers.conf file:
64 /meta-virtualization \
65 /meta-openstack \
66 /meta-openembedded/meta-oe \
67 /meta-openembedded/meta-networking \
68
69Package configurations
70----------------------
71The identity.sh script creates the necessary users, services and endpoints
72for the Keystone identity system. If you want to customize the usernames,
73passwords you have to change this information in the configuration
74files for the services as well.
75
76Running an image
77----------------
78* Controller node *
79To test the image, you can run it using the runqemu script. After the image
80has booted, to use the command line clients some environmental variables
81required by the openstack services to connect to the identity service have to
82be set. These can be found in /root/.bashrc. If you start a new bash session
83they are automatically loaded. All the nova(except compute), keystone, glance,
84cinder, quantum, swift services should be running after a successful boot.
85
86* Compute node *
87The configuration files for the nova package are for a controller node so some
88options have to be changed for the compute service to properly work. You have
89to replace localhost to the controller node IP in the following files:
90 /etc/nova/nova.conf: sql_connection; rabbit_host;
91 /etc/nova/api-paste.ini: auth_host;
92 /root/.bashrc: SERVICE_ENDPOINT, OS_AUTH_URL;
93Once the changes are done you have to restart the nova-compute service.
94!! Hint !!
95When using a multi-node setup is recommended that each host have a different
96hostname and that every host knows the other hosts.