Merge "Remove Compass from genesis."
[genesis.git] / puppet.md
1 # Puppet installation
2
3 ---
4 ## Puppet modules
5
6 ###genesis
7 [https://gerrit.opnfv.org/gerrit/genesis](https://gerrit.opnfv.org/gerrit/genesis)
8
9 This module is a small set of puppet code. Its intention is mostly to glue the variables in foreman to the quickstack module. These classes could also be used as a site.pp node manifest for running a puppet apply.
10
11 There is a class for each the control node, network node and compute nodes. The site.pp/node-manifest should have one of these classes and the
12 appropriate variables that they check for applied to each of the them. This module will invoke the quickstack classes.
13
14 There is not HA or ceph configuration in this module yet, though quickstack does support them so they can be added.
15
16 ###Quickstack
17
18 [https://github.com/radez/astapor/tree/opendaylight](https://github.com/radez/astapor/tree/opendaylight)
19
20 This module is the composition layer that will tie together all the puppet modules that will install openstack together.
21
22 Quickstack is maintained as part of astapor. Pull the astapor module from this fork and link the  puppet/modules/quickstack directory to your puppet modules directory so it can be used.
23
24 The fork is necessary because there is a patch on this fork to teach quickstack how to configure neutron with ODL.
25
26 Once this patch is merged the upstream astapor module can be cloned from upstream at
27 [https://github.com/redhat-openstack/astapor](https://github.com/redhat-openstack/astapor).
28
29 ### openstack-puppet-modules (OPM)
30 *or the stackforge puppet modules*
31
32 [https://repos.fedorapeople.org/repos/openstack/openstack-juno/epel-7/](https://repos.fedorapeople.org/repos/openstack/openstack-juno/epel-7/)
33
34 Pull the latest copy of the openstack-puppet-modules rpm from RDO. This rpm has all the puppet modules needed to install openstack in it that have been tested together. You could also just pull all the stackforge modules. Put these modules on your puppet module path.
35
36 ### puppet-opendaylight
37 [https://github.com/dfarrell07/puppet-opendaylight](https://github.com/dfarrell07/puppet-opendaylight)
38
39 This module is not included in OPM pull a clone a copy of it to your puppet modules path.
40
41 ---
42 ##Installation Options
43 ###Puppet apply
44
45 TODO: add details to do a puppet apply install
46
47 ###Foreman
48 [http://theforeman.org/](http://theforeman.org/)
49
50 Foreman is a provisioning and puppet master platform in one project.
51
52 Get a copy of foreman-installer on a node in an empty broadcast domain. Foreman expects to be the dhcp server on the network.
53
54 Run foreman-installer something like this:
55
56
57     sudo foreman-installer \
58         --enable-foreman-proxy \
59         --foreman-proxy-tftp=true \
60         --foreman-proxy-tftp-servername=10.1.254.1 \
61         --foreman-proxy-dhcp=true \
62         --foreman-proxy-dhcp-interface=em1 \
63         --foreman-proxy-dhcp-gateway=10.1.254.254 \
64         --foreman-proxy-dhcp-range="10.1.254.2 10.1.254.40" \
65         --foreman-proxy-dhcp-nameservers="10.1.254.1" \
66         --foreman-proxy-dns=true \
67         --foreman-proxy-dns-interface=em1 \
68         --foreman-proxy-dns-zone=example.com \
69         --foreman-proxy-dns-reverse=254.1.10.in-addr.arpa \
70         --foreman-proxy-dns-forwarders=10.1.16.30 \
71         --foreman-proxy-foreman-base-url=https://foreman.example.com
72
73 * dhcp-nameservers is the dns address given to provisioned hosts, point this to foreman
74 * dns-forwarders is an external dns address that dns reqs will be forewarded to that foreman do not handle
75 * make sure that your foreman-base-url will be resolvable