Initial commit
[ta/infra-ansible.git] / roles / bootstrap-host / defaults / main.yml
1 ---
2 # Copyright 2015, Rackspace US, Inc.
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #     http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16 ## AIO user-space configuration options
17 # Scenario used to bootstrap the host
18 bootstrap_host_scenario: aio
19 #
20 # Boolean option to implement OpenStack-Ansible configuration for an AIO
21 # Switch to no for a multi-node configuration
22 bootstrap_host_aio_config: yes
23 #
24 # Path to the location of the bootstrapping configuration files
25 bootstrap_host_aio_config_path: "{{ playbook_dir }}/../etc/openstack_deploy"
26 #
27
28 bootstrap_host_aio_config_name: "openstack_user_config.yml.aio"
29
30 # Path to the location of the scripts the bootstrap scripts use
31 bootstrap_host_aio_script_path: "{{ playbook_dir }}/../scripts"
32 #
33 # The user space configuration file names to use
34 bootstrap_host_user_variables_filename: "user_variables.yml"
35 bootstrap_host_user_secrets_filename: "user_secrets.yml"
36
37 ## Swap memory
38 # If there is no swap memory present, the bootstrap will create a loopback disk
39 # for the purpose of having swap memory available. Swap is required for some of
40 # the services deployed and is useful for AIO's built with less than 16GB memory.
41 # By default the swap size is set to 8GB unless the host memory is less than 8GB,
42 # in which case it is set to 4GB.
43 bootstrap_host_swap_size: "{% if ansible_memory_mb['real']['total'] < 8*1024 %}4{% else %}8{% endif %}"
44
45 ## Loopback volumes
46 # Sparse loopback disks are used for Cinder, Swift and Nova (instance storage).
47 # The size of the loopback volumes can be customized here (in gigabytes).
48 #
49 # Boolean option to deploy the loopback disk for Cinder
50 bootstrap_host_loopback_cinder: yes
51 # Size of the Cinder loopback disk in gigabytes (GB).
52 bootstrap_host_loopback_cinder_size: 1024
53 #
54 # Boolean option to deploy the loopback disk for Swift
55 bootstrap_host_loopback_swift: yes
56 # Size of the Swift loopback disk in gigabytes (GB).
57 bootstrap_host_loopback_swift_size: 1024
58 #
59 # Boolean option to deploy the loopback disk for Nova
60 bootstrap_host_loopback_nova: yes
61 # Size of the Nova loopback disk in gigabytes (GB).
62 bootstrap_host_loopback_nova_size: 1024
63
64 # Boolean option to deploy the OSD loopback disks and cluster UUID for Ceph
65 bootstrap_host_ceph: "{{ (bootstrap_host_scenario == 'ceph') | bool }}"
66 # Size of the Ceph OSD loopbacks
67 bootstrap_host_loopback_ceph_size: 1024
68 # Ceph OSDs to create on the AIO host
69 ceph_osd_images:
70   - 'ceph1'
71   - 'ceph2'
72   - 'ceph3'
73
74 ## Network configuration
75 # The AIO bootstrap configures bridges for use with the AIO deployment.
76 # By default, these bridges are configured to be independent of any physical
77 # interfaces, and they have their 'bridge_ports' set to 'none'.  However,
78 # deployers can add a physical interface to 'bridge_ports' to connect the
79 # bridge to a real physical interface.
80 #
81 # A setting of 'none' keeps the bridges as independent from physical
82 # interfaces (the default).
83 #
84 # Setting the value to 'eth1' would mean that the bridge is directly connected
85 # to the eth1 device.
86 #
87 # See https://wiki.debian.org/BridgeNetworkConnections for more details.
88 bootstrap_host_bridge_mgmt_ports: none
89 bootstrap_host_bridge_vxlan_ports: none
90 bootstrap_host_bridge_storage_ports: none
91 bootstrap_host_bridge_vlan_ports: "br-vlan-veth"
92 # This enables the VXLAN encapsulation the traditional bridges
93 # (br-mgmt, br-vxlan, br-storage)
94 bootstrap_host_encapsulation_enabled: "{{ not bootstrap_host_aio_config | bool }}"
95 #
96 # Default network IP ranges
97 mgmt_range: "172.29.236"
98 vxlan_range: "172.29.240"
99 storage_range: "172.29.244"
100 vlan_range: "172.29.248"
101 netmask: "255.255.252.0"
102 #
103 # NICs
104 bootstrap_host_public_interface: "{{ ansible_default_ipv4.interface }}"
105 bootstrap_host_encapsulation_interface: eth1
106 #
107 #Encapsulations
108 bootstrap_host_encapsulation_interfaces:
109   encap-mgmt:
110     id: 236
111     underlay_device: "{{ bootstrap_host_encapsulation_interface }}"
112     friendly_name: "Encapsulation of br-mgmt with VXLAN"
113   encap-vxlan:
114     id: 240
115     underlay_device: "{{ bootstrap_host_encapsulation_interface }}"
116     friendly_name: "Encapsulation of br-vxlan with VXLAN"
117   encap-storage:
118     id: 244
119     underlay_device: "{{ bootstrap_host_encapsulation_interface }}"
120     friendly_name: "Encapsulation of br-storage with VXLAN"
121   encap-vlan:
122     id: 248
123     underlay_device: "{{ bootstrap_host_encapsulation_interface }}"
124     friendly_name: "Encapsulation of br-vlan with VXLAN"
125 #
126 # Bridges
127 bridges:
128   - name: "br-mgmt"
129     ip_addr: "172.29.236.100"
130     netmask: "255.255.252.0"
131   - name: "br-vxlan"
132     ip_addr: "172.29.240.100"
133     netmask: "255.255.252.0"
134   - name: "br-storage"
135     ip_addr: "172.29.244.100"
136     netmask: "255.255.252.0"
137   - name: "br-vlan"
138     ip_addr: "172.29.248.100"
139     alias: "172.29.248.1"
140     veth_peer: "eth12"
141     netmask: "255.255.252.0"
142
143 bootstrap_host_bridges_interfaces:
144   br-mgmt:
145     ports: "{{ bootstrap_host_encapsulation_enabled | bool | ternary ('encap-mgmt', bootstrap_host_bridge_mgmt_ports) }}"
146     ip_address_range: "{{ mgmt_range }}"
147     ip_netmask: "{{ netmask }}"
148   br-storage:
149     ports: "{{ bootstrap_host_encapsulation_enabled | bool | ternary ('encap-storage', bootstrap_host_bridge_storage_ports) }}"
150     ip_address_range: "{{ storage_range }}"
151     ip_netmask: "{{ netmask }}"
152   br-vxlan:
153     ports: "{{ bootstrap_host_encapsulation_enabled | bool | ternary ('encap-vxlan', bootstrap_host_bridge_vxlan_ports) }}"
154     ip_address_range: "{{ vxlan_range }}"
155     ip_netmask: "{{ netmask }}"
156   br-vlan:
157     mode: "{{ bridge_vlan_inet_mode | default('static') }}"
158     ports: "{{ bootstrap_host_encapsulation_enabled | bool | ternary ('encap-vlan', bootstrap_host_bridge_vlan_ports) }}"
159     ip_address_range: "{{ vlan_range }}"
160     ip_netmask: "{{ netmask }}"
161     state_change_scripts: "{{ bridge_vlan_state_change_scripts }}"
162 #
163 # Convenience scripts
164 bridge_vlan_state_change_scripts: |
165   pre-up ip link add br-vlan-veth type veth peer name eth12 || true
166   pre-up ip link set br-vlan-veth up
167   pre-up ip link set eth12 up
168   post-down ip link del br-vlan-veth || true
169 bridge_iptables_rules: |
170   # To ensure ssh checksum is correct
171   up /sbin/iptables -A POSTROUTING -t mangle -p tcp -o {{ bootstrap_host_public_interface }} -j CHECKSUM --checksum-fill
172   down /sbin/iptables -D POSTROUTING -t mangle -p tcp -o {{ bootstrap_host_public_interface }} -j CHECKSUM --checksum-fill
173   # To provide internet connectivity to instances
174   up /sbin/iptables -t nat -A POSTROUTING -o {{ bootstrap_host_public_interface }} -j MASQUERADE
175   down /sbin/iptables -t nat -D POSTROUTING -o {{ bootstrap_host_public_interface }} -j MASQUERADE
176
177 ## Extra storage
178 # An AIO may optionally be built using a second storage device. If a
179 # secondary disk device to use is not specified, then the AIO will be
180 # built on any existing disk partitions.
181 #
182 # WARNING: The data on a secondary storage device specified here will
183 # be destroyed and repartitioned.
184 #
185 # Specify the secondary disk device to use.
186 bootstrap_host_data_disk_device: null
187 #
188 # Boolean value to force the repartitioning of the secondary device.
189 bootstrap_host_data_disk_device_force: no
190 #
191 # If the storage capacity on this device is greater than or equal to this
192 # size (in GB), the bootstrap process will use it.
193 bootstrap_host_data_disk_min_size: 50
194
195 ### Optional Settings ###
196
197 # Set the apt repository URL's configured for the host and containers.
198 # By default the configuration will be derived from the host.
199 #bootstrap_host_ubuntu_repo: http://archive.ubuntu.com/ubuntu/
200 #bootstrap_host_ubuntu_security_repo: http://archive.ubuntu.com/ubuntu/
201
202 # Set the components that will be included in the apt repository configuration
203 bootstrap_host_apt_components:
204   - main
205   - universe
206
207 # Specify the public IP address for the host.
208 # By default the address will be set to the ipv4 address of the
209 # host's network interface that has the default route on it.
210 #bootstrap_host_public_address: 0.0.0.0
211
212
213 sudo_user: "ncioadmin"
214 # password: ncioadmin
215 # Generated with command "openssl passwd -1 -salt ncioadmin ncioadmin"
216 sudo_user_password: "$1$ncioadmi$vDa1mNhcMDKMBSI27RqW51"