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
を実行することでテストを再実行できます。
バックログ
なし - 機能リクエストは歓迎します。