Установка
Было написано, что необходим только python. Где-то предлагают устанавливать через pip, brew,
На Debian-подобных системах:
apt-get install ansible
Настройка управляемых хостов
На каждом хосте:
- Если sudo нет, то
apt install sudo - Если создается новый пользователь, то
sudo adduser ansibleuser sudo usermod -aG sudo ansibleuser - Если существующий пользователь, то добавить в группу sudo:
usermod -aG sudo sergey - Разрешить пользователю повышать привилегии без ввода пароля. Создать файл
sudo nano /etc/sudoers.d/ansibleuser - И добавить текст
ansibleuser ALL=(ALL) NOPASSWD:ALL - Установить пароль на пользователя
passwd ansibleuser - Еще создать директорию /home/ansibleuser
Теперь можно использовать в скриптах become: true
Настройка сервера
ssh-keygen
# или так
ssh-keygen -t ed25519 -C "ansible_user@control-node"
# -t это тип ключа. Можно использовать rsa с -b 4096
# На вопрос о пути сохранения нажми Enter (сохранится в ~/.ssh/id_ed25519).
# Парольную фразу (passphrase) пустая.
#
# Теперь копирование на хосты.
# Нужно скопировать ~/.ssh/id_ed25519.pub
ssh-copy-id username@remote_host
- Создать ключ доступа
- Скопировать на каждый управляемый хост, используя логин на хост. Удобнее, если для задач управления на всех хостах сделать одинаковый логин.
В настройке каждого хоста нужно использовать соответствующий логин, для которого настроен ключ доступа. Для использования ключа:
hosts.ini
[all:vars]
ansible_user=username
ansible_ssh_private_key_file=~/.ssh/id_ed25519