Skip to content
Newer
Older
100644 232 lines (172 sloc) 9.12 KB
4ef24ce Migrated master to target OpenStack Icehouse (2014.1.0)
Chris Hoge authored Apr 23, 2014
1 #puppetlabs-openstack
6b9a261 Updated README file for new project home
Chris Hoge authored Mar 25, 2014
2 Puppet Labs Reference and Testing Deployment Module for OpenStack.
ef24e6e Updated documentation to prepare for 3.0 release.
Chris Hoge authored Apr 18, 2014
3
f100c09 Update metadata and README for bugfix release
Colleen Murphy authored Jan 14, 2015
4 Version 5.0 / 2014.2 / Juno
b63b22b -n
Chris Hoge authored Sep 6, 2013
5
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
6 ####Table of Contents
b63b22b -n
Chris Hoge authored Sep 7, 2013
7
4ef24ce Migrated master to target OpenStack Icehouse (2014.1.0)
Chris Hoge authored Apr 23, 2014
8 1. [Overview - What is the puppetlabs-openstack module?](#overview)
5811c8c @cmurphy Add a getting help guide
cmurphy authored Jul 15, 2015
9 * [Getting Help](#getting-help)
33d3228 @oscerd Fixing typing error in README.md
oscerd authored Aug 16, 2014
10 2. [A Note on Versioning](#versioning)
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
11 2. [Module Description - What does the module do?](#module-description)
6b9a261 Updated README file for new project home
Chris Hoge authored Mar 26, 2014
12 3. [Setup - The basics of getting started with OpenStack](#setup)
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
13 * [Setup Requirements](#setup-requirements)
6b9a261 Updated README file for new project home
Chris Hoge authored Mar 26, 2014
14 * [Beginning with OpenStack](#beginning-with-openstack)
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
15 4. [Usage - Configuration and customization options](#usage)
16 * [Hiera configuration](#hiera-configuration)
17 * [Controller Node](#controller-node)
18 * [Storage, Network, and Compute Nodes](#other-nodes)
19 5. [Reference - An under-the-hood peek at what the module is doing](#reference)
20 6. [Limitations - OS compatibility, etc.](#limitations)
21 7. [License](#license)
b63b22b -n
Chris Hoge authored Sep 7, 2013
22
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
23 ##Overview
b63b22b -n
Chris Hoge authored Sep 7, 2013
24
4ef24ce Migrated master to target OpenStack Icehouse (2014.1.0)
Chris Hoge authored Apr 23, 2014
25 The puppetlabs-openstack module is used to deploy a multi-node, all-in-one, or swift-only installation of
849ecbe Update READMEs
Colleen Murphy authored Jan 11, 2015
26 OpenStack Juno.
b63b22b -n
Chris Hoge authored Sep 7, 2013
27
5811c8c @cmurphy Add a getting help guide
cmurphy authored Jul 16, 2015
28 ###Getting Help
29
30 If you need help configuring your puppet master or your puppet agents, or any
31 help understanding puppet or hiera, please review
32 [puppet's guide to getting help](https://puppetlabs.com/community/get-help).
33
34 If your puppet ran successfully but OpenStack is not working as expected,
35 please visit [OpenStack's getting started guide](https://wiki.openstack.org/wiki/Getting_Started)
36 to find help operating OpenStack.
37
38 If puppet did not run successfully, examine what resources failed the puppet
39 run. Please keep in mind that this module is a thin wrapper around
40 [the OpenStack Puppet Modules](https://wiki.openstack.org/wiki/Puppet#Puppet_Modules),
41 so problems that arise are often due to bugs in the main modules rather than
42 this one. If you are having trouble with one of the OpenStack Puppet Modules,
43 first check [these resources for getting help](https://wiki.openstack.org/wiki/Puppet#Getting_Help),
44 and if necessary [file a bug for the particular module](https://launchpad.net/~puppet-openstack/+related-projects).
45 If you believe the problem is in the puppetlabs-openstack module, file an issue
46 with the [Puppet Labs ticket tracker](https://tickets.puppetlabs.com/browse/OS).
47
48 Similarly, if after seeking help from OpenStack's getting started guide you
49 believe puppet has caused a misconfiguration, file a launchpad bug for the
50 particular module causing the issue or for the puppetlabs-openstack module.
51
086f9c7 Release 3.0.0
Chris Hoge authored Apr 22, 2014
52 ##Versioning
53
4ef24ce Migrated master to target OpenStack Icehouse (2014.1.0)
Chris Hoge authored Apr 23, 2014
54 This module has been given version 4 to track the puppet-openstack modules. The versioning for the
086f9c7 Release 3.0.0
Chris Hoge authored Apr 22, 2014
55 puppet-openstack modules are as follows:
56
57 ```
58 Puppet Module :: OpenStack Version :: OpenStack Codename
59 2.0.0 -> 2013.1.0 -> Grizzly
60 3.0.0 -> 2013.2.0 -> Havana
61 4.0.0 -> 2014.1.0 -> Icehouse
62 5.0.0 -> 2014.2.0 -> Juno
63 ```
64
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
65 ##Module Description
b63b22b -n
Chris Hoge authored Sep 7, 2013
66
849ecbe Update READMEs
Colleen Murphy authored Jan 12, 2015
67 Using the stable/juno branch of the puppet-openstack modules, puppetlabs-openstack allows
68 for the rapid deployment of an installation of OpenStack Juno. For the multi-node, up to six
ef24e6e Updated documentation to prepare for 3.0 release.
Chris Hoge authored Apr 18, 2014
69 types of nodes are created for the deployment:
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
70
71 * A controller node that hosts databases, message queues and caches, and most api services.
72 * A storage node that hosts volumes, image storage, and the image storage api.
73 * A network node that performs L2 routing, L3 routing, and DHCP services.
74 * A compute node to run guest operating systems.
849ecbe Update READMEs
Colleen Murphy authored Jan 12, 2015
75 * Optional object storage nodes to host an object/blob store.
ef24e6e Updated documentation to prepare for 3.0 release.
Chris Hoge authored Apr 18, 2014
76 * An optional Tempest node to test your deployment.
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
77
ef24e6e Updated documentation to prepare for 3.0 release.
Chris Hoge authored Apr 18, 2014
78 The all-in-one deployment sets up all of the services except for Swift on a single node,
79 including the Tempest testing.
41697d0 Added examples and updated README for all-in-one
Chris Hoge authored Mar 5, 2014
80
43c7ae9 Moved Swift to its own example directory for tests.
Chris Hoge authored Apr 22, 2014
81 The Swift deployment sets up:
82
83 * A controller node that hosts databases, message queues and caches, and the Swift API.
84 * Three storage nodes in different Swift Zones.
85
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
86 ##Setup
87
88 ###Setup Requirements
89
849ecbe Update READMEs
Colleen Murphy authored Jan 12, 2015
90 This module assumes nodes running on a RedHat 7 variant (RHEL, CentOS, or Scientific Linux)
91 or Ubuntu 14.04 (Trusty) with either Puppet Enterprise or Puppet.
8de535a 4.0.0 Release
Chris Hoge authored May 6, 2014
92
93 Each node needs a minimum of two network interfaces, and up to four.
3f95899 Added support for Ubuntu 12.04 LTS. Bug fixes
Chris Hoge authored Feb 19, 2014
94 The network interfaces are divided into two groups.
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
95
96 - Public interfaces:
97 * API network.
98 * External network.
99 - Internal interfaces:
100 * Management network.
101 * Data network.
102
8de535a 4.0.0 Release
Chris Hoge authored May 7, 2014
103 This module have been tested with Puppet 3.5 and Puppet Enterprise. This module depends upon Hiera. Object
6b9a261 Updated README file for new project home
Chris Hoge authored Mar 26, 2014
104 store support (Swift) depends upon exported resources and PuppetDB.
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
105
6b9a261 Updated README file for new project home
Chris Hoge authored Mar 26, 2014
106 ###Beginning with OpenStack
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
107
eb4ce51 Release 0.5.0
Chris Hoge authored Feb 20, 2014
108 To begin, you will need to do some basic setup on the compute node. SElinux needs to be disabled
34211c5 Updated README.md for release.
Chris Hoge authored Oct 23, 2013
109 on the compute nodes to give OpenStack full control over the KVM hypervisor and other necessary
110 services. This is the only node that SELinux needs to be disabled on.
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
111
ef24e6e Updated documentation to prepare for 3.0 release.
Chris Hoge authored Apr 18, 2014
112 Additionally, you need to know the network address ranges for all four of the public/private networks,
113 and the specific ip addresses of the controller node and the storage node. Keep in mind that your
114 public networks can overlap with one another, as can the private networks.
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
115
849ecbe Update READMEs
Colleen Murphy authored Jan 12, 2015
116 The examples directory contains Vagrantfiles with CentOS 7 boxes to test out all-in-one, multi-node,
117 or swift-only deployments.
6b9a261 Updated README file for new project home
Chris Hoge authored Mar 26, 2014
118
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
119 ##Usage
120
121 ###Hiera Configuration
4ef24ce Migrated master to target OpenStack Icehouse (2014.1.0)
Chris Hoge authored Apr 23, 2014
122 The first step to using the puppetlabs-openstack module is to configure hiera with settings specific
ef24e6e Updated documentation to prepare for 3.0 release.
Chris Hoge authored Apr 18, 2014
123 to your installation. In this module, the example directory contains sample common.yaml (for multi-node)
124 and allinone.yaml (for all-in-one) files with all of the settings required by this module, as well as an
125 example user and networks to test your deployment with. These configuration options include network settings,
126 locations of specific nodes, and passwords for Keystone and databases. If any of these settings are
127 undefined or not properly set, your deployment may fail.
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
128
129 ###Controller Node
130 For your controller node, you need to assign your node the controller role. For example:
131
132 ```
133 node 'control.localdomain' {
e570ef8 Refactored references of ::havana to ::openstack
Chris Hoge authored Apr 4, 2014
134 include ::openstack::role::controller
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
135 }
136 ```
137
138 It's important to apply this configuration to the controller node before any of the other
139 nodes are applied. The other nodes depend upon the service and database setup in the controller
140 node.
141
142 ###Other Nodes
143
144 For the remainder nodes, there are roles to assign for each. For example:
145 ```
146 node 'storage.localdomain' {
e570ef8 Refactored references of ::havana to ::openstack
Chris Hoge authored Apr 4, 2014
147 include ::openstack::role::storage
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
148 }
149
150 node 'network.localdomain' {
e570ef8 Refactored references of ::havana to ::openstack
Chris Hoge authored Apr 4, 2014
151 include ::openstack::role::network
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
152 }
153
154 node /compute[0-9]+.localdomain/ {
e570ef8 Refactored references of ::havana to ::openstack
Chris Hoge authored Apr 4, 2014
155 include ::openstack::role::compute
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
156 }
157 ```
158
159 For this deployment, it's assumed that there is only one storage node and one network
160 node. There may be multiple compute nodes.
161
162 After applying the configuration to the controller node, apply the remaining
163 configurations to the worker nodes.
164
165 You will need to reboot all of the nodes after installation to ensure that the kernel
ba70b36 Updated limitations for known firewall problems.
Chris Hoge authored Oct 23, 2013
166 module that provides network namespaces, required by Open VSwitch, is loaded.
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
167
1c99218 Updated Modulefile and README for initial release.
Chris Hoge authored Feb 5, 2014
168 ### Object Store Nodes
169
170 Begin by setting up PuppetDB. The easiest way to do this is to use the module provided
849ecbe Update READMEs
Colleen Murphy authored Jan 12, 2015
171 by Puppet Labs. The module only needs to be installed on the master. See the puppet node
172 configuration in the multinode or swift site.pp.
1c99218 Updated Modulefile and README for initial release.
Chris Hoge authored Feb 5, 2014
173
174 You will need to create three nodes as object stores for Swift, assigning three zones:
175
176 ```
177 node /swift[0-9]+zone1.localdomain/ {
e570ef8 Refactored references of ::havana to ::openstack
Chris Hoge authored Apr 4, 2014
178 class { '::openstack::role::swiftstorage':
1c99218 Updated Modulefile and README for initial release.
Chris Hoge authored Feb 5, 2014
179 zone => '1',
180 }
181
182 node /swift[0-9]+zone2.localdomain/ {
e570ef8 Refactored references of ::havana to ::openstack
Chris Hoge authored Apr 4, 2014
183 class { '::openstack::role::swiftstorage':
1c99218 Updated Modulefile and README for initial release.
Chris Hoge authored Feb 5, 2014
184 zone => '2',
185 }
186
187 node /swift[0-9]+zone3.localdomain/ {
e570ef8 Refactored references of ::havana to ::openstack
Chris Hoge authored Apr 4, 2014
188 class { '::openstack::role::swiftstorage':
1c99218 Updated Modulefile and README for initial release.
Chris Hoge authored Feb 5, 2014
189 zone => '3',
190 }
191 ```
192
193 Because of the use of exported resources, puppet will need multiple runs to converge. First run the Puppet Agent
194 on all of the Swift nodes, which will build out the basic storage and store the exported resource information
195 in PuppetDB. Then run the agent on the control node, which will build out the ring files required by Swift.
196 Finally, run Puppet against the Swift storage nodes again to copy the ring files over and successfully start
197 the Swift services.
198
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
199 ##Reference
200
4ef24ce Migrated master to target OpenStack Icehouse (2014.1.0)
Chris Hoge authored Apr 23, 2014
201 The puppetlabs-openstack module is built on the 'Roles and Profiles' pattern. Every node
34211c5 Updated README.md for release.
Chris Hoge authored Oct 23, 2013
202 in a deployment is assigned a single role. Every role is composed of some number of
203 profiles, which ideally should be independent of one another, allowing for composition
4ef24ce Migrated master to target OpenStack Icehouse (2014.1.0)
Chris Hoge authored Apr 23, 2014
204 of new roles. The puppetlabs-openstack module does not strictly adhere to this pattern,
34211c5 Updated README.md for release.
Chris Hoge authored Oct 23, 2013
205 but should serve as a useful example of how to build profiles from modules for customized
206 and maintainable OpenStack deployments.
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
207
208 ##Limitations
209
ef24e6e Updated documentation to prepare for 3.0 release.
Chris Hoge authored Apr 18, 2014
210 * High availability and SSL-enabled endpoints are not provided by this module.
34211c5 Updated README.md for release.
Chris Hoge authored Oct 23, 2013
211
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
212 ##License
849ecbe Update READMEs
Colleen Murphy authored Jan 12, 2015
213 Puppet Labs OpenStack - A Puppet Module for a Multi-Node OpenStack Juno Installation.
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
214
ef24e6e Updated documentation to prepare for 3.0 release.
Chris Hoge authored Apr 18, 2014
215 Copyright (C) 2013, 2014 Puppet Labs, Inc. and Authors
4ef24ce Migrated master to target OpenStack Icehouse (2014.1.0)
Chris Hoge authored Apr 23, 2014
216
6b9a261 Updated README file for new project home
Chris Hoge authored Mar 26, 2014
217 Original Author - Christian Hoge
2ff2de1 -n
Chris Hoge authored Oct 3, 2013
218
219 Puppet Labs can be contacted at: info@puppetlabs.com
220
221 Licensed under the Apache License, Version 2.0 (the "License");
222 you may not use this file except in compliance with the License.
223 You may obtain a copy of the License at
224
225 http://www.apache.org/licenses/LICENSE-2.0
226
227 Unless required by applicable law or agreed to in writing, software
228 distributed under the License is distributed on an "AS IS" BASIS,
229 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
230 See the License for the specific language governing permissions and
231 limitations under the License.
Something went wrong with that request. Please try again.