Ansible通过VPN连接到跳机?

时间:2016-06-13 23:06:17

标签: ansible

我想知道是否有可能在执行其余的剧本之前告诉Ansible建立VPN连接。我已经四处搜索了,但在这方面没有看到太多。

3 个答案:

答案 0 :(得分:3)

您可以组合local playbook来设置VPN和一个剧本,以便针对服务器运行您的任务。

根据作业的原因,您可以使用ansible或shell脚本来连接VPN。也许之后应该有另一个剧本断开连接。

结果你将有三个剧本和一个通过包括:

组合起来
- include: connect_vpn.yml
- include: do_stuff.yml
- include: disconnect_vpn.yml

答案 1 :(得分:0)

检查How To Use Ansible and Tinc VPN to Secure Your Server Infrastructure

基本上,您需要安装thisismitch/ansible-tinc playbook并创建一个hosts广告资源文件,其中包含您要包含在VPN中的节点,例如:

[vpn]
prod01 vpn_ip=10.0.0.1 ansible_host=162.243.125.98
prod02 vpn_ip=10.0.0.2 ansible_host=162.243.243.235
prod03 vpn_ip=10.0.0.3 ansible_host=162.243.249.86
prod04 vpn_ip=10.0.0.4 ansible_host=162.243.252.151

[removevpn]

然后,您应该查看/group_vars/all文件的内容,例如:

---

netname: nyc3
physical_ip: "{{ ansible_eth1.ipv4.address }}"

vpn_interface: tun0

vpn_netmask: 255.255.255.0
vpn_subnet_cidr_netmask: 32

其中:

  • physical_ip是您希望 tinc 绑定到的IP地址;
  • vpn_netmask是将应用于VPN接口的网络掩码。

答案 2 :(得分:0)

如果您正在使用Amazon Web Services,请查看可以创建,修改和删除VPN连接的ec2_vpc_vpn module。它使用boto3 / botocore库。

例如:

- name: create a VPN connection
  ec2_vpc_vpn:
    state: present
    vpn_gateway_id: vgw-XXXXXXXX
    customer_gateway_id: cgw-XXXXXXXX

- name: delete a connection
  ec2_vpc_vpn:
    vpn_connection_id: vpn-XXXXXXXX
    state: absent

对于其他云服务,请查看list of Ansible Cloud Modules