trozz.ansible_nebula
ansible-nebula
该角色安装并部署Nebula的配置
要求
在运行此脚本之前,您需要生成和部署证书(请参见示例)。
支持的Nebula版本
目前此角色经过测试的版本为1.5.0
。
角色变量
变量名称 | 类型 | 目的 | 默认值 | 是否必需 |
---|---|---|---|---|
nebula_version |
字符串 | 下载的版本 | 1.5.0 |
是 |
nebula_force_install |
布尔值 | 强制覆盖现有的nebula二进制文件 | false |
否 |
ca |
字符串 | CA文件的路径 | NA | 是 |
cert |
字符串 | 证书的路径 | NA | 是 |
key |
字符串 | 证书密钥的路径 | NA | 是 |
blocklist |
列表 | 被列入黑名单的证书哈希列表 | NA | 否 |
lighthouses |
字符串 | 发现的静态主机 | "{{ groups['nebula_lighthouses'] }}" | 否 |
lighthouses_override |
列表 | 发现的静态主机列表 | NA | 否 |
lighthouse.am_lighthouse |
布尔值 | 此实例是否为Lighthouse | false |
是 |
lighthouse.serve_dns |
布尔值 | 此实例是否提供DNS服务 | false |
是 |
lighthouse.interval |
整数 | 向lighthouse报告的间隔时间 | 60 |
否 |
listen.host |
字符串 | 监听的IP | 0.0.0.0 |
是 |
listen.port |
整数 | 监听的端口 | 4242 |
是 |
listen.batch |
整数 | 每个系统调用从内核拉取的最大数据包数 | 64 |
是 |
listen.read_buffer |
整数 | 配置udp端的套接字缓冲区 | NA | 否 |
listen.write_buffer |
整数 | 配置udp端的套接字缓冲区 | NA | 否 |
punchy |
布尔值 | Punchy会定期进行入站/出站的穿孔,以避免防火墙nat映射过期 | true |
是 |
punch_back |
布尔值 | punch_back意味着如果穿孔失败,您尝试访问的节点将连接回您 | true |
是 |
cipher |
字符串 | 密码允许您在可用密码之间进行选择 | NA | 否 |
local_range |
字符串 | 本地范围用于定义关于本地网络范围的提示 | NA | 否 |
sshd.enabled |
布尔值 | sshd可以通过ssh暴露信息和管理功能 | NA | 否 |
sshd.listen |
字符串 | 管理SSH功能的IP/端口 | NA | 否 |
relay.relays |
列表 | 用作中继的主机IP | NA | 否 |
relay.am_relay |
字符串 | 指示主机是否应作为中继 | false |
否 |
relay.use_relays |
字符串 | 指示主机是否应尝试通过中继连接 | true |
否 |
metrics.prometheus |
布尔值 | 启用prometheus服务器 | NA | 否 |
outbound |
列表 | 内置防火墙的出站规则 | 见下文 |
是 |
inbound |
列表 | 内置防火墙的入站规则 | 见下文 |
是 |
防火墙规则示例
outbound:
- port: any
proto: any
host: any
inbound:
- port: any
proto: icmp
host: any
依赖
无
示例剧本
---
- hosts: all
remote_user: root
vars:
lighthouses:
- nebula_ip: 10.255.0.1
external_addr: 123.231.1.2
lighthouse:
nodes:
- 10.255.0.1
pre_tasks:
- name: 创建Nebula目录
file:
path: /etc/nebula
state: directory
mode: '0750'
- name: 部署Nebula证书
copy:
src: files/{{item}}
dest: /etc/nebula/{{item}}
owner: root
group: root
mode: '0600'
with_items:
- ca.crt
- host.crt
- host.key
roles:
- ansible-nebula
---
- hosts: all
remote_user: root
vars:
lighthouses:
- nebula_ip: 10.255.0.1
external_addr: 123.231.1.2
roles:
- ansible-nebula
您也可以选择声明一个具有非默认外部端口的lighthouse
---
- hosts: all
remote_user: root
vars:
lighthouse:
am_lighthouse: yes
lighthouses:
- nebula_ip: 10.255.0.1
external_addr: 123.231.1.2
external_port: 4242
roles:
- ansible-nebula
许可证
MIT
作者信息
该角色按原样提供,Nebula由Slack和社区维护。