Rayder: Herramienta liviana para orquestar y organizar flujos de trabajo de línea de comandos

Rayder es una herramienta de línea de comandos diseñada para simplificar la orquestación y ejecución de flujos de trabajo. Le permite definir una serie de módulos en un archivo YAML, cada uno de los cuales consta de comandos para ejecutar.

Rayder le ayuda a automatizar procesos complejos, facilitando la optimización de módulos repetitivos y su ejecución en paralelo si los comandos no dependen unos de otros.

Instalación

Para instalar Rayder, asegúrese de tener Go (1.16 o superior) instalado en su sistema. Luego, ejecute el siguiente comando:

go install github.com/devanshbatham/[email protected]

Uso

Rayder ofrece una forma sencilla de ejecutar flujos de trabajo definidos en archivos YAML. Utilice el siguiente comando:

rayder -w path/to/workflow.yaml

Configuración del flujo de trabajo

Un flujo de trabajo se define en un archivo YAML con la siguiente estructura:

vars:
VAR_NAME: value
# Add more variables...
parallel: true|false
modules:
- name: task-name
cmds:
- command-1
- command-2
# Add more commands...
silent: true|false
# Add more modules...

Uso de variables en flujos de trabajo

Rayder le permite utilizar variables en la configuración de su flujo de trabajo, lo que facilita la parametrización de sus comandos y logra una mayor flexibilidad. Puede definir variables en la vars sección de su archivo YAML de flujo de trabajo. Luego se puede hacer referencia a estas variables dentro de las cadenas de comando usando llaves dobles ( {{}} ).

Definición de variables

Para definir variables, agréguelas a la vars sección de su archivo YAML de flujo de trabajo:

vars:
VAR_NAME: value
ANOTHER_VAR: another_value
# Add more variables...

Hacer referencia a variables en comandos

Puede hacer referencia a variables dentro de sus cadenas de comando usando llaves dobles ( {{}} ). Por ejemplo, si definiste una variable OUTPUT_DIR , puedes usarla así:

modules:
- name: example-task
cmds:
- echo "Output directory {{OUTPUT_DIR}}"

Suministro de variables a través de la línea de comando

También puede proporcionar valores para variables a través de la línea de comando al ejecutar su flujo de trabajo. Utilice el formato VARIABLE_NAME=value para proporcionar valores para variables específicas. Por ejemplo:

rayder -w path/to/workflow.yaml VAR_NAME=new_value ANOTHER_VAR=updated_value

Si no proporciona valores para las variables a través de la línea de comando, Rayder aplicará automáticamente los valores predeterminados definidos en la vars sección de su archivo YAML de flujo de trabajo.

Recuerde que las variables proporcionadas a través de la línea de comando anularán los valores predeterminados definidos en la configuración de YAML.

Ejemplo

Ejemplo 1:

A continuación se muestra un ejemplo de cómo puede definir, hacer referencia y proporcionar variables en la configuración de su flujo de trabajo:

vars:
ORG: "example.org"
OUTPUT_DIR: "results"
modules:
- name: example-task
cmds:
- echo "Organization {{ORG}}"
- echo "Output directory {{OUTPUT_DIR}}"

Al ejecutar el flujo de trabajo, puede proporcionar valores para ORG y OUTPUT_DIR a través de la línea de comando como este:

rayder -w path/to/workflow.yaml ORG=custom_org OUTPUT_DIR=custom_results_dir

Esto anulará los valores predeterminados y utilizará los valores proporcionados para estas variables.

Ejemplo 2:

Aquí hay un ejemplo de configuración de flujo de trabajo diseñada para el reconocimiento whois inverso y el procesamiento de los dominios raíz en subdominios, resolviéndolos y verificando cuáles están activos:

