OT-OSM.openvpn
Ansible 角色:OpenVPN
一个 Ansible 角色,用于安装和配置 OpenVPN 服务器。
版本历史
| 日期 | 版本 | 描述 | 修改者 |
|---|---|---|---|
| 2018年8月16日 | v.1.0.0 | 初始草稿 | Yashvinder Hooda |
| 2018年9月8日 | v.1.0.0 | 为 Debian 添加角色 | Sudipt Sharma |
| 2018年10月9日 | v.1.0.0 | 更新了 README | Sudipt Sharma |
| 2018年11月13日 | v.1.0.0 | 更新以支持 RHEL | Sudipt Sharma |
| 2019年2月28日 | v.1.0.0 | 添加 Gitlab-CI | Mahesh Kumar |
| 2019年5月31日 | v.1.0.0 | 添加分子测试用例 | Ekansh Jain |
| 2020年1月13日 | v.1.0.0 | 更新以支持 AMAZON | Sudipt Sharma |
| 2020年2月11日 | v.1.0.0 | 为客户端创建与撤销添加标签 | Sudipt Sharma |
| 2020年4月18日 | v.1.0.0 | 集成 Circle-CI | Sudipt Sharma |
显著特点
- 此角色自动化 OpenVPN 的 VPN 设置。 角色包含两个元文件:
- clientlist:输入您想要添加的客户端名称。
- revokelist:输入您想要撤销的客户端名称。
注意:
禁用源/目标检查。
在实例列表中,选择 VPN 实例,然后选择网络->更改源/目标。 从下拉菜单中选择,然后单击“是,禁用”。 否则,您的 VPN
服务器将无法连接到其他 EC2 实例。
支持的操作系统
- CentOS:7
- CentOS:6
- Ubuntu:bionic
- Ubuntu:xenial
- Amazon AMI
依赖项
- 无 :)
目录结构
osm_openvpn
.
├── clientlist
├── defaults
│ └── main.yml
├── files
│ └── make_config.sh
├── handlers
│ └── main.yml
├── media
│ ├── add_connection.png
│ ├── addvpn.jpg
│ ├── client.png
│ ├── import_file.png
│ ├── save_key.png
│ ├── select_file.png
│ └── vpn.jpg
├── meta
│ └── main.yaml
├── molecule
│ └── default
│ ├── Dockerfile.j2
│ ├── INSTALL.rst
│ ├── molecule.yml
│ ├── playbook.yml
│ └── tests
│ ├── test_default.py
│ └── test_default.pyc
├── README.md
├── revokelist
├── tasks
│ ├── client_keys.yaml
│ ├── config.yaml
│ ├── easy-rsa.yaml
│ ├── firewall.yaml
│ ├── install.yaml
│ ├── main.yaml
│ ├── revoke.yaml
│ └── server_keys.yaml
└── templates
├── before.rules.j2
├── client.conf.j2
└── server.conf.j2
10 个目录,31 个文件
角色变量
| 变量 | 默认值 | 描述 | 类型 |
|---|---|---|---|
| server_name | server | OpenVPN 服务器名称 | 可选 |
| PROTOCOL | udp | 服务器将使用的协议 | 必填 |
| PORT | udp | 服务器将使用的端口 | 必填 |
| openvpn_server_network | 10.8.0.0 | VPN 网络的 CIDR 范围 | 可选 |
| base_directory | /etc/openvpn | OpenVPN 服务器的配置路径 | 可选 |
| easy_rsa_url | url | 下载 Easy RSA 的 URL | 可选 |
| block_all_connection | false | 阻止 OpenVPN 客户端的所有通信 | 可选 |
| port_list | [80,443] | 允许 OpenVPN 客户端的特定端口,仅在 block_all_connection == true 时适用 | 可选 |
示例剧本
---
- name: 自动化 OpenVPN 设置
hosts: server
become: true
roles:
- role: osm_openvpn
...
$ ansible-playbook site.yml -i inventory
- 生成客户端密钥
$ ansible-playbook site.yml -i inventory --tags "generate_client_keys"
- 撤销客户端密钥
$ ansible-playbook site.yml -i inventory --tags "revoke_client_keys"
库存
库存应该如下所示:-
[server]
192.xxx.x.xxx ansible_user=ubuntu
客户端密钥
客户端密钥将生成在本地主机的 /tmp/{{client_name}}.ovpn 中。
客户端配置
安装 OpenVPN
apt-get install openvpn -y
为 Ubuntu 18.04 “bionic beaver” 安装 OpenVPN GUI
apt install network-manager-openvpn-gnome -y
安装后,前往网络设置
将 VPN 添加到网络设置中
然后在 VPN 设置中浏览您的 client.ovpn 文件

为 Ubuntu 16.04 “xenial” 安装 OpenVPN GUI
apt install network-manager-openvpn-gnome -y
安装后,前往网络设置

将 .ovpn 文件添加到网络设置中

然后选择 .client.ovpn 文件。

然后保存 client.ovpn 文件。

未来建议的更改
- 修复该角色以在裸机上运行
参考资料
许可
- MIT / BSD
作者信息
贡献者
关于项目
OpenVpn ansible role for creating a secure tunnel to your private infra.
安装
ansible-galaxy install OT-OSM.openvpn许可证
Unknown
下载
219
拥有者


