Files

39 lines
1.4 KiB
Python
Raw Permalink Normal View History

import asyncio
import asyncssh
SCRIPT = r"""
set -e
echo '=== apt update ==='
echo '123456789987654321' | sudo -S apt-get update -qq
echo '=== install docker.io ==='
echo '123456789987654321' | sudo -S DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker.io docker-compose >/dev/null
echo '=== enable docker ==='
echo '123456789987654321' | sudo -S systemctl enable --now docker
echo '123456789987654321' | sudo -S usermod -aG docker dimon
echo '=== docker version ==='
echo '123456789987654321' | sudo -S docker --version
echo '=== portainer volume ==='
echo '123456789987654321' | sudo -S docker volume create portainer_data
echo '=== portainer run ==='
echo '123456789987654321' | sudo -S docker run -d -p 9000:9000 --name portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts
echo '=== containers ==='
echo '123456789987654321' | sudo -S docker ps
echo '=== ufw allow 9000 ==='
(echo '123456789987654321' | sudo -S ufw allow 9000/tcp 2>/dev/null && echo ufw-ok) || echo ufw-not-installed
echo DONE
"""
async def main():
async with asyncssh.connect(
"132.243.17.164", port=2292, username="dimon",
password="123456789987654321", known_hosts=None,
) as conn:
r = await conn.run(SCRIPT, timeout=900)
print(r.stdout)
if r.stderr:
print("STDERR:", r.stderr[-3000:])
print("RC:", r.returncode)
asyncio.run(main())