Saltar a contenidoSaltar a navegación de páginas: página anterior [tecla acceso p]/página siguiente [tecla acceso n]
Se aplica a SUSE Enterprise Storage 5

7 Personalización de la configuración por defecto

Es posible cambiar la configuración por defecto del clúster generada en la fase 2 (consulte Descripción de las fases de DeepSea). Por ejemplo, quizás sea necesario cambiar los valores de red o el software que se instala en el master de Salt por defecto. Lo primero se puede llevar a cabo modificando la versión actualizada de Pillar después de la fase 2, mientras que lo segundo se realiza normalmente creando un archivo sls personalizado y añadiéndolo a Pillar. Los detalles se describen en las secciones siguientes.

7.1 Uso de archivos de configuración personalizados

En esta sección se muestran varias tareas para las que es necesario añadir o cambiar un archivo sls propio. Normalmente, tal procedimiento se utiliza si es preciso cambiar el proceso de distribución por defecto.

Sugerencia
Sugerencia: prefijo para los archivos .sls personalizados

Los archivos personalizados .sls se encuentran en el mismo subdirectorio que los archivos .sls de DeepSea. Para evitar que se sobrescriban con los que se añadan después a partir del paquete de DeepSea, añada el prefijo custom- a su nombre.

7.1.1 Inhabilitación de un paso de la distribución

Si lleva a cabo una tarea específica fuera del proceso de distribución de DeepSea y, por lo tanto, necesita omitir ese paso, cree un archivo "no operation" siguiendo este ejemplo:

Procedimiento 7.1: Inhabilitación de la sincronización horaria
  1. Cree /srv/salt/ceph/time/disabled.sls con el contenido siguiente y guárdelo:

    disable time setting:
    test.nop
  2. Edite /srv/pillar/ceph/stack/global.yml, añada la línea siguiente y guárdelo:

    time_init: disabled
  3. Para verificar, actualice Pillar y ejecute el paso:

    root@master # salt target saltutil.pillar_refresh
    root@master # salt 'admin.ceph' state.apply ceph.time
    admin.ceph:
      Name: disable time setting - Function: test.nop - Result: Clean
    
    Summary for admin.ceph
    ------------
    Succeeded: 1
    Failed:    0
    ------------
    Total states run:     1
    Nota
    Nota: ID exclusivo

    El ID de tarea "disable time setting" (inhabilitar valor de hora) puede ser cualquier mensaje único dentro de un archivo sls. Cómo evitar conflictos de ID especificando descripciones exclusivas.

7.1.2 Sustitución de un paso de la distribución

Si necesita sustituir el comportamiento por defecto de un paso específico por otro personalizado, cree un archivo sls personalizado con el contenido de sustitución.

Por defecto, /srv/salt/ceph/pool/default.sls crea una imagen rbd denominada "demo". En nuestro ejemplo, no queremos crear esta imagen, ya que necesitamos dos imágenes: "archive1" y "archive2".

Procedimiento 7.2: Sustitución de la imagen rbd demo por dos imágenes rbd personalizadas
  1. Cree /srv/salt/ceph/pool/custom.sls con el contenido siguiente y guárdelo:

    wait:
      module.run:
        - name: wait.out
        - kwargs:
            'status': "HEALTH_ERR"1
        - fire_event: True
    
    archive1:
      cmd.run:
        - name: "rbd -p rbd create archive1 --size=1024"2
        - unless: "rbd -p rbd ls | grep -q archive1$"
        - fire_event: True
    
    archive2:
      cmd.run:
        - name: "rbd -p rbd create archive2 --size=768"
        - unless: "rbd -p rbd ls | grep -q archive2$"
        - fire_event: True

    1

    El módulo wait se pondrá en pausa hasta que el clúster de Ceph no tenga el estado HEALTH_ERR. En las instalaciones nuevas, un clúster de Ceph puede tener este estado hasta que haya un número suficiente de OSD disponibles y haya terminado la creación de los repositorios.

    2

    El comando rbd no es idempotente. Si se vuelve a ejecutar el mismo comando de creación cuando la imagen exista, se producirá un error en el estado de Salt. La declaración unless lo impide.

  2. Para llamar al archivo personalizado recién creado en lugar del archivo por defecto, debe editar el archivo /srv/pillar/ceph/stack/ceph/cluster.yml, añadir la línea siguiente y guardarlo:

    pool_init: custom
  3. Para verificar, actualice Pillar y ejecute el paso:

    root@master # salt target saltutil.pillar_refresh
    root@master # salt 'admin.ceph' state.apply ceph.pool
