LINUX

Preguntas y respuestas de entrevistas para Devops

comprobar las preguntas de la entrevista ansible

En esta guía, veremos las preguntas y respuestas de las entrevistas de Ansible para ingenieros de DevOps. Esto está destinado a ayudarlo a prepararse para la entrevista de Ansible Devops y también a revisar sus habilidades. Durante el último año, la adopción de Ansible ha sido masiva. Ahora es uno de los software más utilizados para automatizar el aprovisionamiento de software, la gestión de la configuración y la implementación de aplicaciones en infraestructuras que van desde un solo servidor hasta clústeres de varios servidores.

Si está leyendo esta guía, creo que ya ha pasado por los conceptos básicos de Ansible: cómo funciona, sus requisitos y sus beneficios sobre herramientas similares como Puppet, Chef, etc.

1) ¿Qué es Ansible?

Ansible es una herramienta de automatización de TI de código abierto escrita en Python, ahora impulsada por Redhat. Puede aprovisionar sistemas, implementar software, configurar sistemas y orquestar tareas de TI avanzadas como implementaciones continuas sin tiempo de inactividad.

2) ¿Cuáles son las ventajas de Ansible sobre otras herramientas de automatización?

  • Ansible no tiene agentes: solo requiere servicio SSH en las máquinas de destino
  • La única dependencia requerida es Python. La mayoría de los sistemas vienen con Python preinstalado
  • Tiene una sobrecarga baja – Utilización mínima de recursos
  • Las tareas de Ansible están escritas en sintaxis YAML: fácil de aprender y comprender
  • Ansible es declarativo: a diferencia de otras herramientas que son en su mayoría procedimentales. Solo necesitas definir el estado deseado y Ansible cumplirá con los requisitos para llegar a ese estado

3) ¿Qué opciones están disponibles para instalar Ansible?

  • Instalar desde el repositorio de paquetes de distribución
  • Construir a partir del código fuente
  • Instalar usando herramientas de administración de paquetes de Python como pip

4) ¿Explica cómo funciona Ansible?

Ansible consta de nodos y máquina de control.
Ansible se instalará en la máquina de control y los nodos se gestionan dentro de esta máquina de control por SSH sin ningún tiempo de inactividad. Las ubicaciones de los nodos se especifican controlando la máquina a través de su inventario.
Ansible implementa módulos en nodos utilizando el protocolo SSH, y estos módulos se almacenan solo temporalmente en nodos remotos y se comunican con la máquina Ansible a través de una conexión JSON a través de la salida estándar.

5) Describe uno de los usos prácticos de Ansible.

Ansible se utiliza para administrar la infraestructura de TI e implementar aplicaciones de software en nodos remotos.
Ansible se puede usar para implementar muchas aplicaciones de software en muchos nodos con un solo comando. Digamos que desea implementar una o más aplicaciones en más de 100 nodos usando un solo comando, esto es en lo que Ansible puede ayudarnos.
Así es como podemos instalar paquetes. zlib y empuje en todas las máquinas:

- hosts: all
  vars:
      package_list:
        - 'zlib' 
        - 'vim'
  tasks:
      - name: Install zlib and vim
        become: "yes"
        package:
            name:"{{ package_list }}"
            state: present

6) ¿Cómo se protegen las contraseñas en Ansible?

Ansible tiene una función llamada Vault que le permite mantener datos confidenciales como contraseñas o claves en archivos cifrados, en lugar de como texto sin formato en libros de jugadas o roles. Tiene una herramienta de línea de comandos llamada ansible-vault que se usa para editar archivos. Los indicadores comunes que se utilizan con esta herramienta de línea de comandos son –ask-vault-pass o –archivo-de-contraseña-de-bóveda. Para ejecutar un libro de jugadas que contiene archivos de datos cifrados en bóveda, debe pasar uno de dos indicadores.

7) ¿Qué es un Inventario Ansible?

