{"id":3,"sha1":"34f0e70193b56c9f3f1ce17d80786ba0607bf30f","playbook":{"id":1,"items":{"plays":1,"tasks":154,"results":154,"hosts":1,"files":22,"records":0},"arguments":{"version":null,"verbosity":0,"private_key_file":null,"remote_user":null,"connection":"openstack.osa.ssh","timeout":null,"ssh_common_args":null,"sftp_extra_args":null,"scp_extra_args":null,"ssh_extra_args":null,"ask_pass":false,"connection_password_file":null,"force_handlers":true,"flush_cache":false,"become":false,"become_method":"sudo","become_user":null,"become_ask_pass":false,"become_password_file":null,"tags":["all"],"skip_tags":[],"check":false,"diff":false,"inventory":["/home/zuul/src/opendev.org/openstack/openstack-ansible/tests/test-inventory.ini"],"listhosts":false,"subset":null,"extra_vars":"Not saved by ARA as configured by 'ignored_arguments'","vault_ids":[],"ask_vault_pass":false,"vault_password_files":[],"forks":10,"module_path":null,"syntax":false,"listtasks":false,"listtags":false,"step":false,"start_at_task":null,"args":["bootstrap-aio.yml"]},"labels":[{"id":1,"name":"check:False"},{"id":2,"name":"tags:all"}],"started":"2025-12-08T13:25:10.417083Z","ended":"2025-12-08T13:27:15.725717Z","duration":"00:02:05.308634","name":null,"ansible_version":"2.18.6","client_version":"1.7.4","python_version":"3.12.3","server_version":"1.7.4","status":"completed","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible/tests/bootstrap-aio.yml","controller":"npdb25d4c136674","user":"root"},"content":"---\n# Copyright 2015, Rackspace US, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n## AIO user-space configuration options\n# Scenario used to bootstrap the host\nbootstrap_host_scenario: \"{{ lookup('env', 'SCENARIO') | default('aio_lxc', true) }}\"\n#\n# Action used (deploy, upgrade, ...)\nbootstrap_host_action: \"{{ lookup('env', 'ACTION') | default('deploy', true) }}\"\n#\n# Boolean option to implement OpenStack-Ansible configuration for an AIO\n# Switch to false for a multi-node configuration\nbootstrap_host_aio_config: true\n#\n# Path to the location of the bootstrapping configuration files\nbootstrap_host_aio_config_path: \"{{ playbook_dir }}/../etc/openstack_deploy\"\n#\n# Path to the location of the scripts the bootstrap scripts use\nbootstrap_host_aio_script_path: \"{{ playbook_dir }}/../scripts\"\n#\n# The user space configuration file names to use\nbootstrap_host_user_variables_filename: \"user_variables.yml\"\nbootstrap_host_user_secrets_filename: \"user_secrets.yml\"\n#\n# Paths to configuration file targets that should be created by the bootstrap\nbootstrap_host_target_config_paths:\n  - /etc/openstack_deploy\n  - /etc/openstack_deploy/conf.d\n  - /etc/openstack_deploy/env.d\n\n# The user variables template to use\nbootstrap_user_variables_template: user_variables.aio.yml.j2\n\n## Loopback volumes\n# Sparse loopback disks are used for the containers if there is no secondary\n# disk available to partition for btrfs. They are also used for Ceph, Cinder,\n# Swift and Nova (instance storage).\n# The size of the loopback volumes can be customized here (in gigabytes).\n#\n# Boolean option to deploy the loopback disk for Swap\nbootstrap_host_loopback_swap: false\n# Size of the Swap loopback disk in gigabytes (GB).\nbootstrap_host_loopback_swap_size: 4096\n#\n# Boolean option to deploy the loopback disk for Cinder\nbootstrap_host_loopback_cinder: \"{{ 'cinder' in bootstrap_host_scenarios_expanded }}\"\n# Size of the Cinder loopback disk in gigabytes (GB).\nbootstrap_host_loopback_cinder_size: 1024\n#\n# Boolean option to deploy the loopback disk for Swift\nbootstrap_host_loopback_swift: \"{{ 'swift' in bootstrap_host_scenarios_expanded }}\"\n# Size of the Swift loopback disk in gigabytes (GB).\nbootstrap_host_loopback_swift_size: 1024\n#\n# Boolean option to deploy the loopback disk for Nova\nbootstrap_host_loopback_nova: \"{{ 'nova' in bootstrap_host_scenarios_expanded }}\"\n# Size of the Nova loopback disk in gigabytes (GB).\nbootstrap_host_loopback_nova_size: 1024\n#\n# Boolean option to deploy the loopback disk for Manila\nbootstrap_host_loopback_manila: \"{{ 'manila' in bootstrap_host_scenarios_expanded }}\"\n# Size of the Manila loopback disk in gigabytes (GB).\nbootstrap_host_loopback_manila_size: 1024\n#\n# Boolean option to deploy the loopback disk for btrfs\nbootstrap_host_loopback_btrfs: true\n# Size of the btrfs loopback disk in gigabytes (GB).\nbootstrap_host_loopback_btrfs_size: 1024\n#\n# Boolean option to deploy the loopback disk for zfs\nbootstrap_host_loopback_zfs: true\n# Size of the zfs loopback disk in gigabytes (GB).\nbootstrap_host_loopback_zfs_size: 1024\n#\n# Boolean option to deploy the loopback disk for nfs\nbootstrap_host_nfs: \"{{ 'nfs' in bootstrap_host_scenarios_expanded }}\"\n# Size of the nfs loopback disk in gigabytes (GB).\nbootstrap_host_loopback_nfs_size: 1024\n#\n# Boolean option to deploy the OSD loopback disks and cluster UUID for Ceph\nbootstrap_host_ceph: \"{{ 'ceph' in bootstrap_host_scenarios_expanded }}\"\n# Size of the Ceph OSD loopbacks\nbootstrap_host_loopback_ceph_size: 1024\n# Ceph OSDs to create on the AIO host\nceph_osd_images:\n  - 'ceph1'\n  - 'ceph2'\n  - 'ceph3'\n\n## Network configuration\n# Default network IP ranges\nmgmt_network: \"172.29.236.0/22\"\nvxlan_network: \"172.29.240.0/22\"\nstorage_network: \"172.29.244.0/22\"\nvlan_network: \"172.29.248.0/22\"\nbmaas_network: \"172.29.228.0/22\"\ndbaas_network: \"172.29.252.0/22\"\nlbaas_network: \"172.29.232.0/22\"\nsquid_network: \"172.29.200.200/32\"\n\n#\n# NICs\nbootstrap_host_public_interface: \"{{ ansible_facts['default_ipv4']['interface'] }}\"\n# Specify the public IP address for the host.\n# By default the address will be set to the ipv4 address of the\n# host's network interface that has the default route on it.\nbootstrap_host_public_address: \"{{ ansible_facts[bootstrap_host_public_interface | replace('-', '_')]['ipv4']['address'] }}\"\nbootstrap_host_management_address: \"{{ mgmt_network | ansible.utils.nthhost('100') }}\"\nbootstrap_host_internal_address: \"{{ mgmt_network | ansible.utils.nthhost('101') }}\"\n#\n# Utility paths\nbootstrap_host_network_utils:\n  apt:\n    iptables: /sbin/iptables\n    ethtool: /sbin/ethtool\n    ip: /sbin/ip\n  dnf:\n    iptables: /usr/sbin/iptables\n    ethtool: /usr/sbin/ethtool\n    ip: /usr/sbin/ip\n#\nbootstrap_host_iptables_path: \"{{ bootstrap_host_network_utils[ansible_facts['pkg_mgr']]['iptables'] }}\"\nbootstrap_host_ethtool_path: \"{{ bootstrap_host_network_utils[ansible_facts['pkg_mgr']]['ethtool'] }}\"\nbootstrap_host_ip_path: \"{{ bootstrap_host_network_utils[ansible_facts['pkg_mgr']]['ip'] }}\"\n\n## Extra storage\n# An AIO may optionally be built using a second storage device. If a\n# secondary disk device to use is not specified, then the AIO will be\n# built on any existing disk partitions.\n#\n# WARNING: The data on a secondary storage device specified here will\n# be destroyed and repartitioned.\n#\n\n# Enable detection for the secondary data disk\n# This does not run by default, but gate-check-commit and the OSA gate jobs\n# enable this because it is needed for RAX nodepool instances\nbootstrap_host_data_disk_device_detect: \"{{ lookup('env', 'BOOTSTRAP_HOST_DETECT_DATA_DISK') |\n                                            default(False, True) }}\"\n\n# Specify the secondary disk device to use. When the data disk is in use, no NOT\n# set the full path to the device. IE: \"/dev/xvde\" should be \"xvde\".\nbootstrap_host_data_disk_device: null\n\n# Specify the default filesystem type\nbootstrap_host_data_disk_fs_type: ext4\n#\n# Boolean value to force the repartitioning of the secondary device.\nbootstrap_host_data_disk_device_force: false\n#\n# If the storage capacity on this device is greater than or equal to this\n# size (in GB), the bootstrap process will use it.\n# If metal, we don't need that much storage space.\nbootstrap_host_data_disk_min_size: \"{{ (bootstrap_host_scenario is search('metal')) | ternary(10, 50) }}\"\n#\n# Set the data disk formats table. If the backing store is set to lvm the option\n# the partition will not actually be formatted however for parted, ext2 is used.\nbootstrap_host_data_disk2_formats:\n  zfs: zfs\n  btrfs: btrfs\n  xfs: xfs\n  dir: ext4\n  lvm: ext2\n  overlayfs: ext4\n\nbootstrap_host_format_options:\n  btrfs: '--metadata single --data single --mixed'\n  xfs: '-K -d agcount=64 -l size=128m'\n  ext4: '-O dir_index'\n\n#\n# Set the data disk mount options.\nbootstrap_host_data_mount_options:\n  zfs: \"defaults\"\n  btrfs: \"noatime,nodiratime,compress=lzo,commit=120,space_cache=v2\"\n  xfs: \"noatime,nodiratime,logbufs=8,logbsize=256k\"\n  ext4: \"noatime,nobh,barrier=0,data=writeback\"\n  dir: \"defaults\"\n  lvm: \"defaults\"\n  swap: \"%%\"\n\nbootstrap_host_data_disk2_fs: \"{{ bootstrap_host_data_disk2_formats[_lxc_container_backing_store] }}\"\nbootstrap_host_data_disk2_fs_mount_options: \"{{ bootstrap_host_data_mount_options[bootstrap_host_data_disk2_fs] }}\"\nbootstrap_host_data_disk2_path: '/var/lib/lxc'\n\n### Optional Settings ###\n\n# Set the install method for the deployment. Options are ['source', 'distro']\nbootstrap_host_install_method: \"{{ lookup('env', 'INSTALL_METHOD') | default('source', true) }}\"\n\n# step-ca\nstep_ca_user: step\nstep_ca_group: step\nstep_ca_config_dir: \"/etc/step-ca\"\nstep_ca_binary: /usr/bin/step-ca\n\n# CA Info\nstep_ca_name: \"My Certificate Authority\"  # Name used in a self generated intermediate\nstep_ca_dns_name:\n  - '127.0.0.1'\nstep_ca_listen_address: \":8889\"  # server bind address/port\n\n## TLS Cert Info\nstep_ca_cert_expiry: \"48\"  # default number of hours till expiry\nstep_ca_cert_org_unit: \"My Team\"  # Organisational Unit Name in Cert\nstep_ca_cert_organisation: \"My Organisation\"  # Organisation Name in Cert\nstep_ca_cert_country: \"My Country\"  # Country Name in Cert\n\nstep_ca_intermediate_password: \"changeme\"\n","created":"2025-12-08T13:25:10.639832Z","updated":"2025-12-08T13:25:10.639872Z","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible/tests/roles/bootstrap-host/defaults/main.yml"}