jborean93.win_chocolatey_server
Rol de Ansible win_chocolatey_server
Instala Chocolatey Server en un host de Windows.
Nota: Este rol ha sido probado en chocolatey.server 0.2.5, se espera que versiones más nuevas funcionen, pero no hay garantías.
Con las opciones predeterminadas, este rol hará lo siguiente:
- Instalar el paquete
chocolatey.server
enC:\tools\chocolatey.server
- Instalar varias características de IIS requeridas para el servidor Chocolatey
- Crear un grupo de aplicaciones web de IIS llamado
chocolatey_server_app_pool
- Crear un sitio web de IIS llamado
chocolatey_server_site
con un enlace http en el puerto80
- Regla de firewall para permitir tráfico en el puerto
80
para los perfilesdominio
yprivado
También se pueden configurar las siguientes opciones como parte del rol, pero requieren que se establezcan algunas variables opcionales:
- Establecer un token API para el servidor Chocolatey.
- Especificar usuarios y su hash de contraseña SHA1 para la autenticación básica.
- Crear un enlace HTTPS para el sitio con un certificado existente o autofirmado.
- Especificar la ruta o URL del paquete
chocolatey
para configurar el scriptinstall.ps1
del servidor. - Especificar el tamaño máximo de paquete permitido en el servidor.
Quiero agradecer a kkolk por la excelente entrada de blog que me ayudó a escribir este rol. Puedes leer la entrada aquí.
Para agregar nuevos paquetes a la instalación del servidor Chocolatey, copia el archivo .nupkg en {{ opt_chocolatey_server_path }}\chocolatey.server\App_Data\Packages
y el servidor detectará el archivo.
Nota: Primero necesitas activar el observador de archivos navegando a http://server/chocolatey/Packages
al menos una vez, cuando el grupo de aplicaciones de IIS esté activo. Cualquier reinicio de recycles del pool requiere que hagas esto nuevamente antes de que se detecten paquetes en este directorio.
Requisitos
- Windows Server 2008 R2 o superior.
- Cliente Chocolatey debe estar instalado en el host remoto si no puede acceder a Internet.
Variables
Variables Obligatorias
Ninguna, este rol se ejecutará con las opciones predeterminadas establecidas.
Variables Opcionales
opt_chocolatey_server_api_token
: El token de API que se usa al subir nuevos paquetes al servidor. Si no se especifica, se usará el token predeterminado del paquetechocolatey.server
.opt_chocolatey_server_credentials
: Diccionario de nombres de usuario y hashes de contraseñas para especificar como credenciales de autenticación básica. La clave es elnombre de usuario
y el valor es un hash SHA1 en mayúsculas de lacontraseña
. Si no se establece, se desactiva la autenticación básica y se permite el acceso anónimo.opt_chocolatey_server_firewall_profiles
: Los perfiles de firewall que se usarán para permitir acceso al Servidor Chocolatey (predeterminado:dominio,privado
). Esto puede ser una combinación dedominio
,privado
y/opúblico
.opt_chocolatey_server_http_port
: El puerto a utilizar para el acceso http (predeterminado:80
).opt_chocolatey_server_https_port
: El puerto a utilizar para el acceso https, por defecto no se crea ningún enlace https a menos que se especifique.opt_chocolatey_server_https_certificate
: El huella de certificado que se usará para el enlace HTTPS, si no se especifica, se utilizará el valor predeterminado.opt_chocolatey_server_max_package_size
: El tamaño máximo permitido, en bytes, de un paquete que puede almacenarse en el servidor (predeterminado:2147483648
).opt_chocolatey_server_path
: El directorio raíz donde se instala el paquetechocolatey.server
(predeterminado:C:\tools
).opt_chocolatey_server_source
: La ubicación de origen del paquete chocolatey.server (predeterminado:https://chocolatey.org/api/v2/
). Puede ser el nombre/url de un repositorio Nuget o una ruta local que contenga el archivo nupkg.
Para configurar el servidor Chocolatey y crear un script install.ps1
y obtener el archivo del instalador del repositorio en lugar de Internet, descarga el archivo chocolatey nupkg y establece una de las siguientes dos variables que apunten a este archivo:
opt_chocolatey_server_chocolatey_path
: La ruta accesible desde el host remoto al archivo nupkg de Chocolatey.opt_chocolatey_server_chocolatey_url
: La URL accesible desde el host remoto al archivo nupkg de Chocolatey.
Si ninguno de estos valores se establece, el script install.ps1
de este servidor se configurará por defecto para usar el script de instalación público en el sitio de Chocolatey.
Variables de Salida
Estas variables se establecen como un hecho del host con set_fact
durante la ejecución.
Pueden ser utilizadas por cualquier rol o tarea posterior para ese host.
out_chocolatey_server_https_certificate
: Si se crea un enlace https con un certificado autofirmado, este es el hash del certificado creado.
Dependencias del Rol
Ninguna
Ejemplo de Playbook
- name: instalar Chocolatey Server con las opciones predeterminadas
hosts: windows
gather_facts: no
roles:
- jborean93.win_chocolatey_server
- name: configurar Chocolatey con escucha HTTPS en ruta personalizada y habilitar autenticación básica
hosts: windows
gather_facts: no
vars:
opt_chocolatey_server_api_token: eb82582c-2214-4ce9-9689-8c823ae33e45
opt_chocolatey_server_credentials:
build-team: '{{ build_team_pass | hash("sha1") | upper }}'
test-team: '{{ test_team_pass | hash("sha1") | upper }}'
build-team: '{{ build_team_pass | hash("sha1") | upper }}'
opt_chocolatey_server_http_port: 8080
opt_chocolatey_server_https_port: 8443
opt_chocolatey_server_path: D:\tools
opt_chocolatey_server_chocolatey_url: https://internalrepo.domain/chocolatey.0.10.11.nupkg
roles:
- jborean93.win_chocolatey_server
post_tasks:
- name: mostrar el hash del certificado usado para los enlaces HTTPS
debug:
var: out_chocolatey_server_https_certificate
Pendientes
Ninguno - se aceptan solicitudes de funciones.
ansible-galaxy install jborean93.win_chocolatey_server