Nota
Nota: autorización

La creación de repositorios o imágenes requiere disponer de autorización suficiente. El minion admin.ceph dispone de un anillo de claves de administración.

Sugerencia
Sugerencia: alternativa

Otra opción consiste en cambiar la variable presente en /srv/pillar/ceph/stack/ceph/roles/master.yml. Mediante este archivo, se reduce la cantidad de datos de Pillar para otros minions.

7.1.3 Modificación de un paso de la distribución

En ocasiones, puede ser preciso que un paso específico lleve a cabo algunas tareas adicionales. No se recomienda modificar el archivo de estado relacionado, ya que complicaría una futura actualización. En su lugar, para llevar a cabo las tareas adicionales cree un archivo independiente idéntico al que se describe en la Sección 7.1.2, “Sustitución de un paso de la distribución”.

Asigne un nombre descriptivo al nuevo archivo sls. Por ejemplo, si necesita crear dos imágenes rbd además de la imagen demo, asigne al archivo el nombre archive.sls.

Procedimiento 7.3: Creación de dos imágenes rbd adicionales
  1. Cree /srv/salt/ceph/pool/custom.sls con el contenido siguiente y guárdelo:

    include:
     - .archive
     - .default
    Sugerencia
    Sugerencia: incluir prioridad

    En este ejemplo, Salt va a crear las imágenes archive y la imagen demo. El orden no importa en este ejemplo. Para cambiar el orden, invierta las líneas después de la directiva include:.

    Puede añadir la línea include directamente en archive.sls y, así, se crearán todas las imágenes. No obstante, con independencia de dónde se coloque la línea include, Salt procesa primero los pasos del archivo incluido. Aunque este comportamiento puede anularse con las declaraciones requires y order, al usar un archivo independiente que incluya a los demás se garantiza el orden y se reducen las posibilidades de que haya confusiones.

  2. Edite /srv/pillar/ceph/stack/ceph/cluster.yml, añada la línea siguiente y guárdelo:

    pool_init: custom
  3. Para verificar, actualice Pillar y ejecute el paso:

    root@master # salt target saltutil.pillar_refresh
    root@master # salt 'admin.ceph' state.apply ceph.pool

7.1.4 Modificación de una etapa de la distribución

Si necesita añadir un paso de distribución completamente independiente, cree tres archivos nuevos: un archivo sls para ejecutar el comando, un archivo de organización y un archivo personalizado que adapte el paso nuevo a los pasos de la distribución original.

Por ejemplo, si necesita ejecutar logrotate en todos los minions como parte de la fase de preparación:

Cree primero un archivo sls e incluya el comando logrotate.

Procedimiento 7.4: Ejecución de logrotate en todos los minions de Salt
  1. Cree un directorio /srv/salt/ceph/logrotate.

  2. Cree /srv/salt/ceph/logrotate/init.sls con el contenido siguiente y guárdelo:

    rotate logs:
      cmd.run:
        - name: "/usr/sbin/logrotate /etc/logrotate.conf"
  3. Verifique que el comando funciona en un minion:

    root@master # salt 'admin.ceph' state.apply ceph.logrotate

Dado que el archivo de organización debe ejecutarse antes que los demás pasos de preparación, añádalo a la fase 0 Prep:

  1. Cree /srv/salt/ceph/stage/prep/logrotate.sls con el contenido siguiente y guárdelo:

    logrotate:
      salt.state:
        - tgt: '*'
        - sls: ceph.logrotate
  2. Verifique que el archivo de organización funciona:

    root@master # salt-run state.orch ceph.stage.prep.logrotate

El último archivo es el personalizado, que añade el paso adicional a los pasos originales:

  1. Cree /srv/salt/ceph/stage/prep/custom.sls con el contenido siguiente y guárdelo:

    include:
      - .logrotate
      - .master
      - .minion
  2. Sustituya el comportamiento por defecto. Edite /srv/pillar/ceph/stack/global.yml, añada la siguiente línea y guarde el archivo:

    stage_prep: custom
  3. Compruebe que la fase 0 funciona:

    root@master # salt-run state.orch ceph.stage.0
