githubixx.ansible_role_wireguard

以下のテキストを日本語に翻訳しました。シンプルで理解しやすい内容にしています。

ansible-role-wireguard

このAnsibleロールは、私のブログシリーズ「Kubernetesを簡単にAnsibleで使う方法」で使用されていますが、もちろん単独でも使用できます。私はWireGuardとこのAnsibleロールを使って、私の小さなKubernetesクラスタのすべてのノード間に完全にメッシュされたVPNを設定しています。

一般的に、WireGuardはUDPを使用するIPv4およびIPv6用のネットワークトンネル(VPN)です。WireGuardについての詳しい情報は、こちらに良い紹介があります: WireGuardのインストール、現代的なVPN

Linux

このロールは以下のディストリビューションで動作するはずです:

  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 24.04 (Noble Numbat)
  • Archlinux
  • Debian 11 (Bullseye)
  • Debian 12 (Bookworm)
  • Fedora 39
  • AlmaLinux 9
  • Rocky Linux 9
  • openSUSE Leap 15.5
  • openSUSE Leap 15.6
  • Oracle Linux 9

ベストエフォート

  • AlmaLinux 8
  • Rocky Linux 8
  • elementary OS 6
  • CentOS 7(2024年6月末でサポート終了)

Moleculeテストはこちらで利用可能です(下記参照)。また、Raspbian Busterでも動作するはずですが、テストはありません。MacOS(下記参照)でも部分的に動作するはずですが、最良の結果は保証されません。

MacOS

このプレイブックは、Linuxでsystemdサービスを設定、起動するように構成されていますが、MacOSでは必要なパッケージをインストールし、正しいwg0.confファイルを生成して、指定されたwireguard_remote_directory(デフォルトは/opt/local/etc/wireguard)に配置します。VPNを実行するには、次のコマンドを実行する必要があります:

sudo wg-quick up wg0

VPNを無効にするには、次のようにします:

sudo wg-quick down wg0

または、公式アプリをインストールして、wg0.confファイルをインポートできます。

バージョン

私はすべてのリリースにタグを付け、セマンティックバージョニングを守るように努めています。このロールを使用したい場合は、最新のタグをチェックアウトすることをお勧めします。マスターブランチは基本的に開発用で、タグは安定リリースを示します。ただし、基本的にマスターも良好な状態を保つようにしています。

要件

デフォルトでは、ポート51820(UDPプロトコル)が外部からアクセス可能である必要があります。ただし、wireguard_port変数を変更することでポートを調整できます。また、IPフォワーディングを有効にする必要があります。たとえば、echo 1 > /proc/sys/net/ipv4/ip_forwardで有効にできます。このタスクはこのAnsibleロールで実装しないことにしました。私の意見では、他の方法で処理するべきです。 私のansible-role-harden-linuxを使用できます。sysctlエントリの変更やファイアウォール設定を管理します。 それでも、PreUpPreDownPostUpPostDownフックは、WireGuardインターフェースがアップまたはダウンする前にネットワーク関連の作業を行う良い場所かもしれません。

変更履歴

変更履歴:

完全なCHANGELOG.mdを参照してください。

最近の変更:

17.0.0

  • BREAKING

    • openSUSE 15.4のサポートを削除しました(サポート終了)
  • FEATURE

    • Ubuntu 24.04のサポートを追加
    • openSUSE 15.6のサポートを追加
  • MOLECULE

    • 古いProxmoxコードを削除
    • Vagrantボックスrockylinux/9bento/rockylinux-9に置き換え
    • AlmaLinuxにansible.builtin.packageを使用
    • AlmaLinux 8Rocky Linux 8CentOS 7を削除(古いPythonのためAnsibleでのテストが難しい)

インストール

  • GitHubから直接ダウンロードする(クローンする前にAnsibleロールディレクトリに移動): git clone https://github.com/githubixx/ansible-role-wireguard.git githubixx.ansible_role_wireguard

  • ansible-galaxyコマンドを使って、Ansible Galaxyから直接ダウンロードする: ansible-galaxy role install githubixx.ansible_role_wireguard

  • 次の内容でrequirements.ymlファイルを作成し(これによってGitHubからロールがダウンロードされます)、次のようにインストールします: ansible-galaxy role install -r requirements.yml

---
roles:
  - name: githubixx.ansible_role_wireguard
    src: https://github.com/githubixx/ansible-role-wireguard.git
    version: 17.0.0

ロール変数

これらの変数はgroup_vars/で変更できます。例えば:

# リモートホストのWireGuard設定を保存するディレクトリ
wireguard_remote_directory: "/etc/wireguard"              # Linuxで
# wireguard_remote_directory: "/opt/local/etc/wireguard"  # MacOSで

# 指定されていない場合、WireGuardがリッスンするデフォルトのポート。
wireguard_port: "51820"

# 指定されていない場合、WireGuardが使用するデフォルトのインターフェース名。
wireguard_interface: "wg0"

# wg.confファイルのデフォルトの所有者
wireguard_conf_owner: root

# wg.confファイルのデフォルトのグループ
wireguard_conf_group: "{{ 'root' if not ansible_os_family == 'Darwin' else 'wheel' }}"

# wg.confファイルのデフォルトのモード
wireguard_conf_mode: 0600

# wg.confファイルに変更があった場合のバックアップの有無
wireguard_conf_backup: false

# デフォルトのwireguardサービスの状態
wireguard_service_enabled: "yes"
wireguard_service_state: "started"

# デフォルトでは「wg syncconf」を使用してWireGuardインターフェース設定を適用します。
# 古いWireGuardツールはこのオプションを提供していません。それの場合、フォールバックとして、
# WireGuardインターフェースが再起動されます。これによりネットワーク接続が一時的に中断されます。

(以下、省略)


この翻訳はテキスト全体をカバーするもので、必要に応じて追加の内容も翻訳することができます。お知らせください。

プロジェクトについて

Installs Wireguard incl. systemd integration

インストール
ansible-galaxy install githubixx.ansible_role_wireguard
ライセンス
Unknown
ダウンロード
239.1k
所有者
Senior System Engineer - Python, Go, Cloud, Kubernetes, Commodore, Retro, 80's ;-)