Utilizo cap invoke mucho para ejecutar comandos en un grupo de servidores. También me gustaría usar capistrano para enviar un solo archivo a un montón de servidores.Cómo copiar un archivo a un montón de servidores con capistrano
Al principio pensé que PUT lo haría, pero put hace que cree los datos para el archivo. No quiero hacer esto, solo quiero copiar un archivo existente de la máquina donde estoy ejecutando el comando capistrano y las otras máquinas.
Sería genial si pudiera hacer algo como esto:
host1$ cap HOSTS=f1.foo.com,f2.foo.com,f3.foo.com COPY /tmp/bar.bin
Yo esperaría que esto copia sistpral1: /tmp/bar.bin a f1.foo.com:/tmp/bar.bin~~V~~singular~~3rd y f2.foo.com:/tmp/bar.bin y f3.foo.com:/tmp/bar.bin
Este tipo de cosas parece muy útil, así que estoy seguro de que debe haber una forma de hacerlo ...
NB. si obtiene un error como 'Por favor, especifique al menos un archivo o directorio para actualizar', luego llame a' top.upload (...) 'no solo' upload (...) 'para desambiguar. ref: http://www.mail-archive.com/[email protected]/msg04699.html –
Si está utilizando Rails 3, recuerde usar 'Rails.root' en lugar de' RAILS_ROOT'. – Mika
El uso de 'Rails.root' no funcionará ya que Rails no se carga cuando ejecuta' cap'. En este ejemplo, querrá usar 'File.expand_path ('../../ CHANGELOG.txt', __FILE __)'. –