Files
SnarfCode/scripts/inspect_portainer.py

30 lines
1.1 KiB
Python

import paramiko
import sys
import json
sys.stdout.reconfigure(encoding='utf-8')
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('140.44.4.71', username='snarf', key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=8)
stdin, stdout, stderr = ssh.exec_command('sudo docker inspect portainer')
data = json.loads(stdout.read().decode())[0]
print("Container Name:", data["Name"])
print("Image:", data["Config"]["Image"])
print("Command:", data["Config"]["Cmd"])
print("Mounts:")
for m in data.get("Mounts", []):
print(" ", m.get("Source"), "->", m.get("Destination"))
stdin, stdout, stderr = ssh.exec_command('sudo docker exec portainer /portainer --version || sudo docker inspect --format="{{.Config.Labels}}" portainer')
print("Version/Labels:", stdout.read().decode().strip())
# Check portainer_agent service
stdin, stdout, stderr = ssh.exec_command('sudo docker service inspect portainer_agent --format="{{.Spec.TaskTemplate.ContainerSpec.Image}}"')
print("Agent Service Image:", stdout.read().decode().strip())
ssh.close()