f624fee5e0
- SSH/SFTP управление без агентов - Пакеты (apt), Docker, файлы, systemd, ufw, cron - Плейбуки, групповые операции, планировщик - Бэкапы, отчёты, Portainer, Proxmox VE, Gitea Deploy - Терминал, Telegram-уведомления, тёмная/светлая тема
39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
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())
|