27 lines
1.3 KiB
Python
27 lines
1.3 KiB
Python
import paramiko
|
|
|
|
def check_pihole_toml(host, name):
|
|
print(f"=== {name} ({host}) ===")
|
|
ssh = paramiko.SSHClient()
|
|
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
ssh.connect(host, username='root', key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=10)
|
|
|
|
stdin, stdout, stderr = ssh.exec_command('k3s kubectl exec -n dns deployment/pihole -- grep -A 10 "\[webserver" /etc/pihole/pihole.toml 2>/dev/null || true')
|
|
print("webserver section in pihole.toml:")
|
|
print(stdout.read().decode('utf-8', errors='ignore'))
|
|
|
|
stdin, stdout, stderr = ssh.exec_command('k3s kubectl exec -n dns deployment/pihole -- grep -rn "pwhash" /etc/pihole/ 2>/dev/null || true')
|
|
print("pwhash matches:")
|
|
print(stdout.read().decode('utf-8', errors='ignore'))
|
|
|
|
# Let's test logging into pihole API with curl using password "snarfnetadmin"
|
|
stdin, stdout, stderr = ssh.exec_command('k3s kubectl exec -n dns deployment/pihole -- curl -s -X POST "http://localhost/api/auth" -H "Content-Type: application/json" -d \'{"password":"snarfnetadmin"}\'')
|
|
print("API auth test:")
|
|
print(stdout.read().decode('utf-8', errors='ignore'))
|
|
|
|
ssh.close()
|
|
|
|
check_pihole_toml('140.44.4.11', 'Aerodrome')
|
|
check_pihole_toml('140.44.4.41', 'Spaceport')
|
|
|