matthiaslohr.tincvpn
tinc VPN 的 Ansible 角色
这是一个用于设置一个或多个 tinc VPN 网络的 Ansible 角色(https://www.tinc-vpn.org/)。
使用方法
将角色添加到你的 requirements.yml
中:
- src: https://github.com/MatthiasLohr/ansible-role-tincvpn
name: matthiaslohr.tincvpn
你也可以通过使用 version
参数来指定要安装的版本。
请阅读 Ansible Galaxy 文档 获取详细信息。
在库存文件中为你的主机设置 tincvpn_default_ip
:
[all]
node1 tincvpn_default_ip=192.168.255.1
node2 tincvpn_default_ip=192.168.255.2
node3 tincvpn_default_ip=192.168.255.3
简单的剧本示例:
- hosts: all
roles:
- matthiaslohr.tincvpn
有关如何并行配置多个 tinc 网络的示例,请查看 文档。
主机变量
变量名 | 默认值 | 描述 |
---|---|---|
tincvpn_{{ tincvpn_network }}_ip |
none |
此节点的 tinc IP 地址(应该是 tincvpn_subnet 的一部分) |
角色变量
变量名 | 默认值 | 描述 |
---|---|---|
tincvpn_network |
"default" |
tinc 网络的名称(例如 tinc 配置文件夹的名称)。 |
tincvpn_interface |
"tincvpn-{{ tincvpn_network }}" |
tinc 使用的网络接口的名称。 |
tincvpn_subnet |
"192.168.255.0/24" |
tinc 使用的子网。 |
tincvpn_mode |
"switch" |
tinc 的 模式 设置。 |
tincvpn_port |
655 |
tinc 监听端口。 |
tincvpn_extra_hosts |
[] |
可用的额外 tinc 主机(未被剧本覆盖,请阅读 附加主机)。 |
tincvpn_key_bits |
2048 |
RSA 私钥的长度。 |
tincvpn_connect_to |
[] |
默认要连接的节点。你可以给出一个节点名作为字符串,或多个节点作为字符串列表。 |
tincvpn_routes |
[] |
通过 tinc VPN 网络接口添加路由。 |
tincvpn_local_directory |
"{{ inventory_dir }}/tincvpn-hosts/{{ tincvpn_network }}" |
保存主机公钥的本地路径。 |
tincvpn_custom_config |
{} |
带有 tinc VPN 自定义配置参数的字典,例如:PingInterval: "60" |
tincvpn_custom_up_scripts |
[] |
为 tinc-up 脚本模板指定的自定义命令。 |
tincvpn_custom_down_scripts |
[] |
为 tinc-down 脚本模板指定的自定义命令。 |
配置调整
附加主机
如果你想连接到一个不在 Ansible 库存中的节点(例如,中央路由器),可以通过剧本变量配置附加主机:
tincvpn_extra_hosts:
- name: externalnode1
address: externalnode1.example.com
public_key: |
-----BEGIN RSA PUBLIC KEY-----
...
-----END RSA PUBLIC KEY-----
- name: externalnode2
address: externalnode2.example.com
public_key: |
-----BEGIN RSA PUBLIC KEY-----
...
-----END RSA PUBLIC KEY-----
自定义路由
tincvpn_routes:
- network: "192.168.254.0/24"
gateway: "192.168.255.1"