tasks.py: simplify deploy, require host(s) input
This commit is contained in:
parent
054c2f899d
commit
9e7ba7ded3
1 changed files with 7 additions and 23 deletions
30
tasks.py
30
tasks.py
|
@ -14,9 +14,12 @@ ROOT = Path(__file__).parent.resolve()
|
||||||
os.chdir(ROOT)
|
os.chdir(ROOT)
|
||||||
|
|
||||||
|
|
||||||
# Deploy to all hosts in parallel
|
@task
|
||||||
def deploy_nixos(hosts: List[DeployHost]) -> None:
|
def deploy(c: Any, hosts: str) -> None:
|
||||||
g = DeployGroup(hosts)
|
"""
|
||||||
|
Use inv deploy --hosts build01,darwin01
|
||||||
|
"""
|
||||||
|
g = DeployGroup(get_hosts(hosts))
|
||||||
|
|
||||||
def deploy(h: DeployHost) -> None:
|
def deploy(h: DeployHost) -> None:
|
||||||
if "darwin" in h.host:
|
if "darwin" in h.host:
|
||||||
|
@ -109,17 +112,6 @@ def docs_linkcheck(c: Any) -> None:
|
||||||
|
|
||||||
|
|
||||||
def get_hosts(hosts: str) -> List[DeployHost]:
|
def get_hosts(hosts: str) -> List[DeployHost]:
|
||||||
if hosts == "":
|
|
||||||
res = subprocess.run(
|
|
||||||
["nix", "flake", "show", "--json", "--all-systems"],
|
|
||||||
check=True,
|
|
||||||
text=True,
|
|
||||||
stdout=subprocess.PIPE,
|
|
||||||
)
|
|
||||||
data = json.loads(res.stdout)
|
|
||||||
systems = data["nixosConfigurations"]
|
|
||||||
return [DeployHost(f"{n}.nix-community.org") for n in systems]
|
|
||||||
|
|
||||||
if "darwin" in hosts:
|
if "darwin" in hosts:
|
||||||
return [
|
return [
|
||||||
DeployHost(f"{h}.nix-community.org", user="customer")
|
DeployHost(f"{h}.nix-community.org", user="customer")
|
||||||
|
@ -129,14 +121,6 @@ def get_hosts(hosts: str) -> List[DeployHost]:
|
||||||
return [DeployHost(f"{h}.nix-community.org") for h in hosts.split(",")]
|
return [DeployHost(f"{h}.nix-community.org") for h in hosts.split(",")]
|
||||||
|
|
||||||
|
|
||||||
@task
|
|
||||||
def deploy(c: Any, hosts: str = "") -> None:
|
|
||||||
"""
|
|
||||||
Deploy to all servers. Use inv deploy --hosts build01 to deploy to a single server
|
|
||||||
"""
|
|
||||||
deploy_nixos(get_hosts(hosts))
|
|
||||||
|
|
||||||
|
|
||||||
def decrypt_host_key(flake_attr: str, tmpdir: str) -> None:
|
def decrypt_host_key(flake_attr: str, tmpdir: str) -> None:
|
||||||
def opener(path: str, flags: int) -> Union[str, int]:
|
def opener(path: str, flags: int) -> Union[str, int]:
|
||||||
return os.open(path, flags, 0o400)
|
return os.open(path, flags, 0o400)
|
||||||
|
@ -178,6 +162,6 @@ def install(c: Any, flake_attr: str, hostname: str) -> None:
|
||||||
|
|
||||||
|
|
||||||
@task
|
@task
|
||||||
def cleanup_gcroots(c: Any, hosts: str = "") -> None:
|
def cleanup_gcroots(c: Any, hosts: str) -> None:
|
||||||
g = DeployGroup(get_hosts(hosts))
|
g = DeployGroup(get_hosts(hosts))
|
||||||
g.run("sudo find /nix/var/nix/gcroots/auto -type s -delete")
|
g.run("sudo find /nix/var/nix/gcroots/auto -type s -delete")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue