Ansible

Cómo crear un directorio en Ansible

Cómo crear un directorio en Ansible

Ansible es una de las mejores herramientas de automatización disponibles, que ofrece herramientas simples, intuitivas y potentes para realizar tareas de automatización en el mundo moderno.

Para la mayoría de las tareas de automatización, deberá crear directorios, especialmente al instalar varias herramientas y aplicaciones, copias de seguridad y restauraciones. Aunque puede realizar estas tareas utilizando un script automatizado, Ansible proporciona una mejor funcionalidad, lo que le permite crear directorios en hosts específicos.

Este tutorial le muestra cómo usar el módulo de archivo Ansible para crear, eliminar y modificar permisos de directorio para hosts especificados.

Cómo crear un directorio en Ansible

Cualquiera de los siguientes métodos se puede utilizar para crear un directorio en Ansible:

Para crear un directorio en Ansible usando el módulo de comando, ingrese el comando que se muestra a continuación:

$ ansible all -m comando -a "mkdir ~ / backups"

Después de ingresar el comando anterior, debe obtener el resultado que se muestra a continuación:

Ingrese la frase de contraseña para la clave '/ home / user /.ssh / id_rsa ':
[ADVERTENCIA]: Considere usar el módulo de archivo con state = directory en lugar de ejecutar 'mkdir'.  Si necesita usar el comando porque el archivo es insuficiente, puede agregar 'warn: false' a esta tarea de comando o establecer 'command_warnings = False' en ansible.cfg para deshacerse de este mensaje.
35.222.210.12 | CAMBIADO | rc = 0 >>

Verifique que su inventario de hosts de Ansible en / etc / ansible / hosts contenga la información correcta sobre sus hosts remotos.

Aunque el módulo de comando es fácil de usar en un solo host Ansible, se vuelve muy ineficiente cuando se trata de múltiples hosts con diferentes directorios y tareas.

Para contrarrestar este inconveniente, utilizaremos el módulo de archivo Ansible y crearemos un libro de jugadas que contenga los hosts que queremos usar y los directorios que deseamos crear.

NOTA: El módulo de archivo también se puede usar como un solo comando en Ansible, pero funciona de manera muy similar al módulo de comando.

Para usar un libro de jugadas de Ansible, cree un archivo YAML e ingrese las siguientes entradas para crear un directorio:

- hosts: todas las tareas:
- nombre: directorio de creación del módulo de archivo Ansible
expediente:
ruta: ~ / copias de seguridad
estado: directorio

Guarde el archivo y use ansible-playbook para crear los directorios:

ansible-playbook mkdir.yml

Esto debería producir una salida como la que se muestra a continuación, que indica que las acciones se llevaron a cabo con éxito utilizando el archivo de libro de jugadas especificado.

Jugar todo] ********************************************** *********************************************** *************
TAREA [Recopilación de datos] ****************************************** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
Ingrese la frase de contraseña para la clave '/ home / user /.ssh / id_rsa ':
ok: [35.222.210.12]
TAREA [Módulo de archivo Ansible crear directorio] *************************************** *********************************
ok: [35.222.210.12]
JUGAR RESUMEN ********************************************* ************************************************ ***********
35.222.210.12: ok = 2 cambiado = 0 inaccesible = 0 fallido = 0 omitido = 0 rescatado = 0 ignorado = 0

Cómo crear varios directorios con elementos

Los libros de jugadas de Ansible también le permiten crear múltiples directorios usando la declaración with_items en el archivo YAML.

Por ejemplo, para crear copias de seguridad para los tres servicios, MySQL, repositorio y configuración, puede crear la tarea que se muestra en el archivo YAML a continuación:

- hosts: todas las tareas:
- nombre: Ansible crea varios directorios con_items
expediente:
ruta: ~ / backups / item
estado: directorio
with_items:
- 'mysql'
- 'repositorio'
- 'config'

Guarde el archivo anterior y ejecútelo con ansible-playbook.

$ ansible-playbook mkdir_multi.yml PLAY [todos] ****************************************** *********************************************** ************************************************ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ***
TAREA [Recopilación de datos] ****************************************** ************************************************ ************************************************ ****************************************
Ingrese la frase de contraseña para la clave '/ home / user /.ssh / id_rsa ':
ok: [35.222.210.12]
TAREA [Ansible crea varios directorios con_items] *************************************** ************************************************ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *************
cambiado: [35.222.210.12] => (elemento = mysql)
cambiado: [35.222.210.12] => (elemento = repositorio)
cambiado: [35.222.210.12] => (elemento = config)
JUGAR RESUMEN ********************************************* ************************************************ ************************************************ ************************************************
35.222.210.12: ok = 2 cambiado = 1 inalcanzable = 0 fallido = 0 omitido = 0 rescatado = 0 ignorado = 0

El libro de jugadas anterior debe crear varios directorios, como ~ / backups / mysql, ~ / backups / repository y ~ / backups / config.

$ ls -la

La salida de la lista de directorios es como se muestra a continuación:

total 0
drwxrwxr-x. 5 debian debian 51 6 de marzo 17:26 .
drwx------. 6 debian debian 117 6 de marzo 17:26…
drwxrwxr-x. 2 debian debian 6 6 de marzo 17:26 config
drwxrwxr-x. 2 debian debian 6 6 de marzo 17:26 mysql
drwxrwxr-x. 2 debian debian 6 6 de marzo 17:26 repositorio

