yurihs.autossh
Ansible角色:autossh
- 安装autossh和systemd服务,以保持SSH隧道打开。
- 扫描主机密钥,以避免主机密钥检查提示。
此项目是从memiah/ansible-role-autossh分叉而来,修改目标系统为Debian,而不是RedHat。
我们假设SSH用户已存在,并且有正确的权限访问远程服务器。相应的SSH密钥也必须在本地服务器上可用。
角色变量(默认值)
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"
远程服务器的默认密钥类型。通过在autossh_connections
列表中使用server_key_type
选项覆盖此值,以便进行单个连接。
autossh_default_dest_server: "127.0.0.1"
在远程服务器上使用的默认IP / 主机名,这通常是localhost / 127.0.0.1。通过在autossh_connections
列表中使用dest_server
选项覆盖此值,以便进行单个连接。
autossh_default_identity_file: "/root/.ssh/id_rsa"
读取用于公钥认证的身份(私钥)的文件路径。对于协议版本2,默认值为/root/.ssh/id_rsa
。通过在autossh_connections
列表中使用identity_file
选项覆盖此值,以便进行单个连接。
示例
将本地端口33061
转发到db.example.com
上的端口3306
,通过SSH以[email protected]
身份连接。
- hosts: backup
vars:
autossh_connections:
- id: mysql
user: backup
server: db.example.com
local_port: '33061'
dest_port: '3306'
roles:
- role: yurihs.autossh
become: true
这将创建一个名为autossh-backup.service
的新服务,可以通过systemctl进行管理:
systemctl status autossh-backup.service
systemctl restart autossh-backup.service
...
作者
该角色由Memiah Limited于2016年创建。
由yurihs在2019年进行了Debian适配。