Для установки Ansible (ubuntu) есть несколько способов:
1) С помощью "apt"
sudo apt update
sudo apt upgrade -y
sudo apt install ansible
Но вероятнее всего установится устаревшая версия, 2.10.хх ,
("ansible --version")
которая не поддерживает современные playbook
для поднятия версии до актуальной:
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible
если версия не поднимется или ansible вообще пропадет, то можно воспользоваться:
apt --fix-broken install
и уточнить версию:
"ansible --version"
https://www.cherryservers.com/blog/install-ansible-ubuntu
2) С помощью pip
Установим pip:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --user
проверим наличие: python3 -m pip -V
Установим ansible:
python3 -m pip install --user ansible
( при необходимости, минимальная версия:
python3 -m pip install --user ansible-core
или конкретная версия:
python3 -m pip install --user ansible-core==2.12.3 )
Обновление через pip (не проверял):
python3 -m pip install --upgrade --user ansible
этот и другие способы: https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html
Для того чтобы ansible мог подключаться к хостам (на которых он будем изменять что-то)
необходимо настроить вход по ключу (без пароля) есть несколько способов:
1) создаем (linux) пару ключей (pub and priv, pass-фразу не вводим, просто "enter")
ssh-keygen -f ~/.ssh/id_rsa (можно отдельное название использовать для ключа вместо id_rsa )
ssh-copy-id -i ~/.ssh/id_rsa.pub user-ansbl@192.168.58.58
#(192.168.58.58 машина которой будем управлять, в ней , в файле $HOME/.ssh/authorized_keys, должно появиться что-то типа: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICc/6Mhk0/y....)
в inventory file можно добавить:
all:
vars:
ansible_user: ta
hosts:
ta-lxlt:
ansible_host: 192.168.58.58
ansible_ssh_private_key_file: ~/.ssh/id_rsa
или запусить ssh-agent:
ssh-agent $SHELL
ssh-add ~/.ssh/id_rsa
после чего проверить:
ssh user-ansbl@192.168.58.58
должно открыться ssh сессия на удаленную машину без ввода пароля.
https://dev.to/rimelek/ansible-playbook-and-ssh-keys-33bo
проверяем:
ansible all -m ping
можно приватный ключ указать и через параметр:
ansible -playbook ХХХХХХ.yaml --private-key ~/.ssh/id_rsa
2) использовать сгенерированные в putty ключи:
в putty key generator создаем ключи типа: ssh-ed25519, сохраняем оба ключа (приватный).
(в окошке же сразу видно и публичный ключ, при необходимости можно его скоприровать)
если разворачиваем виртуалку в клауде, то при создании ВМ есть возможность сразу вставить (если реализован cloud-init у провайдера) публичный ключ из окошка "putty key generator" (если ранее загружен/сгенерирован приватный ключ)
Затем выбираем пункт "Conversion" и Export OpenSSH key, сохраняем в файле (без пароля)
(в файле будет что-то типа -----BEGIN OPENSSH PRIVATE KEY-----)
именно из этого файла необходимо будет скопировать содержимое и вставить ~/.ssh/id_rsa на машинке с ansible.
выставить права:
chmod 600 /root/.ssh/id_rsa
Если же подключаться с рабочей машинки с Putty, то надо прикрепить приватный ключ .ppk к ssh-сессии.