Cómo establecer permisos para un directorio

Ansible le permite especificar permisos para un directorio usando la directiva mode. Considere el siguiente libro de jugadas, que crea un directorio y establece permisos:

- hosts: todos
Tareas:
- nombre: Ansible crea directorio y establece permisos
expediente:
ruta: / copias de seguridad
estado: directorio
modo: "u = rw, g = wx, o = rwx"
convertirse en: si

En la entrada anterior, creamos un directorio en /. También necesitábamos convertirnos en root, de ahí la entrada de convertirse: sí.

Permiso de $ ansible-playbook.yml PLAY [todos] ****************************************** ************************************************ ************************************************ ************************************************ ***
TAREA [Recopilación de datos] ****************************************** ************************************************ ************************************************ ****************************************
Ingrese la frase de contraseña para la clave '/ home / user /.ssh / id_rsa ':
ok: [35.222.210.12]
TAREA [Ansible crear directorio y establecer permisos] ************************************** ************************************************ ************************************************ ****************
cambiado: [35.222.210.12]
JUGAR RESUMEN ********************************************* ************************************************ ************************************************ ************************************************
35.222.210.12: ok = 2 cambiado = 1 inalcanzable = 0 fallido = 0 omitido = 0 rescatado = 0 ignorado = 0

Si ve los permisos del directorio que creamos, verá lo siguiente:

$ ls -lrt / | copias de seguridad grep

El resultado es como se muestra a continuación:

drw - wxrwx.   2 root root 6 de marzo de 17:36 copias de seguridad

Cómo cambiar los permisos de forma recursiva en un directorio

Para cambiar los permisos de un directorio y sus archivos de forma recursiva, simplemente especifique la entrada recursiva, como se muestra a continuación:

- hosts: todos
Tareas:
- nombre: Ansible crea directorio y establece permisos
expediente:
ruta: / copias de seguridad
estado: directorio
modo: "u = rw, g = wx, o = rwx"
recursivo: si
convertirse en: si

Cómo establecer permisos en varios directorios

Configurar permisos para múltiples directorios en Ansible también es tan simple como unas pocas líneas de entradas. Considere el siguiente libro de jugadas.

- hosts: todos
Tareas:
- nombre: Ansible crea un directorio múltiple con permisos
expediente:
ruta: "elemento.camino "
modo: "artículo.modo"
estado: directorio
with_items:
- ruta: '~ / backups / mysql', modo: '0777'
- ruta: '~ / backups / repository', modo: '0755'
- ruta: '~ / backups / config', modo: '0707'

Cómo eliminar un directorio en Ansible

Para eliminar un directorio y todo su contenido usando un libro de jugadas de Ansible, especifique el estado como ausente, como se muestra a continuación:

- hosts: todos
Tareas:
- nombre: directorio de eliminación de Ansible
expediente:
ruta: / copias de seguridad
estado: ausente
convertirse en: si

Este comando eliminará el directorio y todos los archivos y directorios secundarios.

NOTA: Asegúrese de tener permisos para el directorio en el que está trabajando.

Cómo crear un directorio con marca de tiempo

En algunos casos, es posible que deba crear un directorio con una marca de tiempo adjunta, lo que puede ser muy útil, especialmente al crear copias de seguridad. Para crear un directorio con marca de tiempo, podemos usar la variable ansible_date_time.

Considere el siguiente libro de jugadas:

- hosts: todos
Tareas:
- nombre: Ansible agregar marca de tiempo al directorio
expediente:
ruta: "/ backups / mysql ansible_date_time.fecha"
estado: directorio
modo: "0777"
convertirse en: si

Una vez que ejecute el libro de jugadas, tendrá un directorio con la marca de tiempo.

$ ls -l

La lista de directorios debe ser como se muestra a continuación:

total 0 drwxrwxrwx. 2 root root 6 de marzo de 18:03 mysql2021-03-06

NOTA: Para evitar errores, siempre verifique la sintaxis del archivo YAML que desea usar en Ansible.

Conclusión

Este tutorial le mostró que trabajar con módulos de Ansible es muy fácil e intuitivo, lo que simplifica la automatización de tareas complejas. Con el módulo de archivo Ansible, puede crear uno o más directorios y agregar permisos para cada. También puede usar el mismo módulo para eliminar un directorio. Para obtener más información sobre cómo usar el módulo de archivo Ansible, consulte la documentación oficial en la página de recursos.

Cómo invertir la dirección de desplazamiento del mouse y los paneles táctiles en Windows 10
Ratón y Panel táctils no solo facilitan la informática, sino que también hacen que sea más eficiente y requieran menos tiempo. No podemos imaginar una...
Cómo cambiar el tamaño, el color y el esquema del puntero del mouse y del cursor en Windows 10
El puntero y el cursor del mouse en Windows 10 son aspectos muy importantes del sistema operativo. Esto también se puede decir de otros sistemas opera...
Motores de juegos gratuitos y de código abierto para desarrollar juegos de Linux
Este artículo cubrirá una lista de motores de juegos de código abierto y gratuitos que se pueden usar para desarrollar juegos 2D y 3D en Linux. Existe...