Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1110
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
▼
2021
(Total:
730
)
-
▼
diciembre
(Total:
103
)
- Tecnología de Intel permite actualizar la BIOS de ...
- La Universidad de Kioto en Japón pierde 77TB de da...
- Redline Stealer es un malware que roba las contras...
- ¿Qué es un dropper? (Malware)
- Fundador de Signal asegura que Telegram es incluso...
- Diferencias entre el cifrado BitLocker y EFS en Wi...
- Mejores programas para reparar, recuperar y ver in...
- TWRP Recovery para teléfonos Android
- Herramientas para realizar ataques Man‑in‑the‑Midd...
- Vulnerabilidad en Azure App Service expone reposit...
- Las 20 mejores herramientas de Hacking de 2021
- Procesadores Intel 12th Alder Lake para el chipset...
- Alertan de una importante Campaña Phishing vía SMS...
- Extensiones Visual Studio Code para programar en ...
- ¿Qué es una APU (CPU + GPU) y un SoC?
- Crean un algoritmo capaz de adivinar el 41% de las...
- DuckDuckGo, la alternativa al buscador Google basa...
- Instalar MacOS Big Sur en una máquina Virtual con ...
- Editores de imágenes de vídeo gratuitos y de códig...
- Desinstalar todas las aplicaciones no deseadas que...
- Reparar tarjeta memoria SD dañada o estropeada
- Instalar aplicaciones Android en Windows 11: WSATo...
- Hackean servidores HP con CPUs AMD EPYC para minar...
- Logrotate: administra los registros (logs) de tu s...
- Las mejores shells para GNU/Linux
- Glosario términos en Linux: vocabulario básico
- Windows 10 versión 21H2 añade protecciones mejorad...
- Instalar varios sistemas operativos autoarrancable...
- Vulnerabilidad test de antígenos permite falsifica...
- Actualización de seguridad importante servidor web...
- Graves vulnerabilidades plugin SEO instalado en má...
- Vulnerabilidades Directorio Activo permiten hackea...
- Ministerio de Defensa de Bélgica es el primer país...
- La memoria DDR5 es apenas un 3% más rápida que la ...
- Actualizaciones de Windows 11 solucionan problemas...
- Disponible distro Hacking WiFi Wifislax de origen ...
- DuckDuckGo prepara navegador web que protegerá la ...
- Amazon patenta una red de cámaras que reconcen a p...
- Los mitos más comunes en ciberseguridad
- Hospital de Asturias (España) afectado por un ataq...
- Cable USB llamado BusKill permite borrar automátic...
- El hackeo con Pegasus para iPhone es uno de los at...
- Resumen de todas las vulnerabilidades de Log4j
- Instalación LineageOS en teléfonos Android
- Gestores de Contraseñas para Android
- Guía SysAdmin para SELinux
- Los mejores gestores de contraseñas gratuitos
- Configurar servidor DLNA para reproducir música y ...
- Instalar Kali Linux en tu teléfono móvil con NetHu...
- pfetch, screenfetch o neofetch : mostrar informaci...
- La estafa del supuesto familiar con la ‘maleta ret...
- Microsoft y Dell prepararan portátiles más reparables
- Contenedores en Firefox para mejorar privacidad al...
- Windows Terminal será la línea de comandos por def...
- Identificada una segunda vulnerabilidad en Log4j q...
- Protocolo WebDav permite conectar unidad de red re...
- Apple publica Tracker Detect para evitar que los u...
- Volvo Cars informa una brecha de seguridad
- Consejos de Seguridad para servidores Linux
- Vulnerabilidad en millones chips de WiFi y Bluetoo...
- Ataque de ransomware Lapsus al Ministerio de Salud...
- Configurar una VPN con Wireguard
- Distribuciones Linux para portátiles antiguos con ...
- Juegos retro para teléfonos móviles Androd e iPhone
- Solucionada vulnerabilidad de seguridad de Western...
- Ladrones de coches están utilizando AirTags de App...
- Cómo activar la autenticación en dos pasos en Goog...
- Detenida en España por estafar al Athletic de Bilb...
- ALPHV BlackCat es el ransomware más sofisticado de...
- Google permitirá ejecutar juegos de Android en Win...
- Google y Microsoft trabajan juntos para mejorar el...
- Vulnerabilidad crítica en Apache Log4j bautizada c...
- Nueva oferta de Microsoft 365 para los usuarios pi...
- Nueva versión de Kali Linux 2021.4 que mejora el s...
- Evitar que tus mails rastreen tus datos personales...
- Cómo configurar la privacidad y seguridad en Signal
- Google demanda a 2 rusos responsables de la botnet...
- Bots se hacen pasar por personal de Twitter para r...
- Importante vulnerabilidad en Grafana: actualizació...
- Descubiertos instaladores KMSPico para activar Win...
- Eltima SDK contiene hasta 27 múltiples vulnerabili...
- Mozilla publica Firefox 95 con mejoras destacadas ...
- Cómo migrar CentOS 8 a Rocky Linux 8, AlmaLinux 8 ...
- Freesync y G-Sync: tecnologías para monitores gami...
- Ansible permite automatizar tareas en distintos se...
- Syncthing es una herramienta gratuita multiplatafo...
- Curiosidades sobre el nuevo CEO de Twitter: 11.000...
- Filtros en Linux: pipes, tuberías: cut, sort, uniq...
- El auge del negocio de los ciberataques de denegac...
- ¿Qué son los (IoC) Indicadores de Compromiso?
- Teléfonos iPhone de empleados del Departamento de ...
- Mejores sistemas de rescate para recuperar fichero...
- Ciberataque denegación de servicio distribuido DDo...
- Hasta 9 routers de marcas muy conocidas acumulan u...
- Plantillas y archivos RTF de phishing contienen ma...
- Nvidia reedita la RTX 2060, ahora con 12 GB de RAM...
- Nueva versión IPFire mejora el rendimiento IPS e i...
- El perro robótico de Xiaomi usa Ubuntu de sistema ...
- WiFi 7 tendrá doble de velocidad (hasta 46 Gbps) y...
- Vulnerabilidad en impresoras HP tras 8 años afecta...
- ► septiembre (Total: 56 )
-
▼
diciembre
(Total:
103
)
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
Entradas populares
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
-
Arm Holdings Plc es una empresa británica dedicada al diseño de software y semiconductores . Con sede en Cambridge, Reino Unido, tiene una ...
-
Dado que Unbound DNS en OPNsense no soporta DNS sobre HTTPS (DoH) directamente, fue necesario utilizar el plugin DNSCrypt-Proxy. El plugin t...
Ansible permite automatizar tareas en distintos servidores
Ansible es un software que automatiza el aprovisionamiento de software, la gestión de configuraciones y el despliegue de aplicaciones. Está categorizado como una herramienta de orquestación, muy útil para los administradores de sistema y DevOps. En otras palabras, Ansible permite a los DevOps gestionar sus servidores, configuraciones y aplicaciones de forma sencilla, robusta y paralela
Ansible es una herramienta útil que los ingenieros de DevOps pueden utilizar para lograr la automatización de la infraestructura, las aplicaciones, las redes y el entorno de contenedores. Los ingenieros utilizan ampliamente esta herramienta para la automatización y configuración de servidores.
Si tenemos que trabajar con multitud de dispositivos, no solo servidores, sino también dispositivos de red como switches o routers, o incluso trabajar con plataformas en la llamada nube, como AWS, Ansible nos puede ayudar, y mucho, en nuestro día a día. Con permisos de otros sistemas como Puppet, o Chef, Ansible se ha convertido en una de las herramientas de automatización más popular.
Es gratuita, ya que utiliza una licencia GNU GPL v3, sigue con la filosofía del código abierto y permite automatizar la mayoría de los elementos de una infraestructura. Esto es, desde servidores hasta dispositivos de red. Puede funcionar, con el rol de servidor, en sistemas GNU/Linux y tipo UNIX, como por ejemplo AIX, Solaris o BSD. En lo que respecta a la red, soporta dispositivos populares, como Cisco, Palo Alto o F5
Como hemos dicho anteriormente, también permite trabajar con los proveedores de la nube, como AWS, Azure o Google Cloud Platform. Gestionando componentes como redes, grupos de seguridad, direcciones IP o claves públicas.
Hace unos años Ansible fue adquirida por la compañía Red Hat
Ansible gestiona sus diferentes nodos a través de SSH y únicamente requiere Python en el servidor remoto en el que se vaya a ejecutar para poder utilizarlo. Usa YAML para describir acciones a realizar y las configuraciones que se deben propagar a los diferentes nodos
El autor de Ansible es Michael DeHann, y el repositorio lo puedes encontrar en https://github.com/ansible/ansible. El proyecto tiene una gran comunidad activa detrás y sigue creciendo día a día.
- Ansible automatiza la configuración de la infraestructura, la implementación de aplicaciones y el aprovisionamiento en la nube mientras aprovecha el modelo de servicio Infraestructura como código.
Compatibilidad de Ansible
Ansible se distribuye en Fedora, Red Hat enterprise Linux, CentOS y Scientific Linux mediante los paquetes EPEL, además está disponible para diferentes distribuciones Linux aparte de las anteriores mencionadas puedes verlo en este enlace y descargar la que necesites.
También está disponible para MAC, pero no para Windows, aunque podemos usarlo en máquinas virtuales.
Arquitectura de Ansible
Con Ansible seremos capaces de controlar una máquina remota (llamada nodo) o varias de ellas en una lista (llamada inventario) definida en una máquina local central (llamada controladora) por medio de guiones, pequeños programas con instrucciones precisas, llamados módulos. Para completar el panorama, un conjunto de instrucciones que contengan guiones es denominado libreto o Playbook.
- Máquina Local: Controladora.
- Máquina Remota: Nodo.
- Lista con las direcciones de los Nodos: Inventario.
- Fichero con guión: Módulo.
- Fichero con guiones e instrucciones que llame a otros guiones: Libreto.
En Ansible existen dos tipos de servidores:
- Controlador: La máquina desde la que comienza la orquestación
- Nodo: Es manejado por el controlador a través de SSH.
Glosarios de conceptos
Veamos un resumen de los principales conceptos a tener en cuenta.
- Facts: Información útil de los clientes.
- Inventario: Incluye información, estática o dinámica, de los clientes administrados y su información.
- Módulos: Son las librerías que se utilizan para controlar elementos como ficheros, servicios paquetes o comandos. Estos se copian al nodo cliente para que ejecute la tarea indicada.
- Nodo: Objeto a administrar, ya sea un servidor, un router y otro elementos.
- Play: Lista de tareas a realizar en los clientes especificados en el Playbook.
- Playbook: Se encarga de definir todas las tareas que debemos realizar sobre un conjunto de hosts clientes.
- Roles: Es una agrupación de tareas, ficheros y plantillas, que pueden ser reutilizados.
- Tareas: Definición de una acción a realizar.
Trabajando con los Playbook
Para poder ejecutarlos de manera eficaz debemos tener en cuenta varias cosas.
- El objetivo: Debido a que los Playbooks están proporcionando dirección e interactividad con los módulos, Ansible asume que sabemos cómo hacer lo que estamos tratando de hacer y lo automatiza. Es por que son como instrucciones: le estamos diciendo a las partes automatizadas cómo deseamos que se configure la tarea.
- Las tareas: Si necesita iniciar el servidor web, necesitará saber cómo se hace para poder usar el módulo de servicio e iniciar el servidor web por su nombre. Si este está instalando software, entonces debe saber cómo se realiza la instalación en el destino. También necesitará comprender los conceptos básicos de las tareas que se realizan. ¿El software que está instalando tiene una configuración de configuración? ¿Hay varios pasos que requieren condiciones o valores de argumento? Si hay variables que se están pasando
Instalación de Ansible en GNU Linux
Existen una serie de distribuciones recomendadas, para llevar el rol de servidor central, estos son RHEL, CentOS, Debian y Ubuntu. En estos casos utilizaremos el gestor de paquetes y los repositorios propios de cada distribución. Aún así, si queremos tener siempre la última versión instalada, lo recomendado es utilizar el gestor típico de Python llamado pip.
El host con el rol de máquina de control debe cumplir con una serie de requisitos que son, tener una versión de Python 2 (Versiones 2.6 o 2.7) o en su caso Python 3 (Versiones 3.5 o posteriores).
Los nodos clientes se llaman nodos gestionados (Managed Node). En este caso sólo es necesario tener una versión de Python superior a la 2.5. Por defecto, para copiar los ficheros entre la máquina de control y los nodos gestionados se utiliza sftp, aunque también se puede configurar el uso de scp.
Módulos importantes para Ansible
Módulo 1: Gestor de paquetes
Existe un módulo para los gestores de paquetes más populares, como DNF o APT, que nos permite instalar cualquier paquete en el sistema. Esta funcionalidad depende complemente del administrador de paquetes, pero generalmente estos módulos pueden instalar, actualizar, degradas, eliminar y enumerar paquetes. Los nombres de los módulos relevantes son fáciles de adivinar, por ejemplo, el módulo DNF es «dnf_module«, el antiguo módulo YUM sería «yum_module«, mientras al respecto de APT sería «apt_module«, por hablar de los más habituales.
Veamos algunos ejemplos:
Ejemplo 1:
- name: Instalar la ultima versión de Apache y MariaDB
dnf:
name:
- httpd
- mariadb-server
state: latest
Ejemplo 2:
- name: Instalar una lista de paquetesyum:name:- nginx- postgresql- postgresql-serverstate: present
Módulos 2: Service
Después de instalar un paquete, necesita un módulo para iniciarlo. El módulo service nos permite iniciar, detener y volver cargar los paquetes instalados.
Ejemplo 1:
- name: Encender el servicio foo, basado en el proceso /usr/bin/foo
service:
name: foo
pattern: /usr/bin/foo
state: started
Ejemplo 2:
- name: Reinciar el servicio de red en la interfaz eth0
service:
name: network
state: restarted
args: eth0
Módulo 3: Copy
Este módulo copia un archivo desde la máquina local o remota a una ubicación en la máquina remota.
Ejemplo 1:
- name: Copia el fichero "ntp.conf" en la ubicacion, copia de seguridad del original si difiere de la versión copiada
copy:
src: /mine/ntp.conf
dest: /etc/ntp.conf
owner: root
group: root
mode: '0644'
backup: yes
Ejemplo 2:
- name: Copia el archivo con el propietario y el permiso, utilizando una representación simbólica
copy:
src: /srv/myfiles/foo.conf
dest: /etc/foo.conf
owner: foo
group: foo
mode: u=rw,g=r,o=r
Módulo 4: Debug
El módulo debug imprime declaraciones durante la ejecución y puede ser útil para depurar variables o expresiones sin tener que detener el libro de jugadas.
Ejemplo 1:
name: Muestra las variables / acciones conocidas para un host
debug:
var: hostvars[inventory_hostname]
verbosity: 4
Ejemplo 2:
- name: Escribir algún contenido en un archivo /tmp/foo.txt
copy:
dest: /tmp/foo.txt
content: |
Good Morning!
Awesome sunshine today.
register: display_file_content
- name: Debug display_file_content
debug:
var: display_file_content
verbosity: 2
Esto registra el contenido de la salida del módulo de copia y lo muestra solo cuando especifica verbosidad como 2.
Por ejemplo:
ansible-playbook demo.yaml -vv
Módulo 5: File
El módulo file maneja los ficheros y sus propiedades
- Establece atributos de archivos, enlaces simbólicos o directorios
- También elimina archivos, enlaces simbólicos o directorios.
Ejemplo 1:
- name: Cambia el propietario, grupo y permisos
file:
path: /etc/foo.conf
owner: foo
group: foo
mode: '0644'
Esto crea un archivo llamado foo.conf y establece el permiso en 0644.
Ejemplo 2:
- name: Crea un directorio si este no existe
file:
path: /etc/some_directory
state: directory
mode: '0755'
Esto crea un directorio llamado some_directory y establece el permiso en 0755.
Módulo 6: Lineinfile
El módulo lineinfile maneja líneas de texto en un fichero.
- Asegura que una línea particular esté en un archivo o reemplaza una línea existente usando una expresión regular referenciada hacia atrás.
- Es principalmente útil cuando desea cambiar solo una línea en un archivo.
Ejemplo 1:
- name: Indica el modo enforcing para SELINUX
lineinfile:
path: /etc/selinux/config
regexp: '^SELINUX='
line: SELINUX=enforcing
Establece el valor SELINUX=enforcing
Ejemplo 2:
- name: Agrega una línea a un archivo si el archivo no existe, sin pasar regexp
lineinfile:
path: /etc/resolv.conf
line: 192.168.1.99 foo.lab.net foo
create: yes
Añade una entrada para IP y nombre de host en el fichero resolv.conf
Módulo 7: Git
El módulo git gestiona las revisiones de git contra los repositorios para implementar archivos o software.
Ejemplo 1:
# Crear el fichero Git desde el repo
- git:
repo: https://github.com/ansible/ansible-examples.git
dest: /src/ansible-examples
archive: /tmp/ansible-examples.zip
Ejemplo 2:
- git:
repo: https://github.com/ansible/ansible-examples.git
dest: /src/ansible-examples
separate_git_dir: /src/ansible-examples.git
Este último ejemplo se encarga de clonar un repositorio en un directorio separado de Git.
Módulo 8: Cli_command
El módulo cli_command, disponible desde la versión de Ansible 2.7, proporciona una forma independiente de la plataforma de enviar configuraciones basadas en texto a dispositivos de red a través del complemento de conexión network_cli
Ejemplo 1:
- name: Commit con comentario
cli_config:
config: set system host-name foo
commit_comment: this is a test
Esto establece el nombre de host para un switch y muestra un mensaje de confirmación.
Ejemplo 2:
name: Configure la ruta del backup
cli_config:
config: "{{ lookup('template', 'basic/config.j2') }}"
backup: yes
backup_options:
filename: backup.cfg
dir_path: /home/user
Esto hace una copia de seguridad de una configuración en un archivo de destino diferente.
Módulo 9: Archive
El módulo archive crea un archivo comprimido de uno o más archivos. Por defecto, supone que la fuente de compresión existe en el destino.
Ejemplo 1:
- name: Comprime el directorio /path/to/foo/ en /path/to/foo.tgz
archive:
path: /path/to/foo
dest: /path/to/foo.tgz
Ejemplo 2:
- name: Crear un fichero comprimido bz2, en la ruta /path
archive:
path:
- /path/to/foo
- /path/wong/foo
dest: /path/file.tar.bz2
format: bz2
Módulo 10: Command
Uno de los módulos más básicos pero útil, el módulo command toma el nombre del comando seguido de una lista de argumentos delimitados por espacios.
Ejemplo 1:
- name: return motd to registered var
command: cat /etc/motd
register: mymotd
Ejemplo 2:
- name: Cambia el directorio de trabajo a somedir/ y ejecuta el comando db_owner si /path/to/database no existe.
command: /usr/bin/make_database.sh db_user db_name
become: yes
become_user: db_owner
args:
chdir: somedir/
creates: /path/to/database
Puppet
- Puppet es una herramienta que permite desplegar configuraciones, instalar paquetes en diferentes servidores a través de código. Es una herrramienta para realizar Infrastructure as a Code (IaaC)
- La diferencia de Puppet frente a otros como Ansible, es que puppet tiene instalado un agente en el equipo que se asegura de que la configuración indicada en el código de Puppet se mantiene.
- Si el código de puppet indica que la máquina tiene que tener el firewall encendido y un usuario lo deshabilita, el agente de Puppet volverá a activarlo cuando realice su check.
Puppet es una herramienta de gestión de la configuración del código abierto. Una de sus principales características, es que permite gestionar una infraestructura como código. Como en el caso de Ansible, Puppet automatiza la gestión de la infraestructura, de modo que se puede desplegar aplicaciones y software de forma más rápida y segura.
Puppet permite a las empresas gestionar de forma simultánea decenas de equipos de desarrollo y miles de recursos. Esto es así, porque de forma automática comprende las relaciones inherentes que se dan en cualquier infraestructura.
Gestiona dependencias y trata los errores de forma inteligente. Así, cuando encuentra una configuración que falla, salta por encima del resto de configuraciones dependientes. Gracias a todo esto, se ha convertido en una de las herramientas DevOps más utilizadas, formada por más de 5.000 módulos y con soporte para cientos de herramientas externas.
Puppet es otra plataforma de código abierto adecuada para aprovisionar infraestructura resistente. Los ingenieros de DevOps pueden usar Puppet para configurar, implementar, ejecutar servidores y automatizar la implementación de las aplicaciones en los servidores configurados.
Características
- Altamente extensible, compatible con varias herramientas de desarrollo y API.
- Características de la puppet Bolt, un potente orquestador de tareas para automatizar tareas manuales.
- Puppet se integra bien con Kubernetes y Docker.
Chef
Chef como herramienta en DevOps le permite realizar tareas de administración de configuración en servidores y otros recursos informáticos. El enfoque de Chef para la gestión de la infraestructura utiliza agentes como Chef Infraestructura para automatizar la configuración de la infraestructura. Usar Chef en procesos de automatización es simple. Con unos pocos clics, varios nodos pueden estar en funcionamiento.
Fuentes:
https://www.ochobitshacenunbyte.com/2019/01/30/que-es-ansible-para-que-sirve/
0 comentarios :
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.