ansible/ansible.cfg

49 lines
1.7 KiB
INI

[defaults]
# I have a large number of machines, which warrants a large forks setting
# here.
forks = 16
# We set gathering to smart here as I'm often executing the site-wide playbook,
# which means a ton of redundant time gathering facts that haven't changed
# otherwise.
gathering = smart
# host_key_checking is disabled because nearly 90% of my Ansible plays are in
# ephemeral environments and I'm constantly spinning machines up and down.
# In theory this is an attack vector that I need to work on a solution for.
host_key_checking = false
# Explicitly set the python3 interpreter for legacy hosts.
interpreter_python = python3
# Default inventory is labeled "production", but this entire environment is a
# homelab so whatever.
inventory = inventories/production
# I hate fun
nocows = true
# Pipelining is a fantastic speedup
pipelining = true
private_key_file = ~/.ssh/desu
# Set explicitly here, but this should be the default.
remote_tmp = $HOME/.ansible/tmp
remote_user = ansible
# This extra roles directory is used for Galaxy roles.
roles_path = .roles:roles
system_warnings = true
# We set this to avoid circumstances in which we time out waiting for a privesc
# prompt. Zerotier, as a management network, can be a bit slow at times.
timeout = 60
[diff]
always = true
[privilege_escalation]
# We force an always-become condition because of the myriad of things we need
# to do as root.
become = true
[ssh_connection]
# The number of retries here is insane because of the volatility of my home
# network, where a number of my machines live.
retries = 15
# These extra args are used for bastioning, where the ephemeral Ansible
# controller remotes into a bastion machine to access the rest of the
# environment.
ssh_extra_args = -o ForwardAgent=yes -o StrictHostKeyChecking=no