jborean93.win_openssh
Rol de Ansible win_openssh
Instala Win32-OpenSSH en un host de Windows.
Nota: Esta rol ha sido probado en Win32-OpenSSH v7.7.2.0p1-Beta, versiones más nuevas deberían funcionar, pero no se garantiza.
Con las configuraciones predeterminadas, este rol hará lo siguiente:
- Instala
Win32-OpenSSH
enC:\Program Files\OpenSSH
basado en la última versión disponible en GitHub. - Configura los servicios
sshd
yssh-agent
y los establece para que inicien automáticamente. - Crea una regla de firewall que permite tráfico entrante en el puerto
22
para los perfiles de reddominio
yprivado
. - Configura el archivo
sshd_config
para permitir autenticación por clave pública y contraseña.
También se pueden configurar lo siguiente como parte del rol, pero requieren que se establezcan algunas variables opcionales:
- Especificar una versión específica para descargar desde GitHub o otra URL que apunte al zip.
- Especificar dónde instalar los binarios.
- Controlar si se configuran los servicios del servidor SSH.
- Controlar si se configuran los servicios SSH para que inicien automáticamente.
- Definir los perfiles de firewall para permitir el tráfico SSH entrante.
- Especificar el puerto y otros valores seleccionados de sshd_config.
- Agregar una o más claves públicas al perfil del usuario actual.
Requisitos
- Windows Server 2008 R2 o superior.
Variables
Variables obligatorias
Ninguna, este rol funcionará con las opciones predeterminadas.
Variables opcionales
opt_openssh_architecture
: La arquitectura de Windows, debe establecerse en32
o64
(predeterminado:64
).opt_openssh_firewall_profiles
: Los perfiles de firewall para permitir tráfico SSH entrante (predeterminado:dominio,privado
).opt_openssh_install_path
: El directorio para instalar los binarios de OpenSSH (predeterminado:C:\Program Files\OpenSSH
).opt_openssh_pubkeys
: Una cadena o lista de cadenas para agregar al archivoauthorized_keys
del usuario, por defecto no se agregarán claves. Siopt_openssh_shared_admin_key
esTrue
, estas claves no afectarán la autenticación de los usuarios administradores.opt_openssh_setup_service
: Si se deben instalar los componentes del servicio sshd o solo quedarse con los ejecutables del cliente (predeterminado:True
).opt_openssh_skip_start
: No iniciará los serviciossshd
yssh-agent
ni los establecerá para que inicien automáticamente (predeterminado:False
).opt_openssh_temp_path
: El directorio temporal para descargar el zip y los archivos extraídos (predeterminado:C:\Windows\TEMP
).opt_openssh_url
: Establece la ubicación de descarga del zip de OpenSSH, si se omite, se tomará del repositorio de GitHub.opt_openssh_version
: Establece una versión específica para descargar de GitHub, esto solo es válido cuandoopt_openssh_url
no está definido (predeterminado:latest
).opt_openssh_zip_file
: La ruta a un archivo zip de lanzamiento de OpenSSH que se usará para instalar OpenSSH. Esto se usará en lugar deopt_openssh_url
si se define yopt_openssh_zip_remote_src
controla si la ruta es local al controlador o local al host de Windows.opt_openssh_zip_remote_src
: (predeterminado:False
)
También puedes personalizar los siguientes valores de sshd_config:
opt_openssh_port
: Se alinea conPort
, el puerto en el que el servicio SSH escuchará (predeterminado:22
).opt_openssh_pubkey_auth
: Se alinea conPubkeyAuthentication
, si el servicio SSH permitirá autenticación con claves SSH (predeterminado:True
).opt_openssh_password_auth
: Se alinea conPasswordAuthentication
, si el servicio SSH permitirá autenticación con contraseñas (predeterminado:True
).opt_openssh_shared_admin_key
: Establecer enTrue
para que los administradores utilicen una clave de autorización compartida en__PROGRAMDATA__/ssh/administrators_authorized_keys
. Establecer enFalse
para asegurarse de que%USER_PROFILE%\.ssh\authorized_keys
se use para todos los usuarios (predeterminado:False
).
Puedes personalizar las opciones de la shell para controlar cómo el servicio sshd inicia una nueva shell:
opt_openssh_default_shell
: Sobrescribe la shell predeterminada establecida por la instalación de OpenSSH. Este debe ser la ruta absoluta a un ejecutable que quieras ejecutar al iniciar una sesión SSH.opt_openssh_default_shell_command_option
: Establece los argumentos usados al invocar la shell; esto no debe ser ajustado en circunstancias normales.opt_openssh_default_shell_escape_args
: Omite la escape automática de argumentos al invocar la shell.opt_openssh_powershell_subsystem
: Establece el subsistema para la remoción de Powershell; debe ser una ruta 8.3 como:C:\PROGRA~1\POWERS~1\7\pwsh.exe
(predeterminado:undefined
).
Variables de salida
Ninguna.
Dependencias de rol
Ninguna.
Ejemplo de Playbook
- name: instalar Win32-OpenSSH con las configuraciones predeterminadas
hosts: windows
gather_facts: no
roles:
- jborean93.win_openssh
- name: instalar una versión específica de Win32-OpenSSH en una carpeta personalizada
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: solo instalar los componentes del cliente de Win32-OpenSSH
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_openssh
opt_openssh_setup_service: False
Pruebas
Para probar este rol, ve a la carpeta tests y ejecuta vagrant up
. Esto levantará un host de Windows Server 2019 para probar el rol. Si el host ya está en línea, ejecutar vagrant provision
volverá a ejecutar las pruebas.
Pendientes
Ninguno - se aceptan solicitudes de funciones.
ansible-galaxy install jborean93.win_openssh