Saltar a contenido

Envío y recuperación de archivos

Aprovechando SSH, Clarive Workers y ClaX (el agente de Clarive), los rulebooks pueden usarse para enviar y recibir archivos desde y hacia servidores remotos.

Ship

El op ship transferirá uno o más archivos locales al servidor Clarive a uno o más servidores remotos.

Este es un ejemplo de envío de un archivo a un servidor remoto con SSH o ClaX (agente push). SSH requiere que las credenciales del host estén registradas. Para el agente ClaX, el servidor de destino necesita tener un agente ClaX instalado.

Parámetros:

  • from: - el directorio o ruta de archivo fuente
  • to: - el directorio de destino (nunca un nombre de archivo)
  • worker: o host: - el servidor o worker de destino
  • anchor_path (opcional): una ruta parcial, padre de la ruta from:
do:
    - ship:
        from: /path/file.ext
        to: /path/file.ext
        host: myhostname

Lo mismo puede lograrse con un Worker, que requiere un Worker registrado ejecutándose con ese mismo id:

$ cla-worker run --id myworkerid --token [token provided during registration]
do:
    - ship:
        from: /path/file.ext
        to: /path/
        worker: myworkerid

Lo mismo puede usarse para copiar un directorio y su contenido:

do:
   - mkdir -p /mydir/anotherdir/
   - write_file:
        file: 'mydir/anotherdir/little_file.txt'
        body: "foo and bar"
   - ship:
       worker: myworkerid
       from: /mydir/
       to: /remote/path/

En lo anterior, el contenido del directorio local /mydir/anotherdir, que es el archivo llamado little_file.txt creado por nosotros, se copiará al servidor donde se está ejecutando el worker myworkerid.

La estructura de ruta resultante en el destino será /remote/path/anotherdir/little_file.txt.

Note

El worker creará todas las rutas intermedias, pero no ClaX/SSH. Necesitará crearlas ejecutando ops shell: remotos.

Rutas relativas

Para cambiar cómo se mueven las rutas relativas, use la opción anchor_path. Por ejemplo:

do:
   - ship:
       worker: myworkerid
       from: /my/dir/file.txt
       to: /remote/path/
       anchor_path: /my

Resultará en que file.txt se copie a /remote/path/dir/file.txt. La opción anchor_path: resta de la ruta padre fuente en from:.

Fetch

El op fetch recupera un archivo desde un servidor remoto de vuelta al servidor Clarive.

A diferencia de ship:, el op fetch no recuperará directorios ni los recorrerá. Solo se pueden recuperar archivos. Para recuperar directorios de su servidor, ejecute utilidades como tar o zip y luego recupere el archivo tar.

Parámetros:

  • from: - la ruta del archivo remoto
  • to: - el directorio de destino (nunca un nombre de archivo)
  • worker: o host: - el servidor o worker de destino
do:
   - fetch:
       worker: myworkerid
       from: /remote/dir/file.txt
       to: /tmp/

Lo anterior copiará el archivo remoto file.txt al directorio local /tmp.

Write File

Puede usarse para escribir un archivo local o remoto.

Parámetros:

  • file: - la ruta del archivo de destino.
  • body: - el contenido del archivo.
  • worker: o host: (opción) - el servidor o worker de destino donde escribir el archivo.

Archivo local:

do:
   - write_file:
       body: |
          here's a file
          with multiple lines
       file: /tmp/myfile.txt

Archivo remoto, que escribirá el archivo directamente en el servidor remoto:

do:
   - write_file:
       worker: myworkerid
       body: |
          here's a file
          with multiple lines
       file: /tmp/myfile.txt