Start adding dev env.
This commit is contained in:
parent
8481ff63d5
commit
e4d34fbabb
5 changed files with 71 additions and 0 deletions
2
dev/.gitignore
vendored
Normal file
2
dev/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
config/vm*.conf
|
||||||
|
docker-compose.yaml
|
5
dev/Dockerfile
Normal file
5
dev/Dockerfile
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
FROM alpine
|
||||||
|
|
||||||
|
RUN apk add --no-cache wireguard-tools-wg-quick
|
||||||
|
|
||||||
|
|
14
dev/config/wg0.conf.tmpl
Normal file
14
dev/config/wg0.conf.tmpl
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
[Interface]
|
||||||
|
Address = {{ item.ip }}/{{ mask_bits }}
|
||||||
|
ListenPort = {{ port }}
|
||||||
|
PrivateKey = {{ item.private_key }}
|
||||||
|
{% for iitem in keypairs %}
|
||||||
|
{% if iitem.item != item.item %}
|
||||||
|
|
||||||
|
[Peer]
|
||||||
|
PublicKey = {{ iitem.public_key }}
|
||||||
|
Endpoint = {{ iitem.item }}:{{ port }}
|
||||||
|
AllowedIPs = {{ iitem.ip }}/32
|
||||||
|
PersistentKeepalive=25
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
15
dev/docker-compose.yaml.tmpl
Normal file
15
dev/docker-compose.yaml.tmpl
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#jinja2: lstrip_blocks: "True"
|
||||||
|
---
|
||||||
|
version: '3.3'
|
||||||
|
services:
|
||||||
|
{% for item in keypairs %}
|
||||||
|
{{ item.item }}:
|
||||||
|
build:
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
volumes:
|
||||||
|
- ./config/{{ item.item }}-wg0.conf:/etc/wireguard/wg0.conf
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
{% endfor %}
|
||||||
|
networks:
|
||||||
|
default:
|
35
dev/wireguard-configs.yaml
Normal file
35
dev/wireguard-configs.yaml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
---
|
||||||
|
- name: Wireguard config generator
|
||||||
|
hosts: localhost
|
||||||
|
vars:
|
||||||
|
mask_bits: 24
|
||||||
|
base_ip: 10.2.0.0
|
||||||
|
port: 51871
|
||||||
|
tasks:
|
||||||
|
- name: generate keypair
|
||||||
|
shell: |
|
||||||
|
#!/bin/sh
|
||||||
|
priv="$(wg genkey)"
|
||||||
|
pub="$(echo "$priv" | wg pubkey)"
|
||||||
|
base_ip="{{ base_ip }}"
|
||||||
|
my_ip="$(echo "$base_ip" | sed 's/0$/{{ item }}/')"
|
||||||
|
jq --null-input \
|
||||||
|
--arg priv "$priv" \
|
||||||
|
--arg pub "$pub" \
|
||||||
|
--arg my_ip "$my_ip" \
|
||||||
|
'{"private_key": $priv, "public_key": $pub, "item": "vm{{ item }}", "ip": $my_ip}'
|
||||||
|
with_items: ["1", "2", "3", "4"]
|
||||||
|
register: keypairs_
|
||||||
|
- set_fact:
|
||||||
|
keypairs: "{{ keypairs | default([]) + [item.stdout | from_json] }}"
|
||||||
|
with_items: "{{ keypairs_.results }}"
|
||||||
|
- debug:
|
||||||
|
var: keypairs
|
||||||
|
name: write wg configs
|
||||||
|
- template:
|
||||||
|
src: ./config/wg0.conf.tmpl
|
||||||
|
dest: ./config/{{ item.item }}-wg0.conf
|
||||||
|
with_items: "{{ keypairs }}"
|
||||||
|
- template:
|
||||||
|
src: ./docker-compose.yaml.tmpl
|
||||||
|
dest: ./docker-compose.yaml
|
Loading…
Reference in a new issue