Nota

Este módulo es parte de ansible-base e incluido en todas las instalaciones de Ansible. En la mayoría de los casos, puede utilizar el nombre corto del módulo blockinfile incluso sin especificar el collections: palabra clave. A pesar de eso, le recomendamos que utilice el FQCN para facilitar la vinculación a la documentación del módulo y evitar conflictos con otras colecciones que puedan tener el mismo nombre de módulo.

Nuevo en la versión 2.0: de ansible.builtin

  • Sinopsis
  • Parámetros
  • Notas
  • Ejemplos de

Sinopsis

  • Este módulo insertará / actualizará / eliminará un bloque de texto de varias líneas rodeado de líneas de marcador personalizables.

Parámetros

Parámetro Opciones / Valores predeterminados Comentarios
attributesstring agregado en 2.3 de ansible.builtin los attributes el archivo o directorio resultante debe tener. Para obtener indicadores compatibles, consulte la página de manual para chattr en el sistema de destino. string debe contener el attributes en el mismo orden que el mostrado por lsattr.Los = El operador se asume como predeterminado, de lo contrario + o - los operadores deben estar incluidos en el string.
alias: attr
respaldobooleano
    Opciones:

  • no
Cree un archivo de respaldo que incluya la información de la marca de tiempo para que pueda recuperar el archivo original si de alguna manera lo golpeó incorrectamente.
cuadrastring Defecto:
“”
El texto que se va a insertar dentro de las líneas del marcador, si falta o está vacío string, el bloque se eliminará como si state fueron especificados para absent.
alias: contenido
crearbooleano
    Opciones:

  • no
Cree un nuevo archivo si no existe.
grupostring Nombre del grupo que debería ser propietario del archivo / directorio, como se enviaría a chown.
insertar despuésstring
    Opciones:

  • EOF
  • * expresión regular *
Si se especifica y no comienza / termina marker se encuentran líneas, el bloque se insertará después de la última coincidencia de la expresión regular especificada. Hay un valor especial disponible; EOF para insertar el bloque al final del archivo. Si la expresión regular especificada no tiene coincidencias, EOF se utilizará en su lugar.
insertar antesstring
    Opciones:

  • BOF
  • * expresión regular *
Si se especifica y no comienza / termina marker se encuentran líneas, el bloque se insertará antes de la última coincidencia de la expresión regular especificada. Hay un valor especial disponible; BOF para insertar el bloque al principio del archivo. Si la expresión regular especificada no tiene coincidencias, el bloque se insertará al final del archivo.
marcadorstring Defecto:
“# mark ANSIBLE BLOQUE ADMINISTRADO”
La plantilla de línea de marcador.mark será reemplazado con los valores en marker_begin (predeterminado = “BEGIN”) y marker_end (predeterminado = “FIN”). El uso de un marcador personalizado sin el mark La variable puede resultar en que el bloque se inserte repetidamente en ejecuciones posteriores del libro de jugadas.
marker_beginstring agregado en 2.5 de ansible.builtin Defecto:
“EMPEZAR”
Esto se insertará en mark en el marcador de bloque ansible de apertura.
marker_endstring agregado en 2.5 de ansible.builtin Defecto:
“FIN”
Esto se insertará en mark en el marcador de bloque ansible de cierre.
modocrudo Los permisos que debe tener el archivo o directorio resultante. / usr / bin / chmod recuerde que los modos son en realidad números octales. Debe agregar un cero a la izquierda para que el analizador YAML de Ansible sepa que es un número octal (como 0644 o 01777) o citarlo (como '644' o '1777') por lo que Ansible recibe un string y puede hacer su propia conversión desde string Darle a Ansible un número sin seguir una de estas reglas terminará con un número decimal que tendrá resultados inesperados.A partir de Ansible 1.8, el modo puede especificarse como un modo simbólico (por ejemplo, u+rwx o u=rw,g=r,o=r).Si mode no se especifica y el archivo de destino no existe, el predeterminado umask en el sistema se utilizará al configurar el modo para el archivo recién creado. mode no se especifica y el archivo de destino lo hace existe, se utilizará el modo del archivo existente. mode es la mejor manera de garantizar que los archivos se creen con los permisos correctos. Consulte CVE-2020-1736 para obtener más detalles.
dueñostring Nombre del usuario que debería ser propietario del archivo / directorio, como se enviaría a chown.
senderosendero / requerido El archivo a modificar.Antes de Ansible 2.3 esta opción solo se podía usar como dest, destfile y nombre.
alias: dest, destfile, nombre
selevelstring La parte de nivel del contexto del archivo SELinux. Este es el MLS / MCS attribute, a veces conocido como el range.Cuando se establece en _default, usará el level parte de la póliza si está disponible.
serolastring El rol parte del contexto del archivo SELinux. _default, usará el role parte de la póliza si está disponible.
setypestring La parte de tipo del contexto del archivo SELinux. _default, usará el type parte de la póliza si está disponible.
seuserstring La parte del usuario del contexto del archivo SELinux. system política, cuando corresponda. _default, usará el user parte de la póliza si está disponible.
estadostring
    Opciones:

  • ausente
  • regalo
