diff options
author | Mihai Prica <prica.mihai@gmail.com> | 2013-07-05 18:38:57 +0300 |
---|---|---|
committer | Bruce Ashfield <bruce.ashfield@windriver.com> | 2013-08-28 18:41:58 -0400 |
commit | 368bd958a261ad4d08d4d9194e7088855a05cd59 (patch) | |
tree | 1b5cf3b760320389ad32ee9555d2cc4558af9fbe | |
parent | 00db615d7e92cf662934fed0b4b241fb48e16502 (diff) | |
download | meta-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/DOC | 96 |
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 @@ | |||
1 | Meta-OpenStack | ||
2 | ============== | ||
3 | |||
4 | Description | ||
5 | ----------- | ||
6 | The meta-openstack layer provides support for building the OpenStack packages. | ||
7 | It contains recipes for the nova, glance, keystone, cinder, quantum, swift and | ||
8 | horizon components and their dependencies. | ||
9 | |||
10 | Components | ||
11 | ---------- | ||
12 | * All the openstack packages are python packages so they can be found in the | ||
13 | recipes-devtools/python folder. Each component has been split into multiple | ||
14 | packages 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 | ||
17 | package name. The debug and verbose options have been enabled for capturing | ||
18 | meaningful information in the logs. The configurations have been done using | ||
19 | devstack as a model. Each package has to initialize the database before it is | ||
20 | used for the first time. This is done using a postinstall script that is run | ||
21 | the first time the image is booted. Due to this, the image boot time is longer | ||
22 | the 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 | ||
27 | an initscript that starts the DB server at boot time. Tests were also done | ||
28 | using sqlite3 and MySQL and there were no errors. | ||
29 | |||
30 | * The RabbitMQ server is used for the AMQP message queues. The server is | ||
31 | started 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 | ||
37 | node. This provides all functionality except the hosting of the virtual | ||
38 | machines or providing network services. This includes the postgresql-server, | ||
39 | rabbitmq-server and all the openstack services except the nova-compute | ||
40 | component. | ||
41 | ** packagegroup-cloud-compute - packages for a processing node. This node runs | ||
42 | the compute service as well as the network service agent (in our case, the | ||
43 | Open vSwitch plugin agent). This server also manages the KVM hypervisor. | ||
44 | ** packagegroup-cloud-network: this provides networking services like DHCP, | ||
45 | layer 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 | ||
48 | be used both as a controller and compute node. | ||
49 | |||
50 | Dependencies | ||
51 | ------------ | ||
52 | * This layers depends on components from the poky, meta-virtualization and | ||
53 | meta-openembedded layers. You can find the exact URIs of the repos and the | ||
54 | necessary revisions in the README file. | ||
55 | |||
56 | Building an image | ||
57 | ----------------- | ||
58 | * There are two new target images: nova-image-compute and nova-image-controller | ||
59 | that contain the packagegroups with the same name, that have been describe | ||
60 | above. | ||
61 | |||
62 | * Once a buildir has been initialized you have to append the necessary layers | ||
63 | to the bblayers.conf file: | ||
64 | /meta-virtualization \ | ||
65 | /meta-openstack \ | ||
66 | /meta-openembedded/meta-oe \ | ||
67 | /meta-openembedded/meta-networking \ | ||
68 | |||
69 | Package configurations | ||
70 | ---------------------- | ||
71 | The identity.sh script creates the necessary users, services and endpoints | ||
72 | for the Keystone identity system. If you want to customize the usernames, | ||
73 | passwords you have to change this information in the configuration | ||
74 | files for the services as well. | ||
75 | |||
76 | Running an image | ||
77 | ---------------- | ||
78 | * Controller node * | ||
79 | To test the image, you can run it using the runqemu script. After the image | ||
80 | has booted, to use the command line clients some environmental variables | ||
81 | required by the openstack services to connect to the identity service have to | ||
82 | be set. These can be found in /root/.bashrc. If you start a new bash session | ||
83 | they are automatically loaded. All the nova(except compute), keystone, glance, | ||
84 | cinder, quantum, swift services should be running after a successful boot. | ||
85 | |||
86 | * Compute node * | ||
87 | The configuration files for the nova package are for a controller node so some | ||
88 | options have to be changed for the compute service to properly work. You have | ||
89 | to 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; | ||
93 | Once the changes are done you have to restart the nova-compute service. | ||
94 | !! Hint !! | ||
95 | When using a multi-node setup is recommended that each host have a different | ||
96 | hostname and that every host knows the other hosts. | ||