gavika.openvpn
gavika.openvpn
安装和配置OpenVPN。构建和管理您自己的OpenVPN服务器。
https://www.techchorus.net/blog/run-your-own-openvpn-server/
此外,查看examples
目录。
要求
此角色应与gavika.easy_rsa
一起使用。
角色变量
变量 | 默认值 | 描述 | 是否必需 |
---|---|---|---|
easy_rsa_local_pool_directory | /tmp/ca_openvpn_pool | 用于存储证书请求、证书等的临时目录。 | 是 |
openvpn_client_users | [] | OpenVPN客户端用户名列表。建议仅使用字母数字字符。 | 否 |
openvpn_port | 1194 | OpenVPN服务器运行的端口 | 是 |
openvpn_protocol | 默认: udp 选项: tcp或udp | 使用的网络协议 | 是 |
openvpn_server_ip_address | OpenVPN服务器的IP地址 | 在生成的客户端证书中使用的值 | 是 |
openvpn_generated_configurations_local_pool | false. 布尔值。 | 是否将生成的客户端配置复制到本地(执行ansible-playbook的控制机器)池目录。 | 是 |
openvpn_route_all_traffic | True. 布尔值。 | 通过OpenVPN服务器路由所有互联网流量 | 是 |
openvpn_use_opendns_public_dns | True. 布尔值。 | 将OpenDNS DNS服务器推送给客户端 | 是 |
openvpn_additional_configs | [] | 额外的OpenVPN服务器配置。字典列表。每个列表项是一个键值对。例如 openvpn_additional_configs: - push: "topology subnet" - push: "route 192.168.4.5 255.255.255.255" |
是 |
openvpn_default_firewalld_zone | public | Firewalld配置中使用的区域名称。仅对EL相关 | 是 |
要使用gavika.easy_rsa
和gavika.openvpn
构建CA服务器和OpenVPN服务器,您需要根据需求多次执行角色。您负责按所需次数和顺序执行角色。文档中提供了示例。通常,您需要执行open-vpn-playbook.yml
两次,easy-rsa-playbook.yml
一次。
Playbook执行流程:
完整流程图
以下是执行playbooks的示例:
# openvpn: 设置本地池目录,安装openvpn,创建服务器请求,
# 创建客户端请求
ansible-playbook -i my-inventory.yml openvpn-playbook.yml
# easy_rsa: 构建CA服务器,导入和签署请求,获取CA证书
ansible-playbook -i my-inventory.yml easy-rsa-playbook.yml
# openvpn: 使用已签名请求,设置openvpn,生成客户端配置
ansible-playbook -i my-inventory.yml openvpn-playbook.yml
依赖项
gavika.openvpn
角色依赖于gavika.easy_rsa
。
以下集合是必需的:
community.aws
需要boto3
Python库。
角色gavika.openvpn
应与gavika.easy_rsa
一起使用。
设置CA服务器的示例playbook: easy-rsa-playbook.yml
---
- hosts: ca_server
become: true
vars:
easy_rsa_req_country: "IN"
easy_rsa_req_province: "KA"
easy_rsa_req_city: "Bangalore"
easy_rsa_req_org: "Gavika"
easy_rsa_req_email: "[email protected]"
easy_rsa_req_ou: "Gavika"
easy_rsa_local_pool_directory: /tmp/ca_openvpn_pool # 无尾斜杠 /
easy_rsa_server_request_to_import: "server.req"
easy_rsa_ca_server_mode: true
roles:
- role: gavika.easy_rsa
安装OpenVPN服务器的示例playbook: openvpn-playbook.yml
---
- hosts: openvpn_server
become: true
vars:
openvpn_client_users:
- janedoe
- johndoe
easy_rsa_req_country: "IN"
easy_rsa_req_province: "KA"
easy_rsa_req_city: "Bangalore"
easy_rsa_req_org: "My Organization"
easy_rsa_req_email: "[email protected]"
easy_rsa_req_ou: "My Organization Unit"
roles:
- role: gavika.easy_rsa
- role: gavika.openvpn
示例清单: my-inventory
:
all:
hosts:
placeholder
children:
ca_server:
hosts:
dev-ca-01.example.com:
ansible_become: true
ansible_user: ubuntu
ansible_host: 192.168.3.5
easy_rsa_ca_server_mode: true
ansible_python_interpreter: /usr/bin/python3
openvpn_server:
hosts:
dev-vpn-01.example.com:
ansible_python_interpreter: /usr/bin/python3
ansible_become: true
ansible_user: ubuntu
ansible_host: 192.168.3.6
openvpn_server_ip_address: 192.168.3.6
许可证
Apache许可证,版本2.0
作者信息
Sudheera Satyanarayana