Кілька цікавих параметрів конфігурації для коментарів:
forks: за умовчанням 5, це кількість процесів, які Ansible запускатиме паралельно для зв’язку з віддаленими хостами. Чим вище це число, тим більшою кількістю клієнтів Ansible зможе керувати одночасно, і таким чином пришвидшити обробку. Значення, яке ви можете встановити, залежить від обмежень CPU/RAM вашого сервера керування. Зауважте, що значення за замовчуванням, 5, дуже мале, у документації Ansible зазначено, що багато користувачів встановлюють його на 50, навіть 500 або більше.
gathering: ця змінна змінює політику збору фактів. За замовчуванням значення є implicit, що означає, що факти збиратимуться систематично. Перемикання цієї змінної на smart дозволяє отримувати факти збору лише тоді, коли вони ще не зібрані. У поєднанні з кешем фактів (див. нижче) ця опція може значно підвищити продуктивність.
host_key_checking: Будьте обережні з безпекою свого сервера! Однак, якщо ви контролюєте своє середовище, може бути цікаво вимкнути керування ключами віддалених серверів і заощадити час на підключенні. Ви також можете на віддалених серверах вимкнути використання DNS сервера SSH (у /etc/ssh/sshd_config, параметр UseDNS no), цей параметр витрачає час під час з’єднання та найчастіше використовується лише в журналах з’єднань.
ansible_managed: ця змінна, яка за умовчанням містить Ansible managed, зазвичай використовується в шаблонах файлів, які розгортаються на віддалених серверах. Це дозволяє вказати адміністратору, що файл керується автоматично та що будь-які зміни, які вони вносять до нього, потенційно будуть втрачені. Може бути цікаво надати адміністраторам більш повне повідомлення. Будьте обережні, якщо ви зміните цю змінну, це може спричинити перезапуск демонів (через обробники, пов’язані з шаблонами).
ssh_args = -C -o ControlMaster=auto -o ControlPersist=300s -o PreferredAuthentications=publickey: вказує параметри підключення ssh. Вимкнувши всі методи автентифікації, окрім відкритого ключа, можна заощадити багато часу. Ви також можете збільшити ControlPersist, щоб покращити продуктивність (документація припускає, що значення, еквівалентне 30 хвилинам, може бути відповідним). З’єднання з клієнтом залишатиметься відкритим довше та може бути повторно використано при повторному підключенні до того самого сервера, що значно економить час.
control_path_dir: вказує шлях до сокетів підключення. Якщо цей шлях занадто довгий, це може спричинити проблеми. Спробуйте змінити його на щось коротке, наприклад /tmp/.cp.
pipelining: встановлення цього значення на True підвищує продуктивність, зменшуючи кількість підключень SSH, необхідних під час запуску віддалених модулів. Ви повинні спочатку переконатися, що параметр requiretty вимкнено в параметрах sudoers (див. документацію).
Збір фактів – процес, який може зайняти деякий час. Може бути цікаво вимкнути це збирання для playbooks, яким воно не потрібно (через параметр gather_facts) або зберігати ці факти в пам’яті в кеші протягом певного періоду часу (наприклад, 24 години).
Різноманітні паролі та секрети не можна зберігати у вигляді відкритого тексту з вихідним кодом Ansible ні локально на сервері керування, ні в можливому менеджері вихідного коду.
Ansible пропонує використовувати менеджер шифрування: ansible-vault.
Принцип полягає в шифруванні змінної або цілого файлу за допомогою команди ansible-vault.
Ansible зможе розшифрувати цей файл під час виконання, отримавши ключ шифрування з файлу (наприклад) /etc/ansible/ansible.cfg. Останній також може бути сценарієм python або іншим.