oukooveu.wireguard
WireGuard Ansibleロール
これは、WireGuardをインストールし、すべてのプレイホスト間でデフォルトのフルメッシュ接続を構成するためのシンプルなロールです。
このロールは、こちらの実装に影響を受けましたが、メンテナンスされていない状態でPRが受け付けられなかったため、ゼロから書き直すことが決定されました。
要件
特別な要件はありません。wireguard_vpn_ip
のデフォルトはないため、この変数は各ホストで定義する必要があります。
ロールの変数
変数 | 説明 | デフォルト値 |
---|---|---|
wireguard_vpn_ip | プライベートアドレス | N/A、ホスト変数を通じて提供する必要があります |
wireguard_port | リッスンするポート | 51820 |
wireguard_path | 設定ファイルのパス | /etc/wireguard |
wireguard_public_ip | パブリックアドレス | {{ ansible_default_ipv4.address }} |
wireguard_post_up | 起動後のスクリプト | N/A |
wireguard_post_down | 停止後のスクリプト | N/A |
wireguard_network | ネットワークトポロジー、下のサンプル参照 | {} |
wireguard_network_name | インターフェース名 | wg0 |
wireguard_additional_peers | 追加のピア | [] |
wireguard_mtu_enabled | MTU オプション管理 |
false |
wireguard_mtu | MTU オプションの値 |
N/A |
wireguard_fw_mark_enabled | FwMark オプション管理 |
false |
wireguard_fw_mark | FwMark オプションの値 |
{{ wireguard_port }} |
wireguard_hosts_enabled | 自身とWireGuardピアを/etc/hostsに追加 | false |
wireguard_hosts_domain | /etc/hostsレコードのドメイン | wg.internal |
FwMark
のWireGuardオプションは、暗号化されていないトラフィックをフィルタリングする必要がある場合に役立ちます。例えば:
PostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
PreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
サンプルプレイブック
フルメッシュネットワーク
- name: WireGuardフルメッシュネットワークの設定
hosts: cluster
roles:
- role: oukooveu.wireguard
追加のピアを持つカスタムネットワークトポロジー
- name: WireGuardカスタムネットワークの設定
hosts: cluster
vars:
wireguard_network:
node1:
- node2
- node3
- node4
node2:
- node1
- node4
node3:
- node1
- node4
node4:
- node1
- node2
- node3
wireguard_additional_peers:
- ip: 192.168.100.1
key: s3cr3t
endpoint: 10.0.100.1
keepalive: 15
comment: 'コメント'
roles:
- role: oukooveu.wireguard
上記のサンプルでは、ホストnode1
とnode4
はすべてのホストにアクセスでき、ホストnode2
とnode3
は互いにアクセスできません。構成は対称である必要があります(1つのノードの接続性が定義されていれば、別のノードにも定義する必要があります)ので注意してください。
モレキュールテスト
ローカルでテストを実行するには:
python -m venv .venv
. .venv/bin/activate
pip install -r molecule/default/requirements.txt
molecule test
デフォルトではないイメージ(debian:11
)のテストを実行するには、MOLECULE_IMAGE
環境変数を適切な値に設定します。例えば:
export MOLECULE_IMAGE=rockylinux:9
テスト環境をクリーンアップするには、molecule destroy
を実行します。
ライセンス
Apache 2.0
インストール
ansible-galaxy install oukooveu.wireguard
ライセンス
Unknown
ダウンロード
162
所有者