Автоматизация деплоя с использованием Python и Paramiko

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

pythonparamikossh

👁 Многие забывают о мощной библиотеке Paramiko, которая позволяет легко управлять удалёнными машинами через SSH. Это может быть полезно, если нужно автоматизировать деплой, управление конфигурациями или даже выполнять одноразовые задачи на нескольких серверах без необходимости вручную заходить на каждый.

📝 Пример автоматического деплоя:

import paramiko

def deploy_to_server(hostname, username, password, command):
    try:
        # Создаем SSH клиент
        client = paramiko.SSHClient()
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        
        # Подключаемся к серверу
        client.connect(hostname, username=username, password=password)
        
        # Выполняем команду на сервере
        stdin, stdout, stderr = client.exec_command(command)
        
        # Получаем результат
        output = stdout.read().decode('utf-8')
        error = stderr.read().decode('utf-8')
        
        # Закрываем соединение
        client.close()
        
        # Возвращаем результат
        if error:
            return f"Ошибка: {error}"
        return f"Результат: {output}"

    except Exception as e:
        return f"Не удалось подключиться: {str(e)}"

# Пример использования
hostname = "your.server.com"
username = "user"
password = "password"
command = "sudo systemctl restart myapp"

result = deploy_to_server(hostname, username, password, command)
print(result)

📌 Как это работает:

  • Paramiko позволяет подключаться к удалённым серверам по SSH, как если бы вы использовали терминал.
  • Используем exec_command для выполнения команд на удалённом сервере, например, для перезапуска приложения или обновления системы.

❗️ Полезно в проектах, где необходимо быстро и безопасно развертывать обновления или запускать команды на нескольких серверах без вмешательства человека.

tags: #python #автоматизация

🧭 @recura_tech 🌐 VK 🌐 MAX

Скриншот кода на Python: пример использования Paramiko для SSH-подключений и автоматического деплоя; фон с брендингом RECURA.
Скриншот примера функции deploy_to_server с использованием Paramiko.

Читайте так же