Introducción

Introducción

Introducción

Hasta ahora creamos un bloque en el /etc/sudoersarchivo con N entradas.

Esta no es una buena solución, ya que a veces solo queremos actualizar un sistema y proporcionar datos de pilares explícitos. Entonces pillar.systemshay una lista con una sola entrada.

Código antiguo

etc_sudoers:
  file.blockreplace:
    - name: /etc/sudoers
    - marker_start: "# START managed zone etc_sudoers -DO-NOT-EDIT-"
    - marker_end: "# END managed zone etc_sudoers --"
    - content: |
{% for system_name in pillar.systems %}
        {{system_name}} ALL = NOPASSWD: /bin/systemctl restart apache2*
{% endfor %}

    - append_if_not_found: True
    - backup: '.bak'
    - show_changes: True

Nuevo código

{% for system_name in pillar.systems %}
etc_sudoers_{{system_name}}:
  file.blockreplace:
    - name: /etc/sudoers
    - marker_start: "# START managed zone etc_sudoers_{{system_name}} -DO-NOT-EDIT-"
    - marker_end: "# END managed zone etc_sudoers_{{system_name}} --"
    - content: |
        {{system_name}} ALL = NOPASSWD: /bin/systemctl restart apache2*

    - append_if_not_found: True
    - backup: '.bak'
    - show_changes: True
{% endfor %}

Pregunta

¿Cómo eliminar el bloque antiguo que todavía está en los servidores?

Respuesta1

Resolvería esto configurando un estado como ese:

etc_sudoers:
  file.blockreplace:
    - name: /etc/sudoers
    - marker_start: "# START managed zone etc_sudoers -DO-NOT-EDIT-"
    - marker_end: "# END managed zone etc_sudoers --"
    - content: '#'
    - append_if_not_found: False
    - backup: '.bak'
    - show_changes: True

Luego eliminaría las tres líneas de comentarios usando el cmd.runmódulo junto con, por ejemplo,sed.

Es posible que desee utilizar el enfoque sed directamente, lo que hace que el estado temporal sea innecesario, pero esto depende de sus necesidades; si elimina el estilo antiguo de una vez en todas partes, el segundo enfoque podría ser más fácil. Si migras cajas una tras otra durante meses, la definición del estado es más clara.

información relacionada