Skip to main content

Установка

Было написано, что необходим только python. Где-то предлагают устанавливать через pip, brew, 

На Debian-подобных системах:

apt-get install ansible

Настройка управляемых хостов

На каждом хосте:

  1. Если sudo нет, то 
    apt install sudo

  2. Если создается новый пользователь, то 
    sudo adduser ansibleuser
    sudo usermod -aG sudo ansibleuser
  3. Если существующий пользователь, то добавить в группу sudo: 
    usermod -aG sudo sergey
  4. Разрешить пользователю повышать привилегии без ввода пароля.  Создать файл
    sudo nano /etc/sudoers.d/ansibleuser
  5. И добавить текст 
    ansibleuser ALL=(ALL) NOPASSWD:ALL
  6. Установить пароль на пользователя 
    passwd ansibleuser
  7. Еще создать директорию /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
  1. Создать ключ доступа
  2. Скопировать на каждый управляемый хост, используя логин на хост. Удобнее, если для задач управления на всех хостах сделать одинаковый логин.

В настройке каждого хоста нужно использовать соответствующий логин, для которого настроен ключ доступа. Для использования ключа: 

hosts.ini

[all:vars]
ansible_user=username
ansible_ssh_private_key_file=~/.ssh/id_ed25519