vars:
ORG: "Acme, Inc"
OUTPUT_DIR: "results-dir"
parallel: false
modules:
- name: reverse-whois
silent: false
cmds:
- mkdir -p {{OUTPUT_DIR}}
- revwhoix -k "{{ORG}}" > {{OUTPUT_DIR}}/root-domains.txt
- name: finding-subdomains
cmds:
- xargs -I {} -a {{OUTPUT_DIR}}/root-domains.txt echo "subfinder -d {} -o {}.out" | quaithe -workers 30 
silent: false
- name: cleaning-subdomains
cmds:
-  cat *.out > {{OUTPUT_DIR}}/root-subdomains.txt
-  rm *.out
silent: true
- name: resolving-subdomains
cmds:
- cat {{OUTPUT_DIR}}/root-subdomains.txt | dnsx -silent -threads 100 -o {{OUTPUT_DIR}}/resolved-subdomains.txt
silent: false
- name: checking-alive-subdomains
cmds:
- cat {{OUTPUT_DIR}}/resolved-subdomains.txt | httpx -silent -threads 100   0 -o {{OUTPUT_DIR}}/alive-subdomains.txt
silent: false

Para ejecutar el flujo de trabajo anterior, ejecute el siguiente comando:

rayder -w path/to/reverse-whois.yaml ORG="Yelp, Inc" OUTPUT_DIR=results

Ejecución paralela

El parallel campo en la configuración del flujo de trabajo determina si los módulos deben ejecutarse en paralelo o secuencialmente. La configuración parallel en true permite que los módulos se ejecuten simultáneamente, lo que lo hace adecuado para módulos sin dependencias. Cuando se establece en false , los módulos se ejecutarán uno tras otro.

Flujos de trabajo

Explore una colección de flujos de trabajo de muestra y ejemplos en el repositorio de flujos de trabajo de Rayder. ¡Estén atentos para más incorporaciones!

Inspiración

La inspiración de este proyecto proviene del proyecto Awesome taskfile.

Descargar Rayder

Relacionado

34 Mejores Cursos Gratis de Flujos de Trabajo

Aprender las metodologías adecuadas y útiles de los mejores flujos de trabajo a través de cursos totalmente gratis, impartidos por las Universidades más importantes.

162 Mejores Cursos GRATIS de Programación en Udemy

Recopilatorio de todos los cursos online de programación en español impartidos por las diferentes universidades españolas, y videotutoriales de Youtube.

¿Cómo usar el archivo git .gitconfig para un flujo de trabajo más eficiente?

Git es el sistema de control de versiones más utilizado en el mercado. Es poderoso, flexible y facilita la colaboración en PROJECT de desarrollo, pero una cosa que puede haber encontrado es que debe volver a ejecutar ciertos comandos de configuración para cada repositorio inicializado. Por ejemplo, inicializado el directorio PROJECT luego debes configurar tu nombre de usuario y dirección de correo electrónico con comandos como ¡SEGUIR LEYENDO!

La interfaz de comandos llega a GitHub, Github CLI 1.0 ya disponible

GitHub CLI acerca GitHub a la terminal, te ayuda a concentrarse y le permite crear scripts y crear sus propios flujos de trabajo con mayor facilidad. A principios de este año, anunciamos la versión beta de GitHub CLI. Desde que lanzamos la versión beta, los usuarios han creado más de 250,000 solicitudes de extracción, realizado más de 350,000 fusiones y creado más de 20,000 problemas con ¡SEGUIR LEYENDO!

¿Por qué trabajar demasiado podría hacerte menos productivo?

Si se siente presionado a trabajar incluso después de que técnicamente no tiene trabajo, no está solo. Pero, ¿Sabías que las personas en tu situación informan que esto en realidad los hace sentir menos productivos en general? Es contradictorio pero cierto. Esto es lo que necesita saber sobre por qué debería dar por terminado el día al final del día. Trabajar más allá de tu horario ¡SEGUIR LEYENDO!

Stacks: Una aplicación alternativa a Trello para Windows, macOS y Linux

Cuando escuchamos las palabras kanban y tableros, inmediatamente se nos viene a la mente la herramienta de trabajo Trello. Sin duda alguna, el servicio más popular de su tipología. Pero con todos sus méritos, que son innegables, Trello no es perfecto. Algunas funciones están disponibles solo en su modo de pago y además, sus aplicaciones de escritorio dejan aspectos que desear: puesto que son solamente versiones ¡SEGUIR LEYENDO!