Nota
Nota: ¿por qué global.yml?

Se prefiere el archivo global.yml en lugar del archivo cluster.yml porque durante la fase prep ningún minion pertenece al clúster de Ceph y este no tiene acceso a ninguno de los valores de cluster.yml.

7.1.5 Inhabilitación de actualizaciones y reinicios durante la fase 0

Durante la fase 0 (consulte Descripción de las fases de DeepSea para obtener más información acerca de las fases de DeepSea) el master y los minions de Salt pueden reiniciarse debido a que los paquetes se actualizan; por ejemplo, kernel, requiere que se reinicie el sistema.

Para evitar que los nodos de clúster se actualicen o se reinicien durante la fase 0, edite /srv/pillar/ceph/stack/ceph/cluster.yml y añada la opciones stage_prep_master o stage_prep_minion, según si debe modificar el comportamiento del master de Salt, de todos los minions o de todos los nodos.

Ambas opciones aceptan los valores siguientes:

default-no-update-no-reboot

Impide que el formulario de nodos actualice y reinicie sus paquetes.

default-no-update-reboot

Impide que los nodos actualicen sus paquetes, pero se permiten los reinicios.

default-update-no-reboot

Impide que los nodos se reinicien, pero se permite la actualización de sus paquetes.

default

Permite actualizar los paquetes de los nodos y reiniciarlos.

7.2 Modificación de la configuración descubierta

Después de completada la fase 2, puede ser necesario cambiar la configuración descubierta. Para ver los valores actuales, ejecute:

root@master # salt target pillar.items

El resultado de la configuración por defecto para un único minion es normalmente similar al siguiente:

----------
    available_roles:
        - admin
        - mon
        - storage
        - mds
        - igw
        - rgw
        - client-cephfs
        - client-radosgw
        - client-iscsi
        - mds-nfs
        - rgw-nfs
        - master
    cluster:
        ceph
    cluster_network:
        172.16.22.0/24
    fsid:
        e08ec63c-8268-3f04-bcdb-614921e94342
    master_minion:
        admin.ceph
    mon_host:
        - 172.16.21.13
        - 172.16.21.11
        - 172.16.21.12
    mon_initial_members:
        - mon3
        - mon1
        - mon2
    public_address:
        172.16.21.11
    public_network:
        172.16.21.0/24
    roles:
        - admin
        - mon
        - mds
    time_server:
        admin.ceph
    time_service:
        ntp

Los valores mencionados anteriormente están distribuidos en varios archivos de configuración. La estructura de directorio con estos archivos se define en el directorio /srv/pillar/ceph/stack/stack.cfg. Normalmente, los archivos siguientes describen el clúster:

  • /srv/pillar/ceph/stack/global.yml: el archivo afecta a todos los minions del clúster de Salt.

  • /srv/pillar/ceph/stack/ceph/cluster.yml: el archivo afecta a todos los minions del clúster de Ceph denominado ceph.

  • /srv/pillar/ceph/stack/ceph/roles/función.yml: afecta a todos los minions que tienen asignada la función específica en el clúster ceph.

  • /srv/pillar/ceph/stack/cephminions/ID de minion/yml: afecta a ese minion particular.

Nota
Nota: sobrescritura de directorios con los valores por defecto

Hay un árbol de directorios paralelo donde se almacena la configuración por defecto en /srv/pillar/ceph/stack/default. No cambie los valores aquí presentes, ya que se sobrescriben.

El procedimiento habitual para cambiar la configuración recopilada es el siguiente:

  1. Busque la ubicación del elemento de configuración que debe cambiar. Por ejemplo, si necesita cambiar los valores relacionados con el clúster, como la red del clúster, edite el archivo /srv/pillar/ceph/stack/ceph/cluster.yml.

  2. Guarde el archivo.

  3. Para verificar los cambios, ejecute:

    root@master # salt target saltutil.pillar_refresh

    y a continuación:

    root@master # salt target pillar.items
Imprimir esta página