1e9c7b044f
User can now choose to have a filesystem type different from default ext4 by using: export BOOTSTRAP_OPTS="bootstrap_host_data_disk_fs_type=xfs" for instance. This may be usefull to get closer to new distributions defaults (like Centos) which moved to xfs. Furthermore, xfs offers several operational advantages over ext4. Change-Id: I5a0db09b842b74aae0aec14415c5c07a9c594705
283 lines
11 KiB
YAML
283 lines
11 KiB
YAML
---
|
|
# Copyright 2015, Rackspace US, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
## AIO user-space configuration options
|
|
# Scenario used to bootstrap the host
|
|
bootstrap_host_scenario: aio_lxc
|
|
#
|
|
# Boolean option to implement OpenStack-Ansible configuration for an AIO
|
|
# Switch to no for a multi-node configuration
|
|
bootstrap_host_aio_config: yes
|
|
#
|
|
# Path to the location of the bootstrapping configuration files
|
|
bootstrap_host_aio_config_path: "{{ playbook_dir }}/../etc/openstack_deploy"
|
|
#
|
|
# Path to the location of the scripts the bootstrap scripts use
|
|
bootstrap_host_aio_script_path: "{{ playbook_dir }}/../scripts"
|
|
#
|
|
# The user space configuration file names to use
|
|
bootstrap_host_user_variables_filename: "user_variables.yml"
|
|
bootstrap_host_user_secrets_filename: "user_secrets.yml"
|
|
#
|
|
# Paths to configuration file targets that should be created by the bootstrap
|
|
bootstrap_host_target_config_paths:
|
|
- /etc/openstack_deploy
|
|
- /etc/openstack_deploy/conf.d
|
|
- /etc/openstack_deploy/env.d
|
|
|
|
# The user variables template to use
|
|
bootstrap_user_variables_template: user_variables.aio.yml.j2
|
|
|
|
# Extra user variables files can be loaded into /etc/openstack_deploy by
|
|
# test scenarios. The dict uses scenario as the key to load a list of extra
|
|
# templates if necessary.
|
|
bootstrap_user_variables_extra_templates:
|
|
ceph:
|
|
- src: user_variables_ceph.yml.j2
|
|
dest: user_variables_ceph.yml
|
|
congress:
|
|
- src: user_variables_congress.yml.j2
|
|
dest: user_variables_congress.yml
|
|
translations:
|
|
- src: user_variables_translations.yml.j2
|
|
dest: user_variables_translations.yml
|
|
octavia:
|
|
- src: user_variables_octavia.yml.j2
|
|
dest: user_variables_octavia.yml
|
|
|
|
## Loopback volumes
|
|
# Sparse loopback disks are used for the containers if there is no secondary
|
|
# disk available to partition for btrfs. They are also used for Ceph, Cinder,
|
|
# Swift and Nova (instance storage).
|
|
# The size of the loopback volumes can be customized here (in gigabytes).
|
|
#
|
|
# Boolean option to deploy the loopback disk for Swap
|
|
bootstrap_host_loopback_swap: yes
|
|
# Size of the Swap loopback disk in gigabytes (GB).
|
|
bootstrap_host_loopback_swap_size: 4096
|
|
#
|
|
# Boolean option to deploy the loopback disk for Cinder
|
|
bootstrap_host_loopback_cinder: yes
|
|
# Size of the Cinder loopback disk in gigabytes (GB).
|
|
bootstrap_host_loopback_cinder_size: 1024
|
|
#
|
|
# Boolean option to deploy the loopback disk for Swift
|
|
bootstrap_host_loopback_swift: yes
|
|
# Size of the Swift loopback disk in gigabytes (GB).
|
|
bootstrap_host_loopback_swift_size: 1024
|
|
#
|
|
# Boolean option to deploy the loopback disk for Nova
|
|
bootstrap_host_loopback_nova: yes
|
|
# Size of the Nova loopback disk in gigabytes (GB).
|
|
bootstrap_host_loopback_nova_size: 1024
|
|
#
|
|
# Boolean option to deploy the loopback disk for machines
|
|
bootstrap_host_loopback_machines: yes
|
|
# Size of the machines loopback disk in gigabytes (GB).
|
|
bootstrap_host_loopback_machines_size: 128
|
|
#
|
|
# Boolean option to deploy the loopback disk for btrfs
|
|
bootstrap_host_loopback_btrfs: yes
|
|
# Size of the btrfs loopback disk in gigabytes (GB).
|
|
bootstrap_host_loopback_btrfs_size: 1024
|
|
#
|
|
# Boolean option to deploy the loopback disk for btrfs
|
|
bootstrap_host_loopback_zfs: yes
|
|
# Size of the btrfs loopback disk in gigabytes (GB).
|
|
bootstrap_host_loopback_zfs_size: 1024
|
|
#
|
|
# Boolean option to deploy the OSD loopback disks and cluster UUID for Ceph
|
|
bootstrap_host_ceph: "{{ (bootstrap_host_scenario == 'ceph') | bool }}"
|
|
# Size of the Ceph OSD loopbacks
|
|
bootstrap_host_loopback_ceph_size: 1024
|
|
# Ceph OSDs to create on the AIO host
|
|
ceph_osd_images:
|
|
- 'ceph1'
|
|
- 'ceph2'
|
|
- 'ceph3'
|
|
|
|
## Network configuration
|
|
# The AIO bootstrap configures bridges for use with the AIO deployment.
|
|
# By default, these bridges are configured to be independent of any physical
|
|
# interfaces, and they have their 'bridge_ports' set to 'none'. However,
|
|
# deployers can add a physical interface to 'bridge_ports' to connect the
|
|
# bridge to a real physical interface.
|
|
#
|
|
# A setting of 'none' keeps the bridges as independent from physical
|
|
# interfaces (the default).
|
|
#
|
|
# Setting the value to 'eth1' would mean that the bridge is directly connected
|
|
# to the eth1 device.
|
|
#
|
|
# See https://wiki.debian.org/BridgeNetworkConnections for more details.
|
|
bootstrap_host_bridge_mgmt_ports: none
|
|
bootstrap_host_bridge_vxlan_ports: none
|
|
bootstrap_host_bridge_storage_ports: none
|
|
bootstrap_host_bridge_vlan_ports: "br-vlan-veth"
|
|
# This enables the VXLAN encapsulation the traditional bridges
|
|
# (br-mgmt, br-vxlan, br-storage)
|
|
bootstrap_host_encapsulation_enabled: "{{ not bootstrap_host_aio_config | bool }}"
|
|
#
|
|
# Default network IP ranges
|
|
mgmt_range: "172.29.236"
|
|
vxlan_range: "172.29.240"
|
|
storage_range: "172.29.244"
|
|
vlan_range: "172.29.248"
|
|
netmask: "255.255.252.0"
|
|
#
|
|
# NICs
|
|
bootstrap_host_public_interface: "{{ ansible_default_ipv4.interface }}"
|
|
bootstrap_host_encapsulation_interface: eth1
|
|
#
|
|
#Encapsulations
|
|
bootstrap_host_encapsulation_interfaces:
|
|
encap-mgmt:
|
|
id: 236
|
|
underlay_device: "{{ bootstrap_host_encapsulation_interface }}"
|
|
friendly_name: "Encapsulation of br-mgmt with VXLAN"
|
|
encap-vxlan:
|
|
id: 240
|
|
underlay_device: "{{ bootstrap_host_encapsulation_interface }}"
|
|
friendly_name: "Encapsulation of br-vxlan with VXLAN"
|
|
encap-storage:
|
|
id: 244
|
|
underlay_device: "{{ bootstrap_host_encapsulation_interface }}"
|
|
friendly_name: "Encapsulation of br-storage with VXLAN"
|
|
encap-vlan:
|
|
id: 248
|
|
underlay_device: "{{ bootstrap_host_encapsulation_interface }}"
|
|
friendly_name: "Encapsulation of br-vlan with VXLAN"
|
|
#
|
|
# Bridges
|
|
bridges:
|
|
- name: "br-mgmt"
|
|
ip_addr: "172.29.236.100"
|
|
netmask: "255.255.252.0"
|
|
- name: "br-vxlan"
|
|
ip_addr: "172.29.240.100"
|
|
netmask: "255.255.252.0"
|
|
- name: "br-storage"
|
|
ip_addr: "172.29.244.100"
|
|
netmask: "255.255.252.0"
|
|
- name: "br-vlan"
|
|
ip_addr: "172.29.248.100"
|
|
alias: "172.29.248.1"
|
|
veth_peer: "eth12"
|
|
netmask: "255.255.252.0"
|
|
|
|
bootstrap_host_bridges_interfaces:
|
|
br-mgmt:
|
|
ports: "{{ bootstrap_host_encapsulation_enabled | bool | ternary ('encap-mgmt', bootstrap_host_bridge_mgmt_ports) }}"
|
|
ip_address_range: "{{ mgmt_range }}"
|
|
ip_netmask: "{{ netmask }}"
|
|
br-storage:
|
|
ports: "{{ bootstrap_host_encapsulation_enabled | bool | ternary ('encap-storage', bootstrap_host_bridge_storage_ports) }}"
|
|
ip_address_range: "{{ storage_range }}"
|
|
ip_netmask: "{{ netmask }}"
|
|
br-vxlan:
|
|
ports: "{{ bootstrap_host_encapsulation_enabled | bool | ternary ('encap-vxlan', bootstrap_host_bridge_vxlan_ports) }}"
|
|
ip_address_range: "{{ vxlan_range }}"
|
|
ip_netmask: "{{ netmask }}"
|
|
br-vlan:
|
|
mode: "{{ bridge_vlan_inet_mode | default('static') }}"
|
|
ports: "{{ bootstrap_host_encapsulation_enabled | bool | ternary ('encap-vlan', bootstrap_host_bridge_vlan_ports) }}"
|
|
ip_address_range: "{{ vlan_range }}"
|
|
ip_netmask: "{{ netmask }}"
|
|
state_change_scripts: "{{ bridge_vlan_state_change_scripts }}"
|
|
#
|
|
# Convenience scripts
|
|
bridge_vlan_state_change_scripts: |
|
|
pre-up ip link add br-vlan-veth type veth peer name eth12 || true
|
|
pre-up ip link set br-vlan-veth up
|
|
pre-up ip link set eth12 up
|
|
post-down ip link del br-vlan-veth || true
|
|
bridge_iptables_rules: |
|
|
# To ensure ssh checksum is correct
|
|
up /sbin/iptables -A POSTROUTING -t mangle -p tcp -o {{ bootstrap_host_public_interface }} -j CHECKSUM --checksum-fill
|
|
down /sbin/iptables -D POSTROUTING -t mangle -p tcp -o {{ bootstrap_host_public_interface }} -j CHECKSUM --checksum-fill
|
|
# To provide internet connectivity to instances
|
|
up /sbin/iptables -t nat -A POSTROUTING -o {{ bootstrap_host_public_interface }} -j MASQUERADE
|
|
down /sbin/iptables -t nat -D POSTROUTING -o {{ bootstrap_host_public_interface }} -j MASQUERADE
|
|
|
|
## Extra storage
|
|
# An AIO may optionally be built using a second storage device. If a
|
|
# secondary disk device to use is not specified, then the AIO will be
|
|
# built on any existing disk partitions.
|
|
#
|
|
# WARNING: The data on a secondary storage device specified here will
|
|
# be destroyed and repartitioned.
|
|
#
|
|
# Specify the secondary disk device to use. When the data disk is in use, no NOT
|
|
# set the full path to the device. IE: "/dev/xvde" should be "xvde".
|
|
bootstrap_host_data_disk_device: null
|
|
#
|
|
# Specify the default filesystem type
|
|
bootstrap_host_data_disk_fs_type: ext4
|
|
#
|
|
# Boolean value to force the repartitioning of the secondary device.
|
|
bootstrap_host_data_disk_device_force: no
|
|
#
|
|
# If the storage capacity on this device is greater than or equal to this
|
|
# size (in GB), the bootstrap process will use it.
|
|
bootstrap_host_data_disk_min_size: 50
|
|
#
|
|
# Set the data disk formats table. If the backing store is set to lvm the option
|
|
# the partition will not actually be formatted however for parted, ext2 is used.
|
|
bootstrap_host_data_disk2_formats:
|
|
machinectl: btrfs
|
|
zfs: zfs
|
|
btrfs: btrfs
|
|
xfs: xfs
|
|
dir: ext4
|
|
lvm: ext2
|
|
|
|
bootstrap_host_format_options:
|
|
machinectl: '--metadata single --data single --mixed'
|
|
btrfs: '--metadata single --data single --mixed'
|
|
xfs: '-K -d agcount=64 -l size=128m'
|
|
ext4: '-O dir_index'
|
|
|
|
#
|
|
# Set the data disk mount options.
|
|
bootstrap_host_data_mount_options:
|
|
machinectl: "noatime,nodiratime,compress=lzo,commit=120,{{ (ansible_kernel is version_compare('4.5', '>=')) | ternary('space_cache=v2', 'space_cache') }}"
|
|
zfs: "defaults"
|
|
btrfs: "noatime,nodiratime,compress=lzo,commit=120,{{ (ansible_kernel is version_compare('4.5', '>=')) | ternary('space_cache=v2', 'space_cache') }}"
|
|
xfs: "noatime,nodiratime,nobarrier,logbufs=8,logbsize=256k"
|
|
ext4: "noatime,nobh,barrier=0,data=writeback"
|
|
dir: "defaults"
|
|
lvm: "defaults"
|
|
swap: "%%"
|
|
|
|
bootstrap_host_data_disk2_fs: "{{ bootstrap_host_data_disk2_formats[((container_tech == 'nspawn') | ternary('btrfs', lxc_container_backing_store))] }}"
|
|
bootstrap_host_data_disk2_fs_mount_options: "{{ bootstrap_host_data_mount_options[((container_tech == 'nspawn') | ternary('btrfs', lxc_container_backing_store))] }}"
|
|
bootstrap_host_data_disk2_path: "{{ (lxc_container_backing_store == 'machinectl' or container_tech == 'nspawn') | ternary('/var/lib/machines', '/var/lib/lxc') }}"
|
|
|
|
# Boolean option to build Amphora image and certs
|
|
bootstrap_host_octavia: "{{ (bootstrap_host_scenario in ['octavia']) | bool }}"
|
|
|
|
### Optional Settings ###
|
|
|
|
# Specify the public IP address for the host.
|
|
# By default the address will be set to the ipv4 address of the
|
|
# host's network interface that has the default route on it.
|
|
#bootstrap_host_public_address: 0.0.0.0
|
|
|
|
# Set the container technology in service. Options are nspawn and lxc.
|
|
container_tech: "{{ ('nspawn' in bootstrap_host_scenario) | ternary('nspawn', 'lxc') }}"
|
|
|
|
# Set the lxc backing store for the job
|
|
lxc_container_backing_store: dir
|