Skip to main content

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