ansibleguy.infra_openvpn
作業中!本番環境での使用はしないでください!

Ansibleロール - OpenVPN クライアントからサイトへのVPN
警告: このロールはまだ開発中です。 本番環境での使用は避けてください!
OpenVPN クライアントからサイトへのVPNの設定を展開するためのロールです。
OpenVPNエディション
このロールはOpenSource OpenVPN Communityエディションを使用しています。
なぜコミュニティエディションを使うのか?
メリット:
- ライセンス料が不要 - 1台のサーバーで数千のクライアントにスケール可能
- 主要な機能はオープンソース版でカバーされています
- Ansibleを使って管理可能
デメリット:
このエディションにはグラフィカルな(_ウェブ-)ユーザーインターフェースがありません!
もしきれいなウェブUIが必要であれば、OpenVPN Access Serverをチェックしてください。
テスト済み:
- Debian 11
- Debian 12
インストール
# 最新版
ansible-galaxy role install git+https://github.com/ansibleguy/infra_openvpn
# Galaxyから
ansible-galaxy install ansibleguy.infra_openvpn
# またはカスタムロールパスを指定する場合
ansible-galaxy install ansibleguy.infra_openvpn --roles-path ./roles
# 依存関係をインストール
ansible-galaxy install -r requirements.yml
使用方法
シンプルなAnsible GUIが必要ですか?私のAnsible WebUIをチェックしてください。
設定
必要に応じて設定を定義します:
openvpn:
パスワードを暗号化するために「ansible-vault」を使用することをお勧めします:
ansible-vault encrypt_string
実行
プレイブックを実行します:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml
便利なタグもあります:
* *
エラーをデバッグするために、実行時に「debug」変数を設定できます:
# 警告:パスワードをログに記録します!
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes
OpenVPNサービスを自動的に再起動させたい場合(インタラクティブプロンプトなし):
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e auto_restart=yes
機能
パッケージインストール
- Ansible依存性(最小限)
設定 *
デフォルト設定: *
デフォルトのオプトイン: *
デフォルトのオプトアウト:
情報
情報:OpenVPNコミュニティの設定についてもっと知りたい場合は、包括的なドキュメントをチェックしてください。
興味深いページ:
情報:ChromeOSはOpen-Network-Configuration (ONC)フォーマットを使用します。
JSON形式で、デバッグが難しく、役立つエラーメッセージが得られません。
このロールが提供するプロフィールテンプレートは、すべてのエッジケースで機能するわけではありません。
トラブルシューティングが必要な場合は、ONCドキュメントを参照してください。ただし、すべてのオプションが実際に文書どおりに機能するわけではありませんのでご注意ください。
警告:OpenVPNインスタンスがChromeOSクライアントへの接続をサポートする場合、'openvpn.instances.[name].security.tls_crypt'オプションを'false'に設定する必要があります。これは、ChromeOSの実装では(現在)サポートされていません。
注意:このロールは現在、Debianベースのシステムのみをサポートしています。
注意:ロールのほとんどの機能はオプトインまたはオプトアウト可能です。
利用可能なすべてのオプションについては、メインのデフォルトファイルにあるデフォルト設定を参照してください!
警告:提供したすべての設定/変数が有効性をチェックされるわけではありません。悪い設定はロールを壊す可能性があります!
情報:
openvpn.unprivileged: true
を使用してシステムセキュリティを向上させるには、インストールされたOpenVPNバイナリがiproute2
をサポートしている必要があります!ロールはバイナリの互換性をチェックし、そうでない場合はエラーになります!
iproute2をサポートする方法のオプション:
- そのオプションが有効なバイナリを使用する必要があります
- この例のスクリプトのようにOpenVPNを再コンパイルしてください('uninstall'を除く)
- または、このロールを構成して、私のansibleguy/openvpn-recompiledリポジトリから再コンパイルされたバイナリをダウンロードします!
- 既存のOpenVPNパッケージ/バイナリをアンインストールします
openvpn
バイナリを/usr/local/bin
にコピー/リンクします
- そのオプションが有効なバイナリを使用する必要があります
情報:マルチファクタ認証を使用している場合、クライアント(ChromeOSなど)が2番目の入力フィールドをサポートしていないと問題が発生することがあります!
openvpn.server.auth.mfa_separator
をお好きな特異な文字に設定する必要があるかもしれません(例:<<<)。これにより、secret1(パスワード)とsecret2(TOTP PIN)を同じ入力フィールドに入力できます!次のように:
p4ssW0rd<<<001122
デフォルトのセパレーター
:
は常にサポートされます。カスタムのものを設定しても、両方の方法がサポートされます。
ansible-galaxy install ansibleguy.infra_openvpn