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. | ||
