Hi everyone,

I've recently started using Fabric. I have multiple 3 web servers. The 
specification of SSH options such as HostName and User are saved in 
$HOME/.ssh/config, which looks like this:

Host server1
    HostName 54.xxx.yyy.zzz
    User ubuntu

Host server2
    HostName 54.aaa.bbb.ccc
    User ubuntu

Host server3
    HostName 54.ddd.eee.fff
    User ubuntu

Now I would like to update a file on each of these 3 servers (the content of 
these files are the same) with a local file.

My fabfile looks like this:

env.use_ssh_config = True

def upload():
  execute(backup)
  conf_files = current_dir + 'abc.conf'
  remote_conf_dir = '/etc/abc/'
  put(conf_files, remote_conf_dir, use_sudo=True)
  print(green("Upload complete"))

When I run `fab -H server1, server2, server3 upload`, this script will backup 
the file three times.

Because the content of these 3 files are the same, I want to backup just one 
copy of the file on my local machine at first, then update all 3 of them.

My first thought was to read the ssh config file into a list and iterate the 
list, do things on the first server, then break the loop. I felt this seemed a 
bit hokey to find.

Is there any other way to implement this? I've searched Google and 
Stackoverflow, but I got nothing about this.

Your help would be appreciated!
Vincent


_______________________________________________
Fab-user mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/fab-user

Reply via email to