Ansible tiene un archivo predeterminado en / etc / ansible / hosts que contienen las direcciones IP o los nombres de host de los sistemas de destino.
Puede especificar un archivo de inventario diferente utilizando el -i opción en la línea de comando. Ansible selecciona una parte de los hosts para trabajar desde este archivo. El formato de archivo puede ser INI o YAML, el predeterminado es similar a INI. En formato INI, los encabezados entre paréntesis son nombres de grupos, que se utilizan para clasificar sistemas y decidir qué sistemas está controlando, en qué momento y con qué propósito. p.ej

[db-servers]
192.168.10.4
192.168.10.5

[app-servers]
10.1.5.4
10.1.5.5

Las variables de host y grupo se pueden definir en el archivo de inventario. Es fácil asignar variables a los hosts que se utilizarán más adelante en un libro de jugadas, por ejemplo

[web-servers:vars]
ntp_server=ntp.server.com
proxy=proxy.server.com

8) ¿Qué son los libros de jugadas de Ansible?

Los Playbooks de Ansible son los componentes básicos para todos los casos de uso de Ansible. Las diferentes etiquetas YAML se clasifican en cuatro tipos conocidos como declaración, vars, tareas y controladores.
Los libros de jugadas son un conjunto de comandos que pueden realizar múltiples tareas y están escritos en formato de archivo YAML.

9) ¿Cuál es el método para verificar las variables de inventario definidas para el host?

Utilice el siguiente comando para verificar el inventario:

$ ansible -m debug -a "var=hostvars['hostname']" localhost

10) ¿Qué es Ansible Tower?

Ansible Tower es una solución basada en web que hace que Ansible sea aún más fácil de usar para equipos de TI de todo tipo. Está diseñado para ser el centro de todas sus tareas de automatización. La torre es gratuita para el uso de hasta 10 nodos.

11) ¿Qué es el rol de Ansible?

El rol de Ansible es una forma de agrupar contenido de automatización y hacerlo reutilizable.
El primer paso para crear un rol de Ansible es crear su estructura de directorio. Para crear la estructura del directorio base, usamos una herramienta incluida con Ansible llamada Ansible Galaxy.
Este comando creará el directorio linoxide.packer:

$ ansible-galaxy init linoxide.packer
- linoxide.packer was created successfully

Esta es la estructura de directorio creada dentro envasador de linóxido directorio:

$ ls
README.md	files		meta		templates	vars
defaults	handlers	tasks		tests

12) ¿Qué es Ansible Galaxy?

Ansible galaxy es una herramienta incluida con Ansible que se utiliza para crear una estructura de directorio base. Usando los comandos de Ansible, Ansible se comunica con los clientes configurados. Puede automatizar la configuración con los libros de jugadas que se ejecutan a través del comando ansible-playbook.

13) Describe los tipos de módulos de Ansible.

Los módulos en Ansible son idempotentes. Desde el punto de vista del servicio RESTful, para que la operación sea idempotente, los clientes pueden realizar el mismo resultado utilizando módulos en Ansible. Varias solicitudes idénticas se convierten en una sola solicitud.
También podemos crear nuestros propios módulos dentro de Ansible.
Si sabes cómo codificar en Python puedes empezar a crear tus propios módulos en pocas horas desde cero y no necesitas tener ningún conocimiento previo del mismo.

Hay dos tipos diferentes de módulos en Ansible:

a) Módulos básicos
b) Módulos extras

Módulos centrales:

El equipo de Ansible mantiene este tipo de módulos y siempre se enviarán con el software Ansible. También darán mayor prioridad a estos módulos que a los de los repositorios “extras”.

Módulos adicionales:

Estos módulos se incluyen actualmente con Ansible, pero podrían estar disponibles por separado en el futuro. También son mantenidos principalmente por la comunidad de Ansible.

14) Explica los hechos de Ansible

