Настройка ssh-ключей для ansible и rsync

Ответить
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

Настройка ssh-ключей для ansible и rsync

Сообщение ya »

Настройка ssh-ключей для ansible
https://docs.ansible.com/ansible/latest/inventory_guide/connection_details.html

По умолчанию Ansible предполагает, что вы используете ключи SSH для подключения к удаленным машинам. Ключи SSH приветствуются, но при необходимости вы можете использовать аутентификацию по паролю с помощью опции --ask-pass. Если вам нужно предоставить пароль для повышения привилегий (sudo, pbrun и т. д.), используйте --ask-become-pass.

для debian

Код: Выделить всё

sudo apt install agent-transfer sshpass
для alpine

Код: Выделить всё

sudo apk add sshpass py3-scp-pyc

Код: Выделить всё

ln -s /usr/bin/python3 /usr/bin/python
или

Код: Выделить всё

if [ -f /usr/bin/python3 ] && [ ! -f /usr/bin/python ]; then 
  ln --symbolic /usr/bin/python3 /usr/bin/python; 
fi
Предварительно зайти по ssh чтобы обменяться ключами

Код: Выделить всё

#Для debian
sshpass -p 'пароль' rsync --progress -ae "ssh -p 22" root@хост:/etc/letsencrypt /

# Для alpine
sshpass -p 'пароль' rsync --progress -ae "ssh -p 22" root@хост:/etc/letsencrypt /etc
Чтобы настроить агент SSH, чтобы избежать повторного ввода паролей, вы можете сделать:

Код: Выделить всё

$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
В зависимости от ваших настроек вы можете использовать параметр командной строки Ansible --private-key, чтобы вместо этого указать pem-файл. Вы также можете добавить файл закрытого ключа:

Код: Выделить всё

$ ssh-agent bash
$ ssh-add ~/.ssh/keypair.pem
Другой способ добавить файлы секретных ключей без использования ssh-agent — использовать ansible_ssh_private_key_file в файле инвентаризации, как описано здесь: Как создать инвентаризацию.

Запуск на локальном хосте
Вы можете запускать команды на управляющем узле, используя «localhost» или «127.0.0.1» в качестве имени сервера:

Код: Выделить всё

$ ansible localhost -m ping -e 'ansible_python_interpreter="/usr/bin/env python"'
Основной конфик ansible
~/.ansible/ansible.cfg

Код: Выделить всё

[defaults]
host_key_checking = false
inventory = ./hosts.txt
interpreter_python = /usr/bin/python3
command_warnings = false
ansible_ssh_user = логин_по_умолчанию

Отключить проверку хоста так же можно не только в конфиге, но и командой

Код: Выделить всё

export ANSIBLE_HOST_KEY_CHECKING=False
Список хостов ~/.ansible/hosts.txt
Ответить