Tema: configuration
-
Cómo escribir scripts de administración idempotentes: comprobar antes de cambiar, archivos drop-in y comentarios marcadores
Un script de administración que un agente pueda volver a ejecutar tras un fallo parcial o por una programación repetida debe dejar el sistema en el mismo estado se ejecute una vez o cinco. Tres patrones lo garantizan: comprobar el estado actual antes de cambiarlo, escribir archivos drop-in independientes en lugar de editar los compartidos y marcar cada bloque que el script gestiona.
-
Rastrear un valor de configuración desde su declaración hasta el comportamiento efectivo en tiempo de ejecución
Explicar por qué la edición de un archivo de configuración cambió o no el comportamiento de la aplicación, rastreando el valor a través de su ruta real de carga y sobrescritura.
-
ConfigMaps y Secrets en Kubernetes: límites de tamaño, propagación de actualizaciones y lo que un Secret no protege
Tanto los ConfigMaps como los Secrets son objetos clave-valor con un límite de 1 MiB; las claves montadas como volumen se actualizan tras un retraso de sincronización del kubelet, mientras que las variables de entorno nunca lo hacen, los montajes subPath nunca se actualizan, y un Secret solo está codificado en base64 y se almacena sin cifrar en etcd salvo que se configuren el cifrado en reposo y el RBAC.
-
Promover un mismo build a través de los entornos: promoción de configuración y paridad entre desarrollo y producción
Construir un artefacto una sola vez, darle una identidad inmutable y promover ese artefacto exacto desde pruebas a staging y a producción, cambiando solo la configuración específica de cada entorno; mantener los entornos similares en servicios de respaldo y topología, para que superar una etapa permita predecir la siguiente.
-
Probar cambios de configuración que alteran la autoridad de otro usuario
Identificar las escrituras de configuración que otorgan permisos de forma indirecta, incluso cuando su endpoint parece una edición de configuración ordinaria. Esta propuesta sigue el cambio de autoridad resultante en lugar de juzgar el riesgo por el nombre de la ruta.
-
El Object Data Manager: por qué la configuración de dispositivos y del sistema de AIX no está en un archivo
AIX almacena las definiciones de dispositivos, las entradas de subsistemas SRC y muchos atributos del sistema como objetos en la base de datos Object Data Manager (ODM), bajo /etc/objrepos y /usr/lib/objrepos, y no en archivos de texto editables. lsattr, lsdev y chdev son la interfaz admitida; chdev -P aplaza un cambio hasta el siguiente reinicio en lugar de aplicarlo de inmediato.
-
Cambiar la configuración de un servicio gestionado por SMF con svccfg en lugar de editar su archivo de configuración
svccfg listprop/setprop leen y escriben la configuración persistente de un servicio en el repositorio de SMF; svcadm refresh la copia a la instantánea en ejecución. Si SMF genera el archivo de configuración de un servicio (por ejemplo /etc/resolv.conf a partir de network/dns/client), los cambios manuales en ese archivo se sobrescriben.
-
Docker Compose para el desarrollo local: archivos override, perfiles, dependencias saludables y watch
Mantener un único compose.yaml confirmado en el control de versiones que refleje la forma de producción, añadir un compose.override.yaml para los puertos locales y los bind mounts, colocar las herramientas opcionales detrás de perfiles, hacer que depends_on espere a service_healthy, y usar develop.watch para sincronizar o reconstruir ante cambios de archivos.
-
Gestionar secretos fuera del repositorio
Las credenciales deben vivir en una configuración protegida que se inyecta en tiempo de ejecución, nunca en el control de versiones, en las imágenes ni en los logs. Cada servicio recibe credenciales propias y de alcance mínimo, y la rotación es un procedimiento practicado, no una emergencia. Los pasos siguen la hoja de referencia de OWASP sobre gestión de secretos y la separación de configuración y código de Twelve-Factor.
-
Valores predeterminados seguros y diseño que falla en modo cerrado
El principio de valores predeterminados a prueba de fallos de Saltzer y Schroeder basa el acceso en permisos explícitos, de modo que un error deniegue en lugar de conceder; hoy se traduce en autorización con denegación por defecto, configuración que se niega a arrancar si falta un ajuste de seguridad y rutas de error que cierran el acceso en vez de abrirlo.
-
Tipado implícito en YAML 1.1 frente a 1.2: el problema de Noruega, los números octales y qué analizador usa cada versión
El tipo booleano de YAML 1.1 trata yes, no, on y off como booleanos y un cero inicial como octal; el Core Schema de YAML 1.2 limita los booleanos a true/false y exige el prefijo explícito 0o para el octal. PyYAML, js-yaml y gopkg.in/yaml.v3 se sitúan cada uno en un punto distinto entre ambas versiones.
-
Configurar parámetros del kernel de Linux con sysctl: cambios en tiempo de ejecución frente a /etc/sysctl.d
sysctl -w cambia un parámetro del kernel solo hasta el próximo reinicio; para que el cambio sea persistente hay que colocar un archivo en /etc/sysctl.d/ y entender el orden de carga entre /usr/lib, /etc y /run. sysctl --system aplica todos los archivos configurados e indica cuál prevalece en caso de conflicto.
Legible por máquina: JSON