autossh
AutoSSH
Роль Ansible, которая устанавливает и настраивает несколько подключений autossh, позволяя перенаправлять порты с локального сервера на удаленные серверы через SSH.
Требования
Мы предполагаем, что SSH-пользователь существует и имеет правильные права для доступа к удаленному серверу. Также должен быть доступен соответствующий SSH-ключ на локальном сервере (/root/.ssh/id_rsa
или определённый в конфигурации подключения).
Переменные роли
Доступные переменные перечислены ниже, вместе с значениями по умолчанию (см. defaults/main.yml
):
autossh_connections:
- id: "example" # Уникальный идентификатор подключения (символы: "a-z,0-9,-").
user: "" # Имя пользователя для подключения к удаленному серверу.
server: "" # IP / имя хоста удаленного сервера.
server_key_type: "" # Тип ключа удаленного сервера, по умолчанию autossh_default_server_key_type. (Необязательно)
local_port: "" # Локальный порт для перенаправления.
dest_server: "" # IP / имя хоста для использования на удаленном сервере, по умолчанию autossh_default_dest_server. (Необязательно)
dest_port: "" # Порт на удаленном сервере для подключения.
identity_file: "" # Путь к приватному SSH-ключу, по умолчанию autossh_default_ssh_key_path. (Необязательно)
Добавьте набор свойств SSH соединения для каждого подключения. Здесь можно перечислить несколько подключений.
autossh_path: "/usr/bin/autossh"
Путь к autossh.
autossh_ssh_dir: "/root/.ssh"
Каталог для хранения конфигурации SSH.
autossh_systemd_dir: "/etc/systemd/system/"
Путь к системному каталогу systemd.
autossh_known_hosts_file: "{{ autossh_ssh_dir }}/known_hosts"
Путь к файлу известных хостов.
autossh_default_server_key_type: "ecdsa"
Тип ключа по умолчанию для удаленного сервера. Переопределите это значение для одного
подключения, используя опцию server_key_type
в списке autossh_connections
.
autossh_default_dest_server: "127.0.0.1"
IP / имя хоста по умолчанию для использования на удаленном сервере, это, скорее всего,
будет localhost / 127.0.0.1. Переопределите это значение для одного подключения
с помощью опции dest_server
в списке autossh_connections
.
autossh_default_identity_file: "/root/.ssh/id_rsa"
Путь к файлу, из которого считывается идентификация (приватный ключ) для
аутентификации по публичному ключу. По умолчанию это /root/.ssh/id_rsa
для
версии протокола 2. Переопределите это значение для одного подключения, используя
опцию identity_file
в списке autossh_connections
.
Зависимости
Нет.
Пример Playbook
- hosts: servers
vars_files:
- vars/main.yml
roles:
- { role: memiah.autossh }
Внутри vars/main.yml
:
autossh_connections:
- id: "example"
user: "username"
server: "remote.server"
local_port: "33061"
dest_port: "3306"
Перенаправить локальный порт 33061
на порт 3306
на remote.server
, подключаясь
через SSH как [email protected]
.
Это создаст новый сервис с именем autossh-example.service
(autossh-{id}.service), который можно управлять с помощью systemctl:
systemctl status autossh-example.service
systemctl restart autossh-example.service
...
Лицензия
MIT / BSD
Информация об авторе
Эта роль была создана в 2016 году Memiah Limited.
ansible-galaxy install memiah/ansible-role-autossh