Настройка ssh-ключей для ansible и rsync
Добавлено: 21 май 2024, 10:07
Настройка ssh-ключей для ansible
https://docs.ansible.com/ansible/latest/inventory_guide/connection_details.html
По умолчанию Ansible предполагает, что вы используете ключи SSH для подключения к удаленным машинам. Ключи SSH приветствуются, но при необходимости вы можете использовать аутентификацию по паролю с помощью опции --ask-pass. Если вам нужно предоставить пароль для повышения привилегий (sudo, pbrun и т. д.), используйте --ask-become-pass.
для debian
для alpine
или
Предварительно зайти по ssh чтобы обменяться ключами
Чтобы настроить агент SSH, чтобы избежать повторного ввода паролей, вы можете сделать:
В зависимости от ваших настроек вы можете использовать параметр командной строки Ansible --private-key, чтобы вместо этого указать pem-файл. Вы также можете добавить файл закрытого ключа:
Другой способ добавить файлы секретных ключей без использования ssh-agent — использовать ansible_ssh_private_key_file в файле инвентаризации, как описано здесь: Как создать инвентаризацию.
Запуск на локальном хосте
Вы можете запускать команды на управляющем узле, используя «localhost» или «127.0.0.1» в качестве имени сервера:
Основной конфик ansible
~/.ansible/ansible.cfg
Отключить проверку хоста так же можно не только в конфиге, но и командой
Список хостов ~/.ansible/hosts.txt
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
Код: Выделить всё
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
Код: Выделить всё
#Для 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-agent bash
$ ssh-add ~/.ssh/id_rsa
Код: Выделить всё
$ ssh-agent bash
$ ssh-add ~/.ssh/keypair.pem
Запуск на локальном хосте
Вы можете запускать команды на управляющем узле, используя «localhost» или «127.0.0.1» в качестве имени сервера:
Код: Выделить всё
$ ansible localhost -m ping -e 'ansible_python_interpreter="/usr/bin/env python"'
~/.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