{"id":96,"sha1":"c124d1a4788efa5f8b2c8f51bc39fc26856db23b","playbook":{"id":2,"items":{"plays":18,"tasks":603,"results":2357,"hosts":15,"files":157,"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/inventory/dynamic_inventory.py","/home/zuul/src/opendev.org/openstack/openstack-ansible/inventory/inventory.ini","/etc/openstack_deploy/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":4,"module_path":null,"syntax":false,"listtasks":false,"listtags":false,"step":false,"start_at_task":null,"args":["setup-hosts.yml"]},"labels":[{"id":1,"name":"check:False"},{"id":2,"name":"tags:all"}],"started":"2025-12-14T10:04:43.190296Z","ended":"2025-12-14T10:14:53.851603Z","duration":"00:10:10.661307","name":null,"ansible_version":"2.18.6","client_version":"1.7.4","python_version":"3.13.5","server_version":"1.7.4","status":"completed","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible/playbooks/setup-hosts.yml","controller":"aio1.openstack.local","user":"root"},"content":"---\n# Copyright 2015, Jean-Philippe Evrard <jean-philippe@evrard.me>\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\nkeepalived_ping_count: 1\nkeepalived_ping_interval: 10\nkeepalived_ubuntu_src: \"native\"\nkeepalived_ping_address: \"{{ ansible_facts['default_ipv4']['gateway'] | default('127.0.0.1') }}\"\nkeepalived_external_ping_address: \"{{ keepalived_ping_address }}\"\nkeepalived_internal_ping_address: \"{{ keepalived_ping_address }}\"\n\nkeepalived_global_defs:\n  - \"enable_script_security\"\n  - script_user root\n  - vrrp_version 3\n\nkeepalived_scripts:\n  haproxy_check_script:\n    check_script: \"/etc/keepalived/haproxy_check.sh\"\n    ##if a src_check_script is defined, it will be uploaded from src_check_script\n    ##on the deploy host to the check_script location. If the check_script needs\n    ##parameters, you can define the location under dest_check_script.\n    src_check_script: \"{{ openstack_clone_root }}/scripts/keepalived_haproxy_check.sh\"\n  pingable_check_script_external:\n    check_script: \"/etc/keepalived/pingable_check.sh {{ keepalived_ping_count }} {{ keepalived_external_ping_address }}\"\n    dest_check_script: \"/etc/keepalived/pingable_check.sh\"\n    src_check_script: \"{{ openstack_clone_root }}/scripts/keepalived_pingable_check.sh\"\n    interval: \"{{ keepalived_ping_interval }}\"\n    instance: external\n    weight: -101\n    fall: 2\n    rise: 4\n  pingable_check_script_internal:\n    check_script: \"/etc/keepalived/pingable_check.sh {{ keepalived_ping_count }} {{ keepalived_internal_ping_address }}\"\n    dest_check_script: \"/etc/keepalived/pingable_check.sh\"\n    src_check_script: \"{{ openstack_clone_root }}/scripts/keepalived_pingable_check.sh\"\n    interval: \"{{ keepalived_ping_interval }}\"\n    instance: internal\n    weight: -101\n    fall: 2\n    rise: 4\n\n# If you have more than 5 keepalived nodes, you should build your own script\n# (handling master and backups servers), and replace in keepalived_instances:\n#    priority: \"{{ (groups['haproxy']|length-groups['haproxy'].index(inventory_hostname)*50 }}\"\n# by\n#    priority: \"{{ (groups['haproxy'].index(inventory_hostname) == 0) | ternary('100','50') }}\"\n_keepalived_default_instances:\n  external:\n    interface: \"{{ haproxy_keepalived_external_interface | default(management_bridge) }}\"\n    state: \"{{ (groups['haproxy'].index(inventory_hostname) == 0) | ternary('MASTER', 'BACKUP') }}\"\n    virtual_router_id: \"{{ haproxy_keepalived_external_virtual_router_id | default ('10') }}\"\n    priority: \"{{ (groups['haproxy']|length-groups['haproxy'].index(inventory_hostname))*50 }}\"\n    vips:\n      - \"{{ haproxy_keepalived_external_vip_cidr | default('169.254.1.1/24')  }} dev {{ haproxy_keepalived_external_interface | default(management_bridge) }}\"\n    track_scripts: \"{{ keepalived_scripts | dict2items | json_query('[*].{name: key, instance: value.instance}') | rejectattr('instance', 'equalto', 'internal') | map(attribute='name') | list }}\"\n  internal:\n    interface: \"{{ haproxy_keepalived_internal_interface | default(management_bridge) }}\"\n    state: \"{{ (groups['haproxy'].index(inventory_hostname) == 0) | ternary('MASTER', 'BACKUP') }}\"\n    virtual_router_id: \"{{ haproxy_keepalived_internal_virtual_router_id | default ('11') }}\"\n    priority: \"{{ (groups['haproxy']|length-groups['haproxy'].index(inventory_hostname))*50 }}\"\n    vips:\n      - \"{{ haproxy_keepalived_internal_vip_cidr | default('169.254.2.1/24') }} dev {{ haproxy_keepalived_internal_interface | default(management_bridge) }}\"\n    track_scripts: \"{{ keepalived_scripts | dict2items | json_query('[*].{name: key, instance: value.instance}') | rejectattr('instance', 'equalto', 'external') | map(attribute='name') | list }}\"\n\nkeepalived_instances: \"{{ _keepalived_default_instances | combine(keepalived_instances_overrides | default({}), recursive=True) }}\"\n","created":"2025-12-14T10:05:11.813355Z","updated":"2025-12-14T10:05:11.813371Z","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible/inventory/group_vars/haproxy/keepalived.yml"}