gamethis.win_openssh
Ansibleロール win_openssh
WindowsホストにWin32-OpenSSHをインストールします。
注意: このロールはWin32-OpenSSH v7.7.2.0p1-Betaでテストされています。新しいバージョンでも動作するはずですが、保証はできません。
デフォルトの設定では、このロールは以下を行います。
- GitHubの最新リリースに基づいて、
Win32-OpenSSHをC:\Program Files\OpenSSHにインストールします。 sshdおよびssh-agentサービスを設定し、自動起動に設定します。ドメインおよびプライベートネットワークプロファイルのポート22での受信トラフィックを許可するファイアウォールルールを作成します。- 公開鍵およびパスワード認証を許可するように
sshd_configファイルを設定します。
次の設定もロールの一部として構成できますが、いくつかのオプション変数を設定する必要があります。
- GitHubまたはZIPファイルを指す他のURLからダウンロードする特定のバージョンを指定する
- バイナリをインストールする場所を指定する
- SSHサーバーサービスを設定するかどうかを制御する
- SSHサービスを自動起動に設定するかどうかを制御する
- 受信SSHトラフィックを許可するファイアウォールプロファイルを定義する
- ポートやその他の選択されたsshd_configの値を指定する
- 現在のユーザーのプロファイルに公開鍵を追加する
要件
- Windows Server 2008 R2以上
変数
必須の変数
なし。デフォルトオプションでこのロールは実行されます。
オプションの変数
opt_openssh_architecture: Windowsのアーキテクチャで、32または64のいずれかに設定する必要があります(デフォルト:64)。opt_openssh_firewall_profiles: 受信SSHトラフィックを許可するファイアウォールプロファイル(デフォルト:domain,private)。opt_openssh_install_path: OpenSSHバイナリをインストールするディレクトリ(デフォルト:C:\Program Files\OpenSSH)。opt_openssh_pubkeys: ユーザーのauthorized_keysファイルに追加する文字列または文字列のリスト。デフォルトでは鍵は追加されません。opt_openssh_shared_admin_keyがTrueの場合、これらの鍵は管理者ユーザーの認証には影響しません。opt_openssh_shared_admin_pubkeys: 管理者のauthorized_keys鍵ファイルに追加する文字列または文字列のリスト。opt_openssh_setup_service: sshdサービスコンポーネントをインストールするか、クライアント実行ファイルのみを使用するかを制御します(デフォルト:True)。opt_openssh_skip_start:sshdおよびssh-agentサービスを開始せず、自動起動に設定しません(デフォルト:False)。opt_openssh_temp_path: ダウンロードしたZIPファイルと抽出ファイルを保存する一時ディレクトリ(デフォルト:C:\Windows\TEMP)。opt_openssh_url: OpenSSH ZIPのダウンロード場所を設定します。省略すると、GitHubリポジトリから取得します。opt_openssh_version: GitHubからダウンロードする特定のバージョンを設定します。opt_openssh_urlが設定されていない場合のみ有効です(デフォルト:latest)。opt_openssh_zip_file: OpenSSH ZIPリリースファイルのパス。これが定義されていれば、opt_openssh_urlの代わりに使用され、opt_openssh_zip_remote_srcがパスがコントローラーに対してローカルか、Windowsホストに対してローカルかを制御します。opt_openssh_zip_remote_src: (デフォルト:False)
次のsshd_configの値もカスタマイズできます。
opt_openssh_port:Portに一致し、SSHサービスがリッスンするポート(デフォルト:22)。opt_openssh_pubkey_auth:PubkeyAuthenticationに一致し、SSHサービスがSSH鍵による認証を許可するかどうか(デフォルト:True)。opt_openssh_password_auth:PasswordAuthenticationに一致し、SSHサービスがパスワードによる認証を許可するかどうか(デフォルト:True)。opt_openssh_shared_admin_key:Trueに設定すると、管理者が__PROGRAMDATA__/ssh/administrators_authorized_keysで共有の認証鍵を使用します。Falseに設定すると、すべてのユーザーに対して%USER_PROFILE%\.ssh\authorized_keysが使用されることが保証されます(デフォルト:False)。
SSHサービスが新しいシェルを起動する方法を制御するために以下のシェルオプションをカスタマイズできます。
opt_openssh_default_shell: OpenSSHインストールによって設定されたデフォルトシェルを上書きします。SSHセッションを開始するときに実行したい実行可能ファイルへの絶対パスであるべきです。opt_openssh_default_shell_command_option: シェルを呼び出すときに使用する引数を設定します。通常の状況で調整しない方が良いです。opt_openssh_default_shell_escape_args: シェルを呼び出すときに自動的に引数をエスケープしないようにします。opt_openssh_powershell_subsystem: PowerShellのリモーティング用のサブシステムを設定します。8.3形式のパス(例:C:\PROGRA~1\POWERS~1\7\pwsh.exe)である必要があります(デフォルト:undefined)。
出力変数
なし
ロールの依存関係
なし
サンプルプレイブック
- name: デフォルトでWin32-OpenSSHをインストール
hosts: windows
gather_facts: no
roles:
- jborean93.win_openssh
- name: 特定のバージョンのWin32-OpenSSHをカスタムフォルダにインストール
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_openssh
opt_openssh_install_path: C:\OpenSSH
opt_openssh_version: v7.7.2.0p1-Beta
- name: Win32-OpenSSHのクライアントコンポーネントのみをインストール
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_openssh
opt_openssh_setup_service: False
テスト
このロールをテストするには、testsフォルダに移動し、vagrant upを実行します。これにより、Windows Server 2019ホストが起動し、このロールをテストします。ホストがオンラインの場合は、vagrant provisionを実行することでテストを再実行できます。
バックログ
なし - 機能リクエストは歓迎します。
