pssh -I tee /tmp/settings.yaml < $SETTINGS pssh sudo easy_install pyyaml pssh -I tee /tmp/postprep.py < {}...".format(STEP, cmd))) retcode = os.system(cmd) if retcode: retcode = bold(retcode) t2 = time.time() td = str(t2-t1)[:5] f.write("[{}] in {}s\n".format(retcode, td)) STEP += 1 with open("/home/ubuntu/.bash_history", "a") as f: f.write("{}\n".format(cmd)) # On EC2, the ephemeral disk might be mounted on /mnt. # If /mnt is a mountpoint, place Docker workspace on it. system("if mountpoint -q /mnt; then sudo mkdir /mnt/docker && sudo ln -s /mnt/docker /var/lib/docker; fi") # Put our public IP in /tmp/ipv4 # ipv4_retrieval_endpoint = "http://169.254.169.254/latest/meta-data/public-ipv4" ipv4_retrieval_endpoint = "http://myip.enix.org/REMOTE_ADDR" system("curl --silent {} > /tmp/ipv4".format(ipv4_retrieval_endpoint)) ipv4 = open("/tmp/ipv4").read() # Add a "docker" user with password "training" system("sudo useradd -d /home/docker -m -s /bin/bash docker") system("echo docker:training | sudo chpasswd") # Helper for Docker prompt. system("""sudo tee /usr/local/bin/docker-prompt <>/tmp/pp.out 2>>/tmp/pp.err" < $IPS_FILE # If /home/docker/.ssh/id_rsa doesn't exist, copy it from node1 pssh "sudo -u docker [ -f /home/docker/.ssh/id_rsa ] || ssh -o StrictHostKeyChecking=no node1 sudo -u docker tar -C /home/docker -cvf- .ssh | sudo -u docker tar -C /home/docker -xf-" # if 'docker@' doesn't appear in /home/docker/.ssh/authorized_keys, copy it there pssh "grep docker@ /home/docker/.ssh/authorized_keys \ || cat /home/docker/.ssh/id_rsa.pub \ | sudo -u docker tee -a /home/docker/.ssh/authorized_keys"