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 fuenteto:- el directorio de destino (nunca un nombre de archivo)worker:ohost:- el servidor o worker de destinoanchor_path(opcional): una ruta parcial, padre de la rutafrom:
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 remototo:- el directorio de destino (nunca un nombre de archivo)worker:ohost:- 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:ohost:(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