Si el bloque debería estar allí o no.
unsafe_writesbooleano agregado en 2.2 de ansible.builtin
    Opciones:

  • no
Influir en el momento de utilizar la operación atómica para evitar la corrupción de datos o lecturas inconsistentes del archivo de destino. De forma predeterminada, este módulo utiliza operaciones atómicas para evitar la corrupción de datos o lecturas inconsistentes de los archivos de destino, pero a veces los sistemas están configurados o simplemente dañados de manera que evitan esto. . Un ejemplo son los archivos montados en la ventana acoplable, que no se pueden actualizar atómicamente desde el interior del contenedor y solo se pueden escribir de manera insegura. Esta opción permite que Ansible recurra a métodos inseguros para actualizar archivos cuando fallan las operaciones atómicas (sin embargo, no es así forzar a Ansible a realizar escrituras inseguras). Las escrituras no seguras están sujetas a condiciones de carrera y pueden provocar daños en los datos.
validarstring El comando de validación para ejecutar antes de copiar en su lugar. La ruta al archivo para validar se pasa a través de ‘% s’ que debe estar presente como en los ejemplos a continuación. El comando se pasa de forma segura para que las funciones de shell como la expansión y las tuberías no funcionen .

Notas

Nota

  • Este módulo admite el modo de verificación.
  • Cuando utilice bucles ‘with_ *’, tenga en cuenta que si no establece una marca única, el bloque se sobrescribirá en cada iteración.
  • A partir de Ansible 2.3, el dest la opción ha sido cambiada a sendero por defecto, pero dest todavía funciona también.
  • Opción seguir se ha eliminado en Ansible 2.5, porque este módulo modifica el contenido del archivo por lo que seguir = no no tiene sentido.
  • Cuando se deba manejar más de un bloque en un archivo, debe cambiar el marcador por tarea.

Ejemplos de

# Before Ansible 2.3, option 'dest' or 'name' was used instead of 'path'
- name: Insert/Update "Match User" configuration block in /etc/ssh/sshd_config
  blockinfile:
    path: /etc/ssh/sshd_config
    block: |
      Match User ansible-agent
      PasswordAuthentication no

- name: Insert/Update eth0 configuration stanza in /etc/network/interfaces
        (it might be better to copy files into /etc/network/interfaces.d/)
  blockinfile:
    path: /etc/network/interfaces
    block: |
      iface eth0 inet static
          address 192.0.2.23
          netmask 255.255.255.0

- name: Insert/Update configuration using a local file and validate it
  blockinfile:
    block: " lookup('file', './local/sshd_config') "
    path: /etc/ssh/sshd_config
    backup: yes
    validate: /usr/sbin/sshd -T -f %s

- name: Insert/Update HTML surrounded by custom markers after  line
  blockinfile:
    path: /var/www/html/index.html
    marker: ""
    insertafter: ""
    block: |
      
      

Last updated on ansible_date_time.iso8601

- name: Remove HTML as well as surrounding markers blockinfile: path: /var/www/html/index.html marker: "" block: "" - name: Add mappings to /etc/hosts blockinfile: path: /etc/hosts block: | item.ip item.name marker: "# mark ANSIBLE MANAGED BLOCK item.name " loop: - name: host1, ip: 10.10.1.10 - name: host2, ip: 10.10.1.11 - name: host3, ip: 10.10.1.12

Autores

  • Yaegashi Takeshi (@yaegashi)