#Ansible
- Preface
- Who is this book for?
- Introduction
- How to Install Ansible: Step-by-step Guide to Setup Ansible on your development machine
- Local Infrastructure Development: Ansible and Vagrant
- Understanding Ansible Architecture
- The Basics of Ansible for Windows Configuration Management
- Windows Modules in Ansible
- Troubleshooting Common Issues
- Implementing DevOps Practices
- Testing in Ansible
- Community Engagement and Contribution Paths
- Appendix
Todos los derechos reservados. Ninguna parte de este libro puede reproducirse, almacenarse en un sistema de recuperación ni transmitirse de ninguna forma ni por ningún medio sin el permiso previo por escrito del editor, excepto en el caso de citas breves incluidas en artículos o reseñas críticas.
Se han hecho todos los esfuerzos posibles en la preparación de este libro para garantizar la exactitud de la información presentada. Sin embargo, la información contenida en este libro se vende sin garantía, ya sea expresa o implícita. Ni el autor, ni DeployView Publishing ni sus comerciantes y distribuidores serán responsables de los daños causados o presuntamente causados directa o indirectamente por este libro.
DeployView Publishing se ha esforzado por proporcionar información sobre marcas comerciales de todas las empresas y productos mencionados en este libro mediante el uso apropiado de mayúsculas. Sin embargo, DeployView Publishing no puede garantizar la exactitud de esta información.
Publicado por primera vez: 2024
Publicado por
ImplementarVer publicación
Birmingham, Reino Unido
ISBN 978-1-3999-8635-9
Dedicado a #
Mi esposa y mi hija.
Acuse de recibo #
Me gustaría expresar mi gratitud a todos los que me han mostrado su amor y aliento incondicional a lo largo de mi vida personal y profesional. Su apoyo fue crucial para completar este libro. Agradezco su ayuda con este esfuerzo y su continuo interés en mi carrera.
Sobre el autor #
Shafiq Alibhai es un desarrollador que ha trabajado en desarrollo web y desarrollo para empresas con entre uno y miles de servidores. el tambien gestiona muchos servidores virtuales para los servicios ofrecidos por DeployView Limited y tiene ha estado utilizando Ansible para gestionar la infraestructura desde 2016.
Descargo de responsabilidad #
Cualquier opinión o punto de vista personal que exprese en este libro es mío y no de Red Hat Inc.
Ansible®, Red Hat® Ansible® Automation Platform, Red Hat®, JBoss®, OpenShift®, Fedora®, Hibernate®, CloudForms®, RHCA®, RHCE®, RHCSA®, Ceph®, Gluster®, el logotipo de Red Hat® y el logotipo “A” en un círculo sombreado son marcas comerciales o marcas comerciales registradas de Red Hat, Inc. o sus subsidiarias en los Estados Unidos y otros países. https://www.redhat.com/en/about/brand/standards/trademarks
Linux es una marca registrada de Linus Torvalds.
Certified Kubernetes®, Certified Kubernetes Administrator®, Certified Kubernetes Application Developer®, Certified Kubernetes Security Specialist®, CloudEvents®, CloudNativeCon®, CNCF®, containerd®, etcd®, KubeCon®, Kubernetes®, LSB®, Open Container Initiative®, Prometheus®, The Linux Foundation®, Xen Project®, logotipo de Cloud Native Computing Foundation, Kubernetes y Cloud Native Associate and Design (color), OpenTelemetry y Design (blanco y negro), Fluentd y Design of a Carrier Pigeon (color - horizontal) son marcas comerciales registradas de The Linux Foundation en los Estados Unidos y/u otros países. Las marcas CRI-O™, LF™, LinuxCon™, Linux Foundation™, OpenGitOps™, OpenTelemetry™, Open Container Format™, Open Virtualization Alliance™, Virtual Kubelet™, World of Open Source™ tienen registros pendientes o marcas comerciales en uso de The Linux Foundation en los Estados Unidos y/u otros países. El logotipo de la Fundación Linux. Registro de EE. UU. No. 5166331 (Diseño geométrico de la Fundación Linux (blanco y negro)), logotipo de la Fundación Linux. Registro de EE. UU. No. 5166330 (diseño geométrico de la Fundación Linux (color)), logotipo de Kubernetes certificado. Registro de EE. UU. No. 5734733, logotipo del Acuerdo de licencia de datos comunitarios. Registro de EE. UU. No. 5852265, logo fluido. Registro de EE. UU. No. 4734498, logotipo de Kubernetes. Registro de EE. UU. No. 4816320, asociado y diseño de Kubernetes y Cloud Native (color) Registro de EE. UU. 6949718, SupplyChainSecurity and Design (blanco y negro) Registro de EE. UU. No. 6949717 son marcas comerciales registradas de los siguientes logotipos en los Estados Unidos y/u otros países. https://www.linuxfoundation.org/trademark-usage/
UNIX® es una marca registrada de The Open Group.
Los logotipos de Python, PyCon, PyLadies y Python (en varias variantes) son marcas comerciales registradas de Python Software Foundation. https://www.python.org/psf/trademarks/
Azure, Microsoft®, Microsoft® 365, Microsoft Teams, PowerPoint®, Outlook®, OneDrive®, SharePoint®, The Microsoft ® Store, Windows® y Windows® 10, Windows, Vista, XP, NT son marcas comerciales registradas o marcas comerciales de Microsoft Corporation en los EE. UU. y otros países. https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks
Apple, Mac, Mac OS, Macintosh, Pages y TrueType son marcas comerciales registradas o marcas comerciales de Apple Computer, Inc. en los Estados Unidos y/u otros países. https://www.apple.com/legal/intellectual-property/trademark/appletmlist.html
IBM es una marca registrada de International Business Machines Corporation. https://www.ibm.com/legal/us/en/copytrade.shtml
Celeron, Celeron Inside, Centrino, logotipo de Centrino, Core Inside, Intel Core, Intel Inside, logotipo de Intel Inside, Itanium, Itanium Inside, Pentium, Pentium Inside, VTune, Xeon y Xeon Inside son marcas comerciales o marcas comerciales registradas de Intel Corporation o sus subsidiarias en los Estados Unidos y otros países. https://www.intel.com/content/www/us/en/legal/trademarks.html
Amazon Web Services, AWS, el logotipo Desarrollado por AWS y cualquier otra marca de AWS utilizada en este libro son marcas comerciales de Amazon.com, Inc. o sus afiliados. Este libro no cuenta con la aprobación ni está afiliado a Amazon de ninguna manera https://aws.amazon.com/trademark-guidelines/
Google, navegador Chrome™, proyecto de código abierto Chromium™, circuito integrado Cloud TPU™, plataforma de infraestructura GCP™, servicio de software GKE™, servicio de correo electrónico Gmail™, plataforma Google App Engine™, servicio Google Cloud Platform™, servicio Google Cloud Storage™, servicios empresariales Google Cloud™, servicio Google Compute Engine™, sistema de gestión de contenedores Google Container Engine™, interfaz Google Dashboard™, plataforma de organización y almacenamiento de fotografías Google Photos™, motor de búsqueda o búsqueda de Google™, lenguaje de programación Go™, plataforma de aprendizaje automático de código abierto Kubeflow™, Optimized Chip™ El chip procesador, el protocolo SPDY™ y la comunidad de vídeos YouTube™ son marcas comerciales de Google LLC y este libro no cuenta con el respaldo ni está afiliado a Google de ninguna manera. https://about.google/brand-resource-centre/
HashiCorp®, Vagrant, Packer, Terraform, los productos HashiCorp, el nombre y el logotipo son marcas comerciales de The HashiCorp, Inc. https://www.hashicorp.com/trademark-policy
Todas las demás marcas comerciales son propiedad de sus respectivos dueños.
Prefacio#
por confirmar
¿Para quién es este libro?#
por confirmar
Entorno de desarrollo #
El código proporcionado en este libro es compatible con cualquier editor de texto o entorno de desarrollo integrado (IDE). Un IDE es una herramienta de software que ofrece funciones integrales para el desarrollo de software, como edición de código, depuración, compilación y gestión de proyectos.
El entorno base para reproducir los ejemplos de código de este libro:
Un editor de texto: gráfico (VS Code, Atom, Geany, etc.) o terminal (VIM, Emacs, Nano, Pico, etc.). Una estación de trabajo con los paquetes ansible o ansible-core instalados. Recomendamos utilizar Visual Studio Code como IDE preferido, que se puede descargar gratuitamente en https://code.visualstudio.com.
Convenciones utilizadas en el libro #
A lo largo del libro, encontramos numerosos ejemplos y comandos de terminal. El lenguaje Ansible utiliza principalmente formatos YAML e INI para la sintaxis. Cuando no se especifica en el texto, se asume que el formato del archivo es YAML. El código cumple con la última especificación YAML. YAML, conocido por su simplicidad, legibilidad y amplia compatibilidad con lenguajes de programación, permite una representación concisa de estructuras de datos complejas. Se usa ampliamente para archivos de configuración e intercambio de datos, similar a JSON pero con sangría estilo Python y un formato más compacto para listas y declaraciones de diccionario.
El formato INI se utiliza con frecuencia para el inventario y el archivo de configuración de Ansible. Es un formato de archivo de configuración sencillo que utiliza pares clave-valor y secciones para almacenar configuraciones y preferencias de manera legible por humanos.
Muchos comandos de terminal son comandos estándar de Linux, indicados en línea (por ejemplo, ansible [comando]) o en un bloque de código (con o sin números de línea). Por ejemplo:
$ eco Hola mundo
Los comandos de terminal proporcionados siguen las convenciones POSIX y son compatibles con sistemas similares a Unix, incluidos Linux, macOS y BSD. Cada comando asume el uso por parte de una cuenta de usuario estándar cuando tiene el prefijo $ (dólar) o por el usuario raíz cuando tiene el prefijo # (signo numérico).
Cada recurso de Ansible (libro de estrategias, rol, complemento y colección) cumple con las mejores prácticas de Ansible más recientes, validadas con la última versión de Ansible Linter.
Sin embargo, vale la pena señalar que fragmentos de código específicos se apartan intencionalmente de las mejores prácticas para reproducir comportamientos específicos o casos de uso con precisión. Esto garantiza una comprensión integral de Ansible, que abarca técnicas ideales y escenarios del mundo real.
Paquete de códigos e imágenes en colores #
Siga el enlace para descargar el
Paquete de códigos y las imágenes coloreadas del libro: https://github.com/deployview/Ansible-for-Windows
El paquete de códigos para el libro también está alojado en GitHub en https://github.com/deployview/Ansible-for-Windows. En caso de que haya una actualización del código, se actualizará en el repositorio de GitHub existente. Tenemos paquetes de códigos de nuestro rico catálogo de libros y videos disponibles en https://github.com/deployview. ¡Échales un vistazo!
¡Por favor ayuda a mejorar este libro! #
Estamos muy orgullosos de nuestro trabajo en DeployView Publishing y seguimos las mejores prácticas para garantizar la precisión de nuestro contenido y brindar una experiencia de lectura placentera a nuestros suscriptores. Nuestros lectores son nuestros espejos y utilizamos sus aportes para reflexionar y mejorar los errores humanos, si los hubiere, que puedan haber ocurrido durante los procesos de publicación involucrados. Para permitirnos mantener la calidad y ayudarnos a comunicarnos con los lectores que puedan tener dificultades debido a errores imprevistos, escríbanos a: errata@deployview.com Apreciamos mucho su apoyo, sugerencias y comentarios.
Se publican nuevas revisiones de este libro periódicamente (consulte el libro actual estadísticas de publicación a continuación). Si cree que una sección en particular necesita mejorar o encuentra falta algo, publique un problema en la cola de problemas de Ansible para Windows (en GitHub) o contácteme a través de Twitter (@deployview). Todos los problemas conocidos con Ansible para Windows se agregarán en la página en línea del libro. Página de erratas. Información sobre la versión actual del libro publicado • Versión actual del libro: 1.0 • Versión actual de Ansible a partir de la última publicación: 9.6.0 (núcleo 2.16.7) • Fecha actual a la última publicación: 17 de junio de 2024
Piratería #
Si encuentra copias ilegales de nuestros trabajos en cualquier forma en Internet, le agradeceríamos que nos proporcione la dirección de la ubicación o el nombre del sitio web. Comuníquese con nosotros al business@deployview.com con un enlace al material.
Reseñas #
Por favor deja una reseña. Una vez que haya leído y utilizado este libro, ¿por qué no deja una reseña en el sitio donde lo compró? Los lectores potenciales podrán entonces ver y utilizar su opinión imparcial para tomar decisiones de compra. En DeployView Publishing podemos entender lo que piensa acerca de nuestros productos y nuestros autores pueden ver sus comentarios sobre su libro. ¡Gracias!
Únase al espacio Discord de nuestro libro #
Únase al espacio de trabajo de Discord del libro para conocer las últimas actualizaciones, ofertas, novedades tecnológicas en todo el mundo, nuevos lanzamientos y sesiones con los autores:
https://discord.deployview.com.com
Introducción#
“Ansible para Windows: una guía completa para la administración de la configuración de Windows usando Ansible” está dirigido a lectores que desean aprovechar el poder de Ansible en sus tareas de TI diarias, particularmente con respecto a la administración de entornos Windows. El libro profundizará en varios aspectos del uso de Ansible como solución para la gestión de la configuración en Windows, cubriendo temas como la instalación, configuración y uso, así como funciones avanzadas y mejores prácticas.
Al final de este libro, estará equipado con todas las habilidades y conocimientos necesarios para administrar su infraestructura de Windows utilizando Ansible. Si usted es administrador de sistemas, desarrollador o simplemente alguien que busca formas de mejorar sus procesos de TI, esta guía completa está diseñada para satisfacer sus necesidades.
¿Cuál es el propósito de la Gestión de la Configuración?#
Definir qué significa un modelo “push” en la gestión de configuración#
por confirmar.
¿Qué es ansible?#
Ansible es una herramienta de automatización de código abierto desarrollada por Red Hat, que se centra en la gestión de la configuración, la implementación de aplicaciones y la orquestación de tareas de TI complejas. Fue creado en 2013 por Michael DeHaan. Proporciona un enfoque simple, sin agentes e idempotente para la gestión de infraestructura, lo que permite a los usuarios automatizar tareas como la implementación de aplicaciones, la configuración del sistema y la orquestación de flujos de trabajo complejos. Con su diseño intuitivo y potentes capacidades, Ansible se ha convertido en una de las herramientas más populares en los entornos de TI modernos para la gestión de la configuración de Windows.
Principios básicos de Ansible#
Ansible opera basándose en varios principios básicos que lo distinguen de otras herramientas de automatización:
Arquitectura sin agentes#
A diferencia de muchas otras herramientas de gestión de configuración, Ansible no requiere la instalación de ningún agente de software en los nodos gestionados. Esta arquitectura sin agentes se logra mediante el uso de SSH (Secure Shell) o WinRM (Administración remota de Windows) estándar para la comunicación con las máquinas de destino. La naturaleza sin agentes de Ansible simplifica la configuración y el mantenimiento, reduce los gastos generales y mejora la seguridad al minimizar la superficie de ataque.
Lenguaje declarativo#
Ansible utiliza un lenguaje declarativo llamado YAML (Yet Another Markup Language) para definir configuraciones del sistema y tareas de automatización. En un enfoque declarativo, el usuario especifica el estado deseado del sistema y Ansible se encarga de ejecutar los pasos necesarios para lograr ese estado. Esto contrasta con la programación imperativa, donde el usuario necesitaría definir explícitamente cada paso necesario para alcanzar el estado deseado.
Idempotencia#
Ansible garantiza la idempotencia, lo que significa que aplicar el mismo conjunto de configuraciones varias veces no producirá efectos secundarios no deseados. Cada operación está diseñada para llevar el sistema al estado deseado sin causar interrupciones si el estado ya se ha alcanzado. Esta característica es crucial para mantener la coherencia y la confiabilidad en entornos a gran escala.
Legibilidad humana#
Una de las fortalezas clave de Ansible es su énfasis en la legibilidad humana. Los manuales, que son colecciones de tareas escritas en YAML, están diseñados para que los usuarios técnicos y no técnicos los entiendan fácilmente. Esta legibilidad facilita la colaboración, ya que los miembros del equipo pueden revisar y comprender rápidamente los scripts de automatización sin necesidad de aprender un lenguaje de programación complejo.
Extensibilidad#
Ansible es altamente extensible mediante el uso de módulos y complementos. Los módulos son unidades discretas de código que realizan tareas específicas, como administrar servicios, manejar archivos o interactuar con API. Los complementos amplían la funcionalidad de Ansible al permitir a los usuarios agregar lógica personalizada, mejorar la gestión de inventario o integrarse con sistemas externos. Esta extensibilidad garantiza que Ansible pueda adaptarse a una amplia gama de casos de uso y entornos.
Componentes ansibles#
Para comprender cómo funciona Ansible, es fundamental familiarizarse con sus componentes clave:
Nodo de control#
El nodo de control es la máquina donde se instala Ansible y desde la cual se ejecutan las tareas de automatización. Este nodo contiene las herramientas, los módulos y los manuales de estrategia de la línea de comandos de Ansible. El nodo de control organiza la ejecución de tareas en los nodos administrados, pero no requiere que se instale ningún agente en esos nodos.
Nodos administrados#
Los nodos administrados son las máquinas de destino que administra Ansible. Estos nodos pueden ser servidores físicos, máquinas virtuales o instancias en la nube. Ansible se comunica con nodos administrados mediante SSH para sistemas basados en Unix o WinRM para sistemas Windows. Los nodos gestionados no requieren ningún software especial aparte de las herramientas estándar de acceso remoto.
Inventario#
El inventario es un archivo o una fuente dinámica que enumera los nodos administrados y su agrupación. El archivo de inventario está escrito en un formato de texto simple y puede ser estático o dinámico. Permite a los usuarios organizar nodos en grupos, asignar variables y definir configuraciones específicas del host. Los inventarios dinámicos se generan mediante scripts o fuentes externas y son particularmente útiles para entornos con infraestructura que cambia con frecuencia.
Libros de jugadas#
Los playbooks son el corazón de la automatización de Ansible. Escritos en YAML, los manuales definen una serie de tareas que describen el estado deseado de los nodos administrados. Cada libro de jugadas consta de una o más jugadas y cada jugada está dirigida a un grupo específico de anfitriones. Las tareas dentro de una obra se ejecutan de forma secuencial, asegurando que la configuración del sistema avance de forma controlada.
Módulos#
Los módulos son los componentes básicos de las tareas de Ansible. Cada módulo realiza una función específica, como administrar paquetes, servicios, archivos o usuarios. Ansible incluye una amplia gama de módulos integrados y los usuarios también pueden crear módulos personalizados para ampliar la funcionalidad. Los módulos se ejecutan en los nodos administrados y devuelven información sobre el resultado de la tarea, lo que permite a Ansible tomar decisiones basadas en los resultados.
Roles#
Los roles son una forma de organizar manuales y conjuntos de tareas reutilizables. Un rol es una colección de tareas, variables, plantillas y otros componentes que se pueden compartir y reutilizar fácilmente en diferentes manuales. Al utilizar roles, los usuarios pueden modularizar sus configuraciones, haciéndolas más mantenibles y escalables.
Variables#
Las variables en Ansible se utilizan para almacenar valores dinámicos a los que se puede hacer referencia en manuales, tareas y plantillas. Permiten a los usuarios personalizar configuraciones basadas en diferentes entornos, hosts u otras condiciones. Las variables se pueden definir en el inventario, los libros de jugadas o los archivos externos, y proporcionan una forma flexible de gestionar configuraciones complejas.
Plantillas#
Las plantillas en Ansible son archivos que contienen marcadores de posición para variables y se procesan para generar contenido dinámico. Las plantillas están escritas en Jinja2, un potente motor de plantillas para Python. Se utilizan comúnmente para generar archivos de configuración, scripts y otro contenido basado en texto que debe personalizarse en función de las variables definidas en los manuales.
Enfoque de Ansible para la gestión de la configuración de Windows#
El soporte de Ansible para sistemas Windows ha evolucionado significativamente, convirtiéndolo en una poderosa herramienta para administrar entornos Windows. Aunque inicialmente fue diseñado para sistemas basados en Unix, la arquitectura modular y la extensibilidad de Ansible han permitido una integración perfecta con Windows.
WinRM para comunicación#
Ansible usa WinRM para comunicarse con los nodos administrados de Windows. WinRM es una tecnología de Microsoft que permite la administración y automatización remota de sistemas Windows mediante servicios web. Al aprovechar WinRM, Ansible puede ejecutar tareas en nodos de Windows sin necesidad de agentes adicionales, manteniendo su arquitectura sin agentes.
Módulos de Windows#
Ansible incluye un conjunto completo de módulos diseñados específicamente para administrar sistemas Windows. Estos módulos cubren una amplia gama de tareas, incluida la administración de servicios, paquetes, usuarios, grupos, configuraciones de registro y más. Algunos módulos clave de Windows incluyen:
win_feature: Administra las funciones y roles de Windows.win_service: Gestiona los servicios de Windows.win_package: administra paquetes de Windows utilizando las herramientas de administración de paquetes integradas.win_user: Administra cuentas de usuario de Windows.win_group: Gestiona grupos de Windows.win_regedit: Administra la configuración del registro de Windows.
Estos módulos proporcionan la funcionalidad necesaria para automatizar la configuración y gestión de sistemas Windows de forma eficaz.
Integración de PowerShell#
PowerShell es un potente lenguaje de programación y marco de automatización para Windows. Ansible aprovecha PowerShell para ejecutar comandos y scripts en nodos administrados de Windows. Al integrarse con PowerShell, Ansible puede aprovechar las amplias capacidades y bibliotecas disponibles en el ecosistema de Windows. Los módulos win_shell y win_command permiten a los usuarios ejecutar comandos y scripts de PowerShell arbitrarios como parte de sus flujos de trabajo de automatización.
Manejo de desafíos específicos de Windows#
La administración de sistemas Windows presenta desafíos únicos, como lidiar con diferentes mecanismos de autenticación, administrar la configuración del registro y manejar las complejidades de los servicios y características de Windows. Ansible aborda estos desafíos a través de sus módulos y funciones dedicados de Windows. Por ejemplo, el módulo win_credssp permite la autenticación segura utilizando el protocolo Credential Security Support Provider (CredSSP), mientras que el módulo win_reboot garantiza el manejo adecuado de los reinicios del sistema durante las tareas de automatización.
Casos de uso de Ansible#
La versatilidad de Ansible lo hace adecuado para una amplia gama de casos de uso en automatización de TI y gestión de configuración. A continuación se muestran algunos escenarios comunes en los que Ansible sobresale:
Gestión de configuración#
Ansible simplifica la gestión de la configuración al proporcionar una forma consistente y repetible de definir y hacer cumplir las configuraciones del sistema. Ya sea que administre sistemas Linux o Windows, Ansible garantiza que las configuraciones se apliquen de manera uniforme en todos los nodos administrados. Esta capacidad es crucial para mantener el cumplimiento, reducir la desviación de la configuración y garantizar que los sistemas estén configurados de acuerdo con los estándares organizacionales.
Implementación de aplicaciones#
La implementación de aplicaciones en múltiples entornos puede ser compleja y propensa a errores. Ansible agiliza la implementación de aplicaciones al automatizar todo el proceso, desde la instalación de la infraestructura hasta la instalación y configuración de la aplicación. Con Ansible, los usuarios pueden definir el estado deseado de la aplicación y sus dependencias, asegurando que las implementaciones sean consistentes, repetibles y escalables.
Integración continua e implementación continua (CI/CD)#
Ansible desempeña un papel vital en los procesos de CI/CD al automatizar los pasos involucrados en la creación, prueba e implementación de software. Al integrarse con herramientas populares de CI/CD, como Jenkins, GitLab CI y GitHub Actions, Ansible permite una automatización perfecta de todo el ciclo de vida de entrega de software. Esta integración ayuda a los equipos a lograr implementaciones más rápidas y confiables, lo que reduce el tiempo de comercialización de nuevas funciones y actualizaciones.
Aprovisionamiento en la nube#
Con la creciente adopción de servicios en la nube, el aprovisionamiento y la gestión de la infraestructura de la nube se ha convertido en una tarea crítica para los equipos de TI. Ansible proporciona módulos para interactuar con los principales proveedores de la nube, como AWS, Azure y Google Cloud. Estos módulos permiten a los usuarios automatizar la creación, configuración y gestión de recursos de la nube, lo que facilita escalar la infraestructura, gestionar los costos y garantizar la coherencia en todos los entornos de la nube.
Seguridad y cumplimiento#
Garantizar la seguridad y el cumplimiento de los sistemas de TI es una máxima prioridad para las organizaciones. Ansible ayuda a lograr esto mediante la automatización de tareas relacionadas con la seguridad, como la administración de parches, el control de acceso y usuarios, y las auditorías de configuración. Al definir las políticas de seguridad como código, las organizaciones pueden hacer cumplir los estándares de seguridad de manera consistente en todos los sistemas y responder rápidamente a las amenazas emergentes.
Automatización de red#
Ansible extiende sus capacidades de automatización a dispositivos de red, permitiendo a los equipos de TI administrar configuraciones de red
, implementar cambios y garantizar el cumplimiento. Los módulos de red admiten una amplia gama de dispositivos de diferentes proveedores, lo que permite a los usuarios automatizar tareas como configurar interfaces, administrar VLAN y aplicar políticas de seguridad. La automatización de la red con Ansible reduce la intervención manual, minimiza los errores de configuración y mejora la confiabilidad de la red.
Resumen#
Ansible es una herramienta de automatización potente y versátil que se ha convertido en una parte esencial del panorama de TI moderno. Su simplicidad, arquitectura sin agentes y amplio conjunto de funciones lo convierten en una opción ideal para la gestión de la configuración, la implementación de aplicaciones y una amplia gama de tareas de automatización. Con soporte dedicado para sistemas Windows y un ecosistema creciente de módulos y complementos, Ansible proporciona las capacidades necesarias para administrar entornos complejos y diversos de manera efectiva.
Las organizaciones que adoptan Ansible pueden esperar lograr una mayor eficiencia, una mejor colaboración, una mayor coherencia y ahorros de costos significativos. A medida que los entornos de TI sigan creciendo en complejidad, la necesidad de soluciones de automatización confiables y escalables como Ansible será cada vez más crítica. Al aprovechar las fortalezas de Ansible y adoptar la automatización, las organizaciones pueden mantenerse a la vanguardia en el panorama competitivo e impulsar la innovación en sus operaciones de TI.
En los siguientes capítulos, profundizaremos en cómo se puede usar Ansible para la administración de la configuración de Windows, explorando temas avanzados, mejores prácticas y ejemplos del mundo real para ayudarlo a dominar el arte de automatizar entornos Windows con Ansible.
¿Quién debería utilizar Ansible?#
Ansible es una herramienta versátil que puede ser utilizada por una amplia gama de organizaciones y profesionales de TI que buscan optimizar sus operaciones de TI. Si es administrador de sistemas, desarrollador o incluso un usuario sin conocimientos técnicos que busca formas de simplificar sus tareas de TI, Ansible ofrece una solución adecuada. Estos son algunos de los grupos clave que pueden beneficiarse del uso de Ansible:
Administradores del sistema: los administradores del sistema son responsables de administrar y mantener la infraestructura de TI, incluidos servidores, redes y estaciones de trabajo. Ansible puede ayudar a automatizar tareas como la instalación de software, la gestión de la configuración y la gestión de parches, liberando tiempo para iniciativas más estratégicas.
Profesionales de DevOps: los profesionales de DevOps trabajan para cerrar la brecha entre los equipos de desarrollo y operaciones promoviendo la colaboración, la comunicación y la entrega continua de aplicaciones. La capacidad de Ansible para automatizar todo el ciclo de vida de desarrollo de software lo convierte en una opción ideal para los profesionales de DevOps.
Desarrolladores: los desarrolladores pueden utilizar Ansible para automatizar sus procesos de desarrollo, incluida la implementación, las pruebas y el monitoreo de aplicaciones. Esto no sólo acelera la entrega de aplicaciones sino que también ayuda a garantizar la coherencia y la confiabilidad en diferentes entornos.
Arquitectos de infraestructura: los arquitectos de infraestructura son responsables de diseñar e implementar infraestructuras de TI escalables y resistentes. La flexibilidad y la capacidad de Ansible para gestionar infraestructura física y virtual la convierten en una opción atractiva para estos profesionales.
Profesionales de la seguridad: los profesionales de la seguridad pueden utilizar Ansible para automatizar tareas de seguridad como el escaneo de vulnerabilidades, la gestión de parches y la auditoría de cumplimiento. Esto ayuda a garantizar que los sistemas se mantengan actualizados y seguros contra posibles amenazas.
Arquitectos de la nube: los arquitectos de la nube que diseñan e implementan soluciones basadas en la nube pueden usar Ansible para administrar la infraestructura como código, garantizando coherencia y repetibilidad en entornos locales y de nube. Este enfoque simplifica la migración de aplicaciones y servicios a nubes públicas o privadas, reduciendo costos y mejorando la escalabilidad.
Ingenieros de redes: los ingenieros de redes responsables de administrar infraestructuras de redes complejas pueden utilizar Ansible para automatizar las tareas de administración de configuración, monitoreo y resolución de problemas. Al optimizar estos procesos, los ingenieros de redes pueden minimizar el tiempo de inactividad y garantizar un rendimiento óptimo.
Proveedores de servicios gestionados (MSP): los MSP ofrecen servicios gestionados de TI a empresas de todos los tamaños. Ansible puede ayudar a estos proveedores a optimizar su proceso de prestación de servicios mediante la automatización de tareas rutinarias como actualizaciones de software, copias de seguridad y configuración de seguridad.
Pequeñas y medianas empresas (PYME): las PYME a menudo tienen recursos de TI limitados y necesitan soluciones rentables para administrar su infraestructura. La simplicidad y facilidad de uso de Ansible lo convierten en una opción ideal para estas organizaciones.
Agencias gubernamentales: las agencias gubernamentales suelen tener infraestructuras de TI complejas que requieren estrictas medidas de seguridad. La capacidad de Ansible para automatizar auditorías de cumplimiento y análisis de vulnerabilidades lo convierte en una opción atractiva para estas organizaciones.
Resumen#
Ansible es una herramienta valiosa para personas y organizaciones de diversas industrias. Su simplicidad, potentes funciones y facilidad de uso lo convierten en una opción ideal para administrar su infraestructura de TI con el mínimo esfuerzo. Ya sea administrador de sistemas, desarrollador o usuario no técnico, este libro le proporcionará las habilidades necesarias para aprovechar todo el potencial de Ansible en la gestión de la configuración de Windows.
Por qué debería utilizar Ansible para la gestión de la configuración de Windows#
La gestión de la configuración es un aspecto vital de la infraestructura de TI moderna. Implica gestionar configuraciones, garantizar la coherencia entre entornos y mantener el control de versiones de los mismos. Este proceso ayuda a las organizaciones a reducir los errores manuales, ahorrar tiempo y mejorar la eficiencia general. Ansible ofrece una solución integral para la gestión de la configuración de Windows al permitir a los usuarios automatizar tareas relacionadas con la instalación de software, cambios de configuración, actualizaciones y más. A continuación se detallan algunos beneficios obtenidos al utilizar Ansible para la gestión de la configuración:
Sintaxis simple y curva de aprendizaje sencilla#
La sintaxis de Ansible es simple y fácil de aprender, con un formato de manual basado en YAML. Esto lo hace accesible tanto para administradores de sistemas experimentados como para principiantes en la automatización. Con solo unas pocas líneas de código, puede crear scripts potentes que automaticen tareas complejas en sus entornos.
Mayor eficiencia#
Al automatizar tareas repetitivas y que consumen mucho tiempo, Ansible libera a los equipos de TI para que puedan centrarse en iniciativas más estratégicas. Esta mayor eficiencia conduce a implementaciones más rápidas, reducción del tiempo de inactividad y resolución de problemas más rápida. La automatización también minimiza los errores humanos, asegurando que las tareas se ejecuten de manera consistente y precisa.
Colaboración mejorada#
Los manuales de estrategia legibles por humanos de Ansible facilitan la colaboración entre diferentes equipos, incluidos desarrolladores, operaciones y seguridad. Los playbooks pueden servir como un lenguaje común que todas las partes interesadas comprendan, lo que permite una mejor comunicación y alineación en los procesos de configuración e implementación. Este enfoque colaborativo ayuda a romper los silos y promueve una cultura de responsabilidad compartida.
Consistencia mejorada#
La coherencia es crucial para mantener entornos de TI estables y confiables. Ansible garantiza que las configuraciones se apliquen de manera uniforme en todos los nodos administrados, lo que reduce el riesgo de desviaciones e inconsistencias en la configuración. Esta coherencia se extiende a las implementaciones, donde las aplicaciones y los servicios se implementan de la misma manera en diferentes entornos, lo que genera resultados predecibles.
Escalabilidad#
La arquitectura sin agentes y el diseño modular de Ansible lo hacen altamente escalable. Las organizaciones pueden administrar miles de nodos con un solo nodo de control de Ansible, aprovechando inventarios y roles dinámicos para manejar entornos complejos y de gran escala. Esta escalabilidad garantiza que Ansible pueda crecer junto con las necesidades de infraestructura y automatización de la organización.
Flexibilidad#
La flexibilidad de Ansible le permite adaptarse a una amplia gama de casos de uso y entornos. Ya sea que administre centros de datos locales, infraestructura en la nube o entornos híbridos, Ansible proporciona las herramientas y módulos necesarios para automatizar tareas de manera efectiva. Su extensibilidad a través de módulos y complementos personalizados garantiza que pueda cumplir con los requisitos únicos de cualquier organización.
Ahorro de costos#
Al automatizar las tareas manuales y reducir la necesidad de intervención humana, Ansible ayuda a las organizaciones a ahorrar en costos operativos. La automatización también reduce el riesgo de errores costosos y tiempo de inactividad, lo que contribuye al ahorro de costos generales. Además, Ansible es una solución de código abierto, lo que significa que su uso y distribución son gratuitos. Esto lo convierte en una opción rentable para organizaciones de todos los tamaños que buscan automatizar sus procesos de gestión de infraestructura de TI sin tener que gastar mucho dinero.
Idempotencia#
Ansible garantiza que las tareas se ejecuten de manera consistente, independientemente de si se ejecutan una o varias veces. Esto garantiza que su infraestructura se mantenga estable y confiable a lo largo del tiempo.
Integración con otras herramientas#
Ansible admite varias versiones de Windows, incluidas Windows 7, 8, 10, Server 2003, 2008, 2012, 2016 y 2019. Ansible se integra perfectamente con otras herramientas y tecnologías comúnmente utilizadas en entornos de TI, como Git, Jenkins, Docker, etc. Esto le permite crear flujos de trabajo de automatización de un extremo a otro que abarcan múltiples plataformas y servicios, proporcionando una solución unificada para administrar toda su infraestructura de TI.
Apoyo comunitario y desarrollo continuo#
Ansible cuenta con una gran y activa comunidad de usuarios y desarrolladores que contribuyen al desarrollo continuo del proyecto. Esto garantiza que la plataforma se mantenga actualizada con las últimas tecnologías y estándares, brindándole las mejores herramientas posibles para administrar su entorno Windows.
Soporte multiplataforma#
Ansible admite múltiples sistemas operativos, incluidos Windows, Linux, macOS y más. Esto permite a los administradores gestionar toda su infraestructura de TI desde una única plataforma, lo que reduce la necesidad de herramientas y procesos separados para diferentes plataformas.
Biblioteca de módulos completa#
Ansible proporciona una amplia biblioteca de módulos prediseñados que se pueden utilizar para automatizar diversas tareas en su entorno Windows. Estos módulos cubren una amplia gama de funcionalidades, como instalación de software, cambios de configuración, gestión de usuarios y más. Con esta extensa biblioteca de módulos, puede automatizar rápida y fácilmente procesos complejos sin escribir scripts personalizados desde cero.
Resumen#
Ansible ofrece una solución potente y versátil para la gestión de la configuración de Windows. Su arquitectura sin agentes, sintaxis simple, soporte multiplataforma, biblioteca de módulos completa, capacidades de integración y soporte comunitario lo convierten en una opción ideal para administrar su infraestructura de TI. Al automatizar tareas repetitivas y garantizar la coherencia en todos los entornos, Ansible puede ayudarle a ahorrar tiempo, reducir errores y mejorar la eficiencia general en su entorno Windows. En los siguientes capítulos, profundizaremos en el uso de Ansible para la administración de configuración de Windows, explorando varios módulos, guías y mejores prácticas para aprovechar al máximo esta poderosa plataforma de automatización.
Cuándo utilizar Ansible para la gestión de la configuración de Windows#
La necesidad de gestionar la configuración de Windows#
Traditionally, IT administrators have used tools like Group Policy, PowerShell, or System Centre Configuration Manager (SCCM) to manage configurations on Windows systems. Sin embargo, a medida que las organizaciones adoptan un enfoque más ágil para la gestión de la infraestructura de TI, necesitan una solución más flexible y escalable que pueda automatizar tareas repetitivas y agilizar el proceso de configuración en diferentes plataformas.
Aquí es donde entra en juego Ansible. Ofrece un enfoque unificado para gestionar configuraciones en sistemas Windows y Linux, lo que permite a las organizaciones gestionar toda su infraestructura de TI utilizando una única herramienta.
Si bien Ansible es una herramienta poderosa para administrar configuraciones en sistemas Windows y Linux, existen ciertos escenarios en los que puede resultar particularmente beneficioso. Estos incluyen:
- Automatización de tareas repetitivas: si su organización realiza implementaciones o cambios de configuración de rutina, el uso de Ansible puede ayudar a automatizar estos procesos y reducir el esfuerzo manual.
- Gestión de entornos complejos: en implementaciones a gran escala con múltiples sistemas y aplicaciones, la capacidad de Ansible para gestionar configuraciones de manera consistente en diferentes plataformas puede ser invaluable.
- Garantizar la coherencia: si mantener la coherencia en toda su infraestructura de TI es crucial, el soporte de Ansible para la gestión de configuración multiplataforma puede ayudar a garantizar que todos los sistemas estén configurados de manera idéntica.
- Escalamiento de la infraestructura: a medida que su organización crece y agrega nuevos sistemas o aplicaciones, el uso de Ansible puede ayudar a agilizar el proceso de configuración y permitirle escalar su infraestructura de manera eficiente.
- Mejora de la seguridad: si la seguridad es una prioridad principal para su organización, el uso de Ansible de protocolos de comunicación seguros como SSH o WinRM puede ayudar a garantizar que las configuraciones se apliquen de forma segura.
El uso de Ansible para la gestión de la configuración de Windows ofrece numerosos beneficios, incluida una complejidad reducida, una mayor eficiencia, una escalabilidad mejorada y un ahorro de costos. By leveraging Ansible in the right scenarios, you can transform your IT infrastructure management process and take advantage of a unified, flexible, and scalable solution that supports both Windows and Linux systems.
Comparación de Ansible con otras herramientas para la gestión de la configuración de Windows#
Ansible no es la única herramienta disponible para la gestión de la configuración de Windows. En esta sección, exploraremos algunas alternativas populares a Ansible y compararemos sus características y capacidades en la administración de entornos Windows:
Administrador de configuración de Microsoft System Center (SCCM)#
Microsoft System Center Configuration Manager (SCCM), anteriormente conocido como Systems Management Server (SMS), es una plataforma integral para la gestión de la configuración de Windows desarrollada por la propia Microsoft. Ofrece una amplia gama de funciones, que incluyen implementación de software, administración de parches, inventario de hardware y políticas basadas en usuarios. SCCM también puede integrarse con otros productos de Microsoft como Intune y Azure para proporcionar un enfoque unificado para administrar sistemas Windows.
SCCM es una excelente opción para organizaciones que dependen en gran medida del ecosistema de Microsoft, ya que ofrece una integración profunda con diversas herramientas y servicios de Microsoft. Sin embargo, su complejidad y la necesidad de una infraestructura de servidor dedicada pueden hacerlo menos atractivo para organizaciones más pequeñas o para quienes buscan una solución más liviana.
Política de grupo#
La política de grupo es un componente esencial de Windows Server que proporciona administración centralizada de ajustes de configuración y políticas de seguridad para usuarios y computadoras dentro de un dominio. Permite a los administradores definir y aplicar configuraciones específicas, como instalaciones de software, preferencias de usuario y restricciones de seguridad, mediante el uso de objetos de política de grupo (GPO).
La Política de grupo ofrece una forma sencilla de administrar sistemas Windows sin la necesidad de herramientas adicionales de terceros. Sin embargo, su alcance se limita a administrar configuraciones dentro de dominios de Active Directory, que pueden no ser adecuadas para organizaciones con una infraestructura heterogénea o aquellas que requieren capacidades de automatización más avanzadas. Además, la política de grupo puede ser difícil de solucionar y depurar, ya que a menudo requiere un conocimiento profundo del sistema operativo Windows subyacente.
Configuración de estado deseado (DSC) de PowerShell#
PowerShell Desired State Configuration (DSC) es una solución de gestión de configuración integrada en la plataforma PowerShell de Microsoft. Permite a los profesionales de TI definir y administrar el estado deseado de los sistemas Windows utilizando scripts y módulos de recursos de PowerShell. DSC proporciona funciones como detección de desviaciones de configuración, corrección e implementación automatizada mediante el uso de servidores pull o push.
DSC ofrece una manera poderosa y flexible de automatizar las tareas de administración de la configuración de Windows usando PowerShell, que es ampliamente adoptado y respaldado dentro de la comunidad de Microsoft. Sin embargo, su curva de aprendizaje puede ser pronunciada para quienes no están familiarizados con las secuencias de comandos de PowerShell, y su falta de soporte para plataformas distintas de Windows puede limitar su aplicabilidad en entornos híbridos modernos.
Marioneta#
Puppet es una popular herramienta de gestión de configuración que ofrece un enfoque declarativo para gestionar sistemas Windows. Utiliza un lenguaje específico de dominio (DSL) llamado Puppet DSL para definir el estado deseado de los recursos y aplicar configuraciones mediante el uso de manifiestos. Puppet también proporciona soporte integrado para módulos, que se pueden compartir y reutilizar en diferentes entornos.
Puppet ofrece una amplia gama de funciones y capacidades para la gestión de la configuración de Windows, incluida la instalación de software, la gestión de paquetes, la configuración de usuarios y grupos, y las políticas de seguridad. Su arquitectura modular permite una fácil personalización e integración con otras herramientas en el panorama de TI. Sin embargo, la curva de aprendizaje de Puppet puede ser pronunciada y su enfoque basado en agentes puede requerir recursos adicionales para su mantenimiento y gestión.
Cocinero#
Chef es otra poderosa herramienta de gestión de configuración que sigue un modelo de programación imperativo para definir y aplicar configuraciones para sistemas Windows. Utiliza un lenguaje específico de dominio (DSL) llamado Chef DSL para describir el estado deseado de los recursos, que luego se convierten en código ejecutable. Chef también proporciona soporte integrado para libros de cocina, que se pueden utilizar para encapsular recetas de configuración reutilizables.
Chef ofrece funciones y capacidades sólidas para la gestión de la configuración de Windows, incluida la implementación de software, la gestión de paquetes, la configuración de usuarios y grupos, y las políticas de seguridad. Su fuerte enfoque en la automatización y la repetibilidad lo convierte en una excelente opción para las organizaciones que buscan optimizar sus procesos de gestión de infraestructura. Sin embargo, el enfoque basado en agentes de Chef puede requerir recursos adicionales para su mantenimiento y gestión.
Pila de sal#
SaltStack es una herramienta de gestión de configuración distribuida y escalable que ofrece modelos de programación tanto imperativos como declarativos para gestionar sistemas Windows. Utiliza un lenguaje específico de dominio (DSL) llamado YAML para definir configuraciones y las aplica mediante el uso de archivos de estado y ejecutores. SaltStack también proporciona soporte integrado para módulos, que se pueden compartir y reutilizar en diferentes entornos.
SaltStack ofrece un enfoque flexible y potente para la gestión de la configuración de Windows, con funciones como implementación de software, gestión de paquetes, configuración de usuarios y grupos, y políticas de seguridad. Su arquitectura distribuida permite una fácil escalabilidad y alta disponibilidad, lo que la convierte en una excelente opción para organizaciones con implementaciones a gran escala. Sin embargo, la curva de aprendizaje de SaltStack puede ser pronunciada y sus amplias opciones de personalización pueden requerir tiempo y esfuerzo adicionales para dominarlas.
Cómo instalar Ansible: guía paso a paso para configurar Ansible en su máquina de desarrollo#
ventanas#
Mac OS#
###Linux
Ubuntu#
Fedora#
Arco#
####Debian
OpenSUSE#
Desarrollo de infraestructura local: ansible y vagabundo#
Creación de prototipos y pruebas con máquinas virtuales locales.#
Tu primer servidor local: configurando Vagrant#
Usando Ansible con Vagrant#
Tu primer manual de estrategias de Ansible#
Limpiando#
Resumen#
Comprender la arquitectura ansible#
Diagrama general#
Libro de jugadas#
¿Para qué se utilizan los manuales de estrategias de Ansible?#
Introducción: Estructura, Tareas, Jugadas y Manejadores#
Cómo escribir tu primer libro de estrategias para Windows: guía paso a paso con ejemplos#
Ejecución de Playbooks en hosts de Windows: ejecución, depuración y manejo de errores#
Módulos#
Roles#
Gestión de secretos y credenciales#
Uso de Ansible Galaxy para roles#
Resumen#
Los conceptos básicos de Ansible para la gestión de la configuración de Windows#
Configuración de hosts de Windows para Ansible#
Habilitación de WinRM para administración remota#
Arranque en AWS y Azure#
Consideraciones de seguridad y firewall para hosts de Windows#
AWS, Azure#
Configuración de Ansible Inventory para hosts de Windows: inventarios estáticos y dinámicos#
Configurando el comando Ansible#
Archivo de configuración#
Obteniendo la última configuración#
Configuración ambiental#
Opciones de línea de comando#
Uso de comandos ad hoc para tareas rápidas#
Lista de todos los comandos ad hoc#
Resumen#
Módulos de Windows en Ansible#
Ansible.Windows: colección de Ansible para complementos principales de Windows#
Módulos del sistema: estos módulos se relacionan con la gestión de ajustes y configuraciones del sistema.#
- módulo win_acl: establece permisos de archivo/directorio/registro/certificado para un usuario o grupo del sistema
- módulo win_acl_inheritance – Cambiar la herencia de ACL
- módulo win_certificate_store: gestiona el almacén de certificados
- módulo win_dns_client: configura la búsqueda de DNS en hosts de Windows
- módulo win_environment – Modificar variables de entorno en hosts de Windows
- módulo win_feature: instala y desinstala funciones de Windows en Windows Server
- módulo win_hostname: administra el nombre de la computadora local con Windows
- win_optional_feature module: administra las funciones opcionales de Windows
- módulo win_owner – Establecer propietario
- módulo win_path – Administrar variables de entorno de ruta de Windows
- módulo win_reg_stat: obtenga información sobre las claves de registro de Windows
- módulo win_regedit: agregar, cambiar o eliminar claves y valores de registro
- módulo win_service – Administrar y consultar servicios de Windows
- módulo win_service_info: recopila información sobre los servicios de Windows
- módulo win_updates: descarga e instala actualizaciones de Windows
- módulo win_user: administra cuentas de usuarios locales de Windows
- módulo win_user_right – Administrar derechos de usuario de Windows
- win_wait_for module: espera una condición antes de continuar
- módulo win_dsc: invoca una configuración de PowerShell DSC
- módulo win_reboot – Reinicia una máquina con Windows
Módulos de gestión de archivos y directorios: estos módulos implican la gestión de archivos y directorios.#
- módulo slurp: sorbe un archivo de nodos remotos
- módulo win_copy: copia archivos a ubicaciones remotas en hosts de Windows
- módulo win_file: crea, toca o elimina archivos o directorios
- módulo win_find: devuelve una lista de archivos según criterios específicos
- módulo win_get_url: descarga archivos desde HTTP, HTTPS o FTP al nodo
- módulo win_share – Administrar recursos compartidos de Windows
- módulo win_stat – Obtener información sobre archivos de Windows
- módulo win_tempfile: crea archivos y directorios temporales
- módulo win_template – Plantilla de un archivo a un servidor remoto
Módulos de ejecución de comandos: estos módulos se centran en ejecutar comandos y scripts en hosts remotos.#
- módulo async_status: obtener el estado de la tarea asincrónica
- módulo win_command: ejecuta un comando en un nodo remoto de Windows
- módulo win_powershell: ejecutar scripts de PowerShell
- módulo win_shell: ejecuta comandos de shell en los hosts de destino
Módulos de dominio y membresía: estos módulos se ocupan de la administración de dominios y membresías de Windows.#
- módulo win_domain – Garantiza la existencia de un dominio de Windows
- módulo win_domain_controller: administra el estado del controlador de dominio/servidor miembro para un host de Windows
- módulo win_domain_membership: administra la membresía de dominio/grupo de trabajo para un host de Windows
Módulos de Red y Conectividad: Estos módulos están relacionados con redes y conectividad.#
- módulo win_ping: una versión para Windows del módulo de ping clásico
- módulo win_uri – Interactúa con servicios web
Módulos de administración de paquetes y software: estos módulos se utilizan para administrar paquetes y funciones de software.#
- módulo win_package: instala/desinstala un paquete instalable
Módulos de recopilación de información: estos módulos se utilizan para recopilar información sobre el sistema.#
- módulo de configuración: recopila datos sobre hosts remotos
- módulo win_service_info: recopila información sobre los servicios de Windows
- módulo win_whoami: obtiene información sobre el usuario y el proceso actual
Community.Windows: colección Ansible para complementos comunitarios de Windows#
Gestión remota#
- módulo psexec: ejecuta comandos en un host remoto de Windows basado en el modelo PsExec
- módulo win_psexec: ejecuta comandos (remotamente) como otro usuario (privilegiado)
Auditoría y Seguridad#
- módulo win_audit_policy_system: se utiliza para realizar cambios en la política de auditoría de todo el sistema
- módulo win_audit_rule: agrega una regla de auditoría a archivos, carpetas o claves de registro
- módulo win_security_policy: cambiar la configuración de la política de seguridad local
Autenticación y credenciales#
- módulo win_auto_logon: agrega o establece claves de registro de inicio de sesión automático
- módulo win_credential: administra las credenciales de Windows en el Administrador de credenciales
Gestión de certificados#
- módulo win_certificate_info: obtenga información sobre certificados de un almacén de certificados de Windows
Configuración del sistema y de la red#
- win_computer_description module: establece la descripción, el propietario y la organización de Windows
- win_data_deduplication module: módulo para habilitar la deduplicación de datos en un volumen
- módulo win_defrag – Consolidar archivos fragmentados en volúmenes locales
- módulo win_disk_facts: muestra los discos adjuntos y la información del disco del host de destino
- módulo win_disk_image: administra montajes ISO/VHD/VHDX en hosts de Windows
- módulo win_dns_record – Administrar registros DNS de Windows Server
- módulo win_dns_zone – Administrar zonas DNS de Windows Server
- módulo win_http_proxy: administra la configuración del proxy para WinHTTP
- módulo win_inet_proxy: administra la configuración del proxy para WinINet e Internet Explorer
- módulo win_initialize_disk: inicializa discos en Windows Server
- win_net_adapter_feature module: habilita o deshabilita ciertos adaptadores de red
- módulo win_netbios: administra la configuración de NetBIOS a través de TCP/IP en Windows
- módulo win_pagefile – Consultar o cambiar la configuración del archivo de paginación
- módulo win_partition: crea, cambia y elimina particiones en Windows Server
- módulo win_power_plan: cambia el plan de energía de un sistema Windows
- módulo win_product_facts: proporciona información sobre licencias y productos de Windows
- módulo win_route: agregar o eliminar una ruta estática
- módulo win_timezone: establece la zona horaria de la máquina Windows
- win_webpicmd module – Installs packages using Web Platform Installer command-line
Directorio activo y dominio#
- win_domain_computer module – Administrar computadoras en Active Directory
- módulo win_domain_group: crea, modifica o elimina grupos de dominio
- módulo win_domain_group_membership: administrar la membresía del grupo de dominio de Windows
- módulo win_domain_object_info: recopila información sobre un objeto de Active Directory
- módulo win_domain_ou – Administrar unidades organizativas de Active Directory
- módulo win_domain_user: administra las cuentas de usuario de Windows Active Directory
Gestión de IIS#
- módulo win_iis_virtualdirectory: configura un directorio virtual en IIS
- win_iis_webapplication module: configura aplicaciones web IIS
- módulo win_iis_webapppool – Configurar grupos de aplicaciones web IIS
- módulo win_iis_webbinding: configura un enlace de sitio web IIS
- módulo win_iis_website: configura un sitio web IIS
Gestión de PowerShell#
- módulo win_psmodule: agrega o elimina un módulo de Windows PowerShell
- módulo win_psmodule_info: recopila información sobre los módulos PowerShell
- módulo win_psrepository: agrega, elimina o actualiza un repositorio de Windows PowerShell
- módulo win_psrepository_copy: copia los PSRepositories registrados a otros perfiles de usuario
- módulo win_psrepository_info: recopila información sobre PSRepositories
- módulo win_psscript: instalar y administrar scripts de PowerShell desde un PSRepository
- módulo win_psscript_info: recopila información sobre los scripts de PowerShell instalados
- módulo win_pssession_configuration – Administrar configuraciones de PSSession
Gestión de RDS#
- módulo win_rds_cap: administrar políticas de autorización de conexión (CAP) en un servidor de puerta de enlace de escritorio remoto
- módulo win_rds_rap: administrar políticas de autorización de recursos (RAP) en un servidor de puerta de enlace de escritorio remoto
- módulo win_rds_settings: administra la configuración principal de un servidor de puerta de enlace de escritorio remoto
Varios#
- módulo win_dotnet_ngen: ejecuta ngen para recompilar archivos DLL después de las actualizaciones de .NET
- módulo win_eventlog – Administrar registros de eventos de Windows
- módulo win_eventlog_entry: escribe entradas en los registros de eventos de Windows
- win_feature_info module – Gather information about Windows features
- módulo win_file_compression – Altera la compresión de archivos y directorios en particiones NTFS
- módulo win_file_version – Obtenga la versión de compilación del archivo DLL o EXE
- módulo win_firewall: activa o desactiva el Firewall de Windows
- módulo win_firewall_rule – Automatización del firewall de Windows
- módulo win_format: formatea un volumen existente o un volumen nuevo en una partición existente en Windows
- módulo win_hosts: gestiona las entradas de archivos de hosts en Windows
- módulo win_hotfix: instala y desinstala revisiones de Windows
- módulo win_listen_ports_facts – Recopila los datos de los puertos de escucha de la máquina
- módulo win_mapped_drive: asigna unidades de red para los usuarios
- módulo win_msg: envía un mensaje a los usuarios que han iniciado sesión en hosts de Windows
- módulo win_nssm – Instalar un servicio usando NSSM
- módulo win_pester: ejecuta pruebas de Pester en hosts de Windows
- módulo win_regmerge: fusiona el contenido de un archivo de registro en el registro de Windows
- módulo win_robocopy – Sincroniza el contenido de dos directorios usando Robocopy
- módulo win_say: módulo de texto a voz para Windows para leer mensajes y, opcionalmente, reproducir sonidos
- módulo win_scheduled_task – Administrar tareas programadas
- módulo win_scheduled_task_stat: obtenga información sobre las tareas programadas de Windows
- módulo win_scoop – Administrar paquetes usando Scoop
- módulo win_scoop_bucket: administrar depósitos de Scoop
- módulo win_shortcut – Administrar accesos directos en Windows
- módulo win_snmp – Configura el servicio SNMP de Windows
- módulo win_toast: envía notificaciones de Toast Windows a usuarios que han iniciado sesión en hosts de Windows 10 o posteriores.
- módulo win_unzip: descomprime archivos y archivos comprimidos en el nodo de Windows
- módulo win_user_profile: gestiona los perfiles de usuario de Windows
- módulo win_wait_for_process: espera a que exista o no exista un proceso antes de continuar
- módulo win_wakeonlan: envía un paquete de transmisión mágico Wake-on-LAN (WoL)
- módulo win_xml: gestiona el contenido del archivo XML en hosts de Windows
- módulo win_zip: comprime el archivo o directorio como archivo zip en el nodo de Windows
- módulo win_region: establece la configuración de región y formato
Chocolatey.Chocolatey: Administrar paquetes usando Chocolatey#
- módulo win_chocolatey: gestiona paquetes usando chocolatey
- Módulo win_chocolatey_config: gestiona la configuración de Chocolatey
- Módulo win_chocolatey_facts: crea una colección de datos para Chocolatey
- módulo win_chocolatey_feature: gestiona las funciones de Chocolatey
- Módulo win_chocolatey_source: gestiona las fuentes de Chocolatey
Solución de problemas comunes#
Depuración de errores de ejecución de Ansible Playbook#
Solución de problemas de WinRM y de conectividad#
Implementación de prácticas de DevOps#
- Torre Ansible/AWX -Gitlab -Github
- Casa rural
- Dron -Jenkins
- Azure DevOps
Resumen#
Pruebas en Ansible#
Rutas de participación y contribución de la comunidad#
Apéndice#
Glosario de términos#
Definiciones de términos clave de Ansible y Windows
Referencias y enlaces útiles#
Lista seleccionada de recursos útiles