diff options
Diffstat (limited to 'contractor')
-rwxr-xr-x | contractor | 26 |
1 files changed, 25 insertions, 1 deletions
@@ -10,7 +10,6 @@ import sys import time import subprocess from subprocess import PIPE, STDOUT - import yaml @@ -549,6 +548,28 @@ def cmd_dump(args): sys.stdout.write("{}\n".format(json.dumps(bs.as_dict(), indent=4))) +def cmd_provision(args): + ssh_opts = [ + "ControlMaster=auto", + "ControlPersist=60s", + "StrictHostKeyChecking=accept-new", + "UserKnownHostsFile=/dev/null", + ] + + env = dict(os.environ) + env["ANSIBLE_SSH_ARGS"] = " ".join(f"-o{opt}" for opt in ssh_opts) + + argv = [ + "ansible-playbook", + "-i", + "hosts", + "manager.yml", + f"-eansible_ssh_host={args.manager_address}", + f"-eansible_ssh_port={args.manager_port}", + ] + subprocess.check_call(argv, env=env) + + def cmd_status(args): dest, port = manager_destination(args) verbose(args, "manager VM is {}:{}".format(dest, port)) @@ -701,6 +722,9 @@ def main(): dump.add_argument("spec") dump.set_defaults(func=cmd_dump) + provision = sub.add_parser("provision", help="provision manager VM") + provision.set_defaults(func=cmd_provision, **manager_defaults) + status = sub.add_parser("status", help="check status of manager VM") status.add_argument("-m", "--manager-address", help="address of manager VM") status.add_argument("-p", "--manager-port", help="SSH port of manager VM") |