githubixx.peervpn
role-peervpn
このAnsibleロールは、Kubernetes the not so hard way with Ansible (at Scaleway) - Part 3 - PeerVPN で使用されます。Ubuntu 16.04/18.04のためにPeerVPNを設定するためのもので、基本的にはsystemdを使用するすべてのLinux OSに対応しています。PeerVPNを使うと、データセンターを越えたノード間で完全なメッシュVPNを簡単に設定できます。少なくとも1つの公開アクセス可能なインターフェースを持つホストが必要です(デフォルトはポート 7000
、プロトコル UDP
)。シンプルな設定例として、この公開ホストを peervpn_conf_initpeers
の設定に使うことができます。他のホストはPeerVPNにより自動的に見つけ出されます。
PeerVPNは、その目的のために独自のTAPインターフェースをインストールします。そのTAPインターフェースのデフォルト名は tap0
です。名前を変更するには、peervpn_conf_interface
変数に異なる値を指定してください。
PeerVPNの事前共有キーのために強力な秘密のパスワードを生成するには、以下のコマンドを使用できます:
openssl rand -base64 382 | tr -d '\n' && echo
これは事前共有キーなので、このキーはPeerVPNをインストールするすべてのホストで使用し、同じネットワーク名である必要があります。そうでないと接続は機能しません。デフォルトの事前共有キーは default
で、もちろん変更する必要があります ;-)
バージョン
私はすべてのリリースにタグを付け、セマンティックバージョニングに従うよう努めています。ロールを使用したい場合は、最新のタグを確認することをお勧めします。マスターブランチは基本的に開発用で、タグは安定したリリースを示します。しかし、一般的にマスターも良好な状態を保つようにしています。タグ 1.0.0+r044
は、このロールのリリース 1.0.0
で、PeerVPN r044
を使用していることを意味します。ロール自体が変更されると、X.Y.Z
が増加します。PeerVPNのバージョンが変更されると、rXXX
が増加し、ロールのパッチレベルも増加します(例: 1.0.0
→ 1.0.1
)。これによって、バグ修正や新しいメジャーバージョンをタグ付けしながら特定のPeerVPNリリースのために開発を続けることができます。
要件
ファイアウォールルールがインストールされている場合、ポート7000プロトコルUDP(デフォルト)でトラフィックを許可してください。また、peervpn_conf_initpeers
変数を追加する必要があります。この変数にはデフォルトがありません!IPv6はデフォルトで有効です。使用しない場合は、変数 peervpn_conf_enableipv6: no
を追加してください。
ロール変数
基本的には、非常に少数の変数を変更する必要があります(以下を参照)。ただし、変数の完全な説明と例については templates/etc/peervpn/peervpn.conf.j2
を確認してください。
デフォルト値のない変数:
peervpn_conf_initpeers
peervpn_conf_engine
peervpn_conf_ifconfig6
peervpn_conf_upcmd
peervpn_conf_chroot
デフォルト値のある変数:
peervpn_version: "peervpn-0-044"
peervpn_install_directory: "/opt/{{peervpn_version}}"
peervpn_dest: "/usr/local/sbin"
peervpn_conf_networkname: "peervpn"
peervpn_conf_psk: "default"
peervpn_conf_enabletunneling: "yes"
peervpn_conf_interface: "tap0"
peervpn_conf_local: "0.0.0.0"
peervpn_conf_port: 7000
peervpn_conf_ifconfig4: "10.0.0.1/24"
peervpn_conf_sockmark: 0
peervpn_conf_enableipv4: "yes"
peervpn_conf_enablenat64clat: "no"
peervpn_conf_enablerelay: "no"
peervpn_conf_enableprivdrop: "yes"
peervpn_conf_user: "nobody"
peervpn_conf_group: "nogroup"
PeerVPNを利用するには、peervpn_conf_initpeers
変数に値を指定する必要があります(Ansibleの host_vars
ディレクトリの各ホストごと、または group_vars
ディレクトリのホストグループごとに)。たとえば、peervpn_conf_initpeers: "host.example.net 7000"
と指定すると、PeerVPNはポート 7000
を介してUDPで host.example.net
に接続し続けます。
少なくとも以下の変数は変更すべきです:
peervpn_conf_initpeers
: PeerVPNがVPNに参加するために接続するホスト名とポート。peervpn_conf_networkname
: VPNの名前。peervpn_conf_psk
: 事前共有キー。良い事前共有キーのパスワードの生成方法は上記のイントロダクションを参照してください。peervpn_conf_ifconfig4
: ノードのIPアドレスとCIDR表記のサブネット。この変数はホストごとに指定する必要があります。
例Playbook
- hosts: webservers
roles:
- peervpn
ライセンス
GNU GENERAL PUBLIC LICENSE Version 3
著者情報
ansible-galaxy install githubixx.peervpn