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