Puede pensar en los hechos ansible como una forma de que ansible obtenga información sobre un host y los almacene en variables para un fácil acceso. Esta información almacenada en variables predefinidas está disponible para su uso en el libro de jugadas. Para generar hechos, ansible ejecuta el módulo de configuración.

$ ansible- m setup hostname

Una vez que se ejecuta esta declaración, imprimirá un diccionario de todos los datos disponibles para ese host en particular. Esta es la mejor manera de acceder a la lista de Ansible_variables.

Puedes ver todos los hechos a través de:

$ ansible all- m setup

Entonces, si desea extraer solo cierta parte de la información, puede usar el módulo de «configuración», donde tendrá una opción para filtrar la salida y simplemente hacerse cargo del hecho de que lo necesita.

15) ¿Qué son los comandos ad-hoc?

Los comandos ad-hoc son la forma que podemos usar para realizar acciones en nuestros nodos sin tener que escribir nuevos libros de jugadas. Si lo desea, digamos reiniciar todos los hosts de un grupo en particular, puede escribir un nuevo libro de jugadas o simplemente ejecutar un comando ad-hoc único.

$ ansible servers -a "/sbin/reboot"

16) ¿Cómo se accede a las variables de entorno de Shell?

El acceso a las variables existentes en la máquina de control se realiza mediante el complemento de búsqueda «env».
Por ejemplo:
Accediendo al valor de la variable de entorno Home en la máquina de gestión:

local_home:”{{lookup(‘env’,’HOME’)}}”

17) Escribe una tarea para crear el directorio ‘/ tmp / linoxide’

La creación de un nuevo directorio en un nodo se hace así:

- name: Create a new directory
  file:
      path: "/tmp/linoxide"
      state: directory

18) ¿Cómo podemos probar nuestros proyectos basados ​​en Ansible?

Hay varias formas en que podemos probar nuestros proyectos Ansible:

Ejecución manual: Simplemente podemos ejecutar el juego y verificar si el sistema está en el estado deseado: este es el método más fácil y perezoso, pero también puede ser potencialmente peligroso porque los resultados en un entorno de prueba y en un entorno de producción pueden no ser los mismos.

Modo de verificación: El modo de verificación es una buena manera de probar su proyecto Ansible porque informará todo lo que hubiera hecho como si se hubiera ejecutado sin simulación. Por lo tanto, puede ver fácilmente si el comportamiento de ejecución de Ansible es el que deseaba. Pero el modo de verificación no ejecuta scripts y comandos usados ​​en roles y guías. Para ejecutarlos, tendría que deshabilitar el modo de verificación para tareas específicas con «check_mode: no».

Afirma: Afirma que un método de prueba es excelente porque también se asemeja a cómo prueba en otros lenguajes como Python y, lo que es más importante, se asegura de que su sistema alcance el estado deseado, no como una simulación como en el modo de verificación, sino como una verificación real. que la tarea cambió cierto recurso al estado deseado.

También puede consultar las herramientas de prueba de Ansible como Molecule y Test Kitchen.

19) Explique qué es Red Hat Ansible.

Ansible y Ansible Tower de Red Hat son plataformas de automatización completas de extremo a extremo que son capaces de proporcionar las siguientes características y funcionalidades:

    • 2. Implementación de aplicaciones
      3. Orquestación de flujos de trabajo
      5. Configuración de sistemas de TI

20) ¿Qué es la entrega continua?

La entrega continua es una práctica que consiste en entregar el software tan pronto como se hayan comprometido algunos cambios. Usando este método, necesitamos usar algún sistema de control de versiones, como GitHub o GitLab. El software se actualiza constantemente en los sistemas de producción en vivo.

Con suerte, ahora está mejor preparado para una entrevista para el puesto de ingeniero de DevOps de Ansible en alguna empresa. Este puesto es muy popular en estos días, y las empresas siempre están buscando nuevos ingenieros de DevOps. Buena suerte a todos los que deseen sumergirse en el campo de Ansible y DevOps.

Leer también:

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar