29 lines
979 B
Python
29 lines
979 B
Python
import paramiko
|
|
import sys
|
|
|
|
sys.stdout.reconfigure(encoding='utf-8')
|
|
key_path = r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet'
|
|
|
|
def set_pw(ip, name):
|
|
print(f"\n--- Setting Pi-hole password on {name} ({ip}) ---")
|
|
ssh = paramiko.SSHClient()
|
|
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
ssh.connect(ip, username='root', key_filename=key_path, timeout=10)
|
|
|
|
stdin, stdout, stderr = ssh.exec_command("k3s kubectl get pods -n dns -l app=pihole -o jsonpath='{.items[0].metadata.name}'")
|
|
pod_name = stdout.read().decode().strip()
|
|
|
|
# Try setting password to snarfnetadmin
|
|
stdin, stdout, stderr = ssh.exec_command(f"k3s kubectl exec -n dns {pod_name} -- pihole setpassword snarfnetadmin")
|
|
out = stdout.read().decode()
|
|
err = stderr.read().decode()
|
|
print("setpassword output:", out)
|
|
if err:
|
|
print("setpassword err:", err)
|
|
|
|
ssh.close()
|
|
|
|
set_pw('140.44.4.11', 'Aerodrome')
|
|
set_pw('140.44.4.41', 'Spaceport')
|
|
|