Ansible Master Setup
Настройка ansible.cfg [глобальный]
Отключаем проверку ключей хостов и задаём базовые параметры:
sudo tee /etc/ansible/ansible.cfg > /dev/null <<EOF
[defaults]
host_key_checking = False
inventory = /etc/ansible/hosts
forks = 10
timeout = 30
EOF
Вместо глобального файла можно использовать локальный ./ansible.cfg в каталоге проекта
или переменную окружения ANSIBLE_HOST_KEY_CHECKING=False.
Настройка inventory [глобальный]
Linux-серверы (SSH, ключи)
sudo tee -a /etc/ansible/hosts > /dev/null <<EOF
[unix_servers]
Ubuntu1 ansible_host=192.168.1.10 ansible_user=ubuntu ansible_ssh_private_key_file=/home/ec2-user/.ssh/aws.note_private.pem
CentOS1 ansible_host=192.168.1.11 ansible_user=centos ansible_ssh_private_key_file=/home/ec2-user/.ssh/aws.note_private.pem
EOF
Windows-серверы (WinRM, HTTPS)
sudo tee -a /etc/ansible/hosts > /dev/null <<EOF
[win_servers]
WinSrv2012R2 ansible_host=192.168.1.20
WinSrv2016 ansible_host=192.168.1.21
[win_servers:vars]
ansible_user = Administrator
ansible_password = YourStrongPassword
ansible_port = 5986
ansible_connection = winrm
ansible_winrm_server_cert_validation = ignore
ansible_winrm_transport = ntlm # или kerberos для домена
EOF
Используйте групповые переменные в отдельном файле group_vars/win_servers.yml
с шифрованием (ansible-vault), а не храните пароли открыто в hosts.
Установка пакета pywinrm
pip3 install "pywinrm>=0.3.0"
Настройка Ansible Clients
Требования к Linux клиенту:
- Учётная запись с правами на выполнение команд (желательно с
sudoбез пароля). - Открытый SSH-порт 22.
- SSH-ключ добавлен в
~/.ssh/authorized_keys.
Требования к Windows клиенту:
- Учётная запись администратора.
- PowerShell 3.0 или выше.
- WinRM-порт 5986 (HTTPS) открыт в брандмауэре.
Настройка WinRM на Windows-клиенте:
# Автоматический способ (рекомендуется для тестов)
Invoke-Expression (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1')
Проверка подключения
Linux:
ansible unix_servers -m ping
Windows:
ansible win_servers -m win_ping
Ссылки на актуальную документацию (2026)
| Раздел | Ссылка |
|---|---|
| Конфигурация Ansible | https://docs.ansible.com/ansible/latest/installation_guide/intro_configuration.html |
| Инвентарь | https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html |
| Настройка Windows хостов | https://docs.ansible.com/ansible/latest/os_guide/windows_setup.html |
| WinRM (подключение) | https://docs.ansible.com/ansible/latest/os_guide/windows_winrm.html |
| Скрипт ConfigureRemotingForAnsible.ps1 | https://github.com/ansible/ansible/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1 |