27 lines
No EOL
897 B
Python
27 lines
No EOL
897 B
Python
import click
|
|
import os
|
|
import subprocess
|
|
|
|
@click.group()
|
|
def ceph():
|
|
pass
|
|
|
|
|
|
@ceph.command("setup")
|
|
@click.option("--ceph_url", required=True)
|
|
@click.option("--ssh_username", required=True)
|
|
def setup(ceph_url, ssh_username):
|
|
try:
|
|
os.makedirs("/etc/ceph", exist_ok=True)
|
|
command = f"sftp -b ./ceph_batch_cmd {ssh_username}@{ceph_url}:/etc/ceph"
|
|
subprocess.check_output(command.split())
|
|
except Exception:
|
|
p = subprocess.check_output(f"ssh-keyscan {ceph_url}".split())
|
|
keys = p.decode("utf-8").strip().split("\n")
|
|
keys = "\n".join(keys)
|
|
with open(os.path.expanduser("~/.ssh/known_hosts"), "a") as known_hosts:
|
|
known_hosts.write(keys)
|
|
|
|
os.makedirs("/etc/ceph", exist_ok=True)
|
|
command = f"sftp -b ./ceph_batch_cmd {ssh_username}@{ceph_url}:/etc/ceph"
|
|
subprocess.check_output(command.split()) |