0x0i.phoronix
Rol de Ansible :bar_chart: :boom: Phoronix
Tabla de Contenidos
- Plataformas Soportadas
- Requisitos
- Variables del Rol
- Dependencias
- Ejemplo de Playbook
- Licencia
- Información del Autor
Rol de Ansible que instala y configura Phoronix-Test-Suite (PTS): una plataforma completa y extensible para pruebas y evaluación de rendimiento de diversos hardware y subsistemas de máquinas.
Plataformas Soportadas:
* Redhat (CentOS/Fedora)
* Ubuntu
Requisitos
Se requiere que la utilidad unzip/gtar
esté instalada en el host de destino. Consulta las notas del módulo unarchive
de ansible para más detalles.
Variables del Rol
Las variables están disponibles y organizadas según las siguientes etapas de aprovisionamiento de software y máquinas:
- instalación
- configuración
- lanzamiento
- desinstalación
Instalación
Las siguientes variables pueden ser personalizadas para controlar varios aspectos de este proceso de instalación, desde la versión del paquete o el archivo a descargar y instalar, hasta la colección de información del sistema y capacidades de los hosts destinados:
install_type: <package | archive>
(predeterminado: archive)
- paquete: soportado por las distribuciones de Debian y Redhat, la instalación de paquete de PTS toma el paquete especificado del repositorio correspondiente.
package_name: <nombre-del-paquete-y-versión>
(predeterminado: phoronix-test-suite[-latest])
nombre y versión del paquete phoronix-test-suite para descargar e instalar. Referencia o ejecuta algo como
dnf --showduplicates list phoronix-test-suite
en una terminal para mostrar una lista de paquetes disponibles para tu plataforma.- Ten en cuenta que el directorio de instalación es determinado por el sistema de gestión de paquetes y actualmente se predetermina a
/usr/bin
para todas las distribuciones.
- Ten en cuenta que el directorio de instalación es determinado por el sistema de gestión de paquetes y actualmente se predetermina a
archivo: compatible con formatos tar y zip, los binarios de instalación archivados pueden ser obtenidos de archivos comprimidos locales y remotos, ya sea del índice de lanzamientos oficiales o de fuentes de desarrollo/customización.
install_dir: </ruta/a/dir/de/instalacion>
(predeterminado: /opt/phoronix
)
- ruta en el host de destino donde se deben extraer los binarios de
PTS
. SOLO relevante cuandoinstall_type
está configurado como archivo.
archive_url: <ruta-o-url-al-archivo>
(predeterminado: ver defaults/main.yml
)
- dirección de un archivo comprimido tar o zip que contiene los binarios de
ansible
. Este método soporta técnicamente la instalación de cualquier versión disponible dephoronix-test-suite
. Los enlaces a versiones oficiales se pueden encontrar aquí. SOLO relevante cuandoinstall_type
está configurado como archivo.
inspect_system: <true | false>
(predeterminado: true)
- cargar información del sistema recolectada por PTS sobre el host de destino. La información consiste en:
- detalles generales del sistema e información de diagnóstico
- capacidades de sensores adjuntos
- configuración de red
Configuración
...descripción de variables relacionadas con la configuración...
Lanzamiento
Cuando se opera en modo autopilot
SOLO, la ejecución de suites de pruebas de PTS y pruebas individuales o grupos de pruebas se lleva a cabo utilizando la herramienta de gestión de servicios systemd. Se lanzan como procesos en segundo plano o demonios sujetos a la configuración y potencial de ejecución proporcionada por el marco de gestión de Servicios de systemd
, cada ejecución de prueba se puede ejecutar dentro de un entorno de acuerdo con requisitos específicos de ejecución y/o especificaciones del operador, así como operar en paralelo o secuencialmente según un orden definido.
Las siguientes variables pueden ajustarse para gestionar estas políticas de ejecución.
default_run_asynchronous: <true | false>
(predeterminado: false)
- si se deben ejecutar las pruebas configuradas de forma asíncrona y en paralelo en un host particular por defecto o ejecutarse de forma sincrónica, esperando que cada prueba termine antes de comenzar la siguiente. De lo contrario, se deferirá a la preferencia de ejecución.
default_autopilot: <true | false>
(predeterminado: false)
- ejecutar automáticamente una prueba/corrida de benchmarking, desde la instalación hasta la presentación de resultados, utilizando configuraciones proporcionadas por el operador por defecto. De lo contrario, se deferirá a la preferencia de ejecución.
[user_configs: <entrada-de-configuracion>: test_runs: <entrada-de-prueba>:] unit_properties: <hash>
(predeterminado: {}
)
- hash de configuraciones utilizadas para personalizar la configuración del
unit
de[Service]
y el entorno de ejecución deltest run
del servicio systemd.
Ejemplo
user_configs:
- user: devops
config:
BatchMode:
SaveResults: true
test_runs:
- name: pts/compress-gzip
runtime_config:
test_results_name: test-compress-results
unit_properties:
# Reiniciar automáticamente y continuar con la ejecución de la prueba en caso de fallo - *nota*: reutilizar `test_results_name` definido arriba
Restart: on-failure
ExecReload: phoronix-test-suite finish-run test-compress-results
# Ejecutar script auxiliar post-ejecución para convertir resultados de prueba a json y almacenarlo en un archivo para subir
ExecStopPre: /usr/bin/test_post_exec.sh test-compress-results
ExecStopPost: "aws s3 cp /opt/phoronix/test-compress-results.results.json s3://benchmark_results/"
Desinstalación
El soporte para desinstalar y eliminar artefactos necesarios para el aprovisionamiento permite a los usuarios/operadores devolver un host de destino a su estado configurado antes de la aplicación de este rol. Esto puede ser útil para reciclar nodos y roles y tal vez proporcionar transiciones más suaves/manejadas entre actualizaciones de herramientas.
Las siguientes variable(s) pueden ser personalizadas para gestionar este proceso de desinstalación:
perform_uninstall: <true | false>
(predeterminado: false
)
- si se debe desinstalar y eliminar todos los artefactos y restos de esta instalación de
phoronix-test-suite
en un host de destino (ver:handlers/main.yml
para detalles).
Dependencias
0x0i.systemd
Ejemplo de Playbook
ejemplo predeterminado:
- hosts: benchmark-nodes
roles:
- role: 0x0I.phoronix
Licencia
MIT
Información del Autor
Este rol fue creado en 2019 por O1.IO.
phoronix-test-suite, a comprehensive testing and benchmarking platform
ansible-galaxy install 0x0i.phoronix