# Установка

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

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

```bash
apt-get install ansible
```

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

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

1. Если sudo нет, то ```bash
    apt install sudo
    ```
2. Если создается новый пользователь, то ```bash
    sudo adduser ansibleuser
    sudo usermod -aG sudo ansibleuser
    ```
3. Если существующий пользователь, то добавить в группу sudo: ```
    usermod -aG sudo sergey
    ```
4. Разрешить пользователю повышать привилегии без ввода пароля. Создать файл ```bash
    sudo nano /etc/sudoers.d/ansibleuser
    ```
5. И добавить текст ```
    ansibleuser ALL=(ALL) NOPASSWD:ALL
    ```
6. Установить пароль на пользователя ```
    passwd ansibleuser
    ```
7. Еще создать директорию /home/ansibleuser

Теперь можно использовать в скриптах become: true

**Настройка сервера**

```bash
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

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