system-config/playbooks/roles/install-ansible/templates/ansible.cfg.j2
Clark Boylan a45afbeac5 Increase bridge's ansible ssh controlpersist timeout to 180s
There is an Ansible bug where if successive tasks are separated in time
by the ssh controlpersist timeout Ansible will race ssh's updates to the
connection causing the second task to fail with an rc of -13 [0].

Statistically we believe that the longer times between tasks are less
likely. This means ssh controlpersist timeout values that are larger
will be less likely to have ansible hit this bug. Increase the value
from a default of 60s to 180s to take advantage of this probability.

[0] https://github.com/ansible/ansible/issues/81777

Change-Id: Ic40730c3e0bd814e6a5c739e4415657594362032
2023-12-05 08:16:23 -08:00

46 lines
1.5 KiB
Django/Jinja

[defaults]
inventory=/home/zuul/src/opendev.org/opendev/system-config/inventory/base/hosts.yaml,/home/zuul/src/opendev.org/opendev/system-config/inventory/service/groups.yaml,/etc/ansible/hosts/emergency.yaml
library=/usr/share/ansible
log_path=/var/log/ansible/ansible.log
inventory_plugins=/etc/ansible/inventory_plugins
roles_path=/etc/ansible/roles
retry_files_enabled=False
retry_files_save_path=
gathering=smart
fact_caching=jsonfile
fact_caching_connection=/var/cache/ansible/facts
# Squash warning about ansible auto-transforming group names with -'s in them
force_valid_group_names=ignore
callback_enabled=profile_tasks, timer
{% if install_ansible_ara_enable %}
callback_plugins=/etc/ansible/callback_plugins:{{ install_ansible_ara_callback_plugins.stdout }}
{% else %}
callback_plugins=/etc/ansible/callback_plugins
{% endif %}
stdout_callback=debug
[inventory]
enable_plugins=yaml,yamlgroup,advanced_host_list,ini
cache=True
cache_plugin=jsonfile
cache_connection=/var/cache/ansible/inventory
any_unparsed_is_failed=True
[ssh_connection]
retries=3
pipelining = True
# Override the default ControlPersist value of 60s due to
# https://github.com/ansible/ansible/issues/81777 and the hunch that
# fewer task pairs have larger deltas between them.
ssh_args = -o ControlMaster=auto -o ControlPersist=180s
[callback_profile_tasks]
task_output_limit = 50
{% if install_ansible_ara_enable %}
[ara]
{% for k, v in install_ansible_ara_config.items() %}
{{ k }}={{ v }}
{% endfor %}
{% endif %}