Автоматизация развертывания с Ansible и Python

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

ansiblepythonsubprocess

👁 Для автоматизации конфигурации и управления многосерверной инфраструктурой или приложениями можно использовать Ansible с Python. Библиотека subprocess позволяет запускать Ansible playbook из Python-скрипта, что интегрирует процессы развертывания в проект или CI/CD pipeline.

📝 Пример кода для автоматизации запуска Ansible playbook:

import subprocess

def run_ansible_playbook(playbook_path, inventory_file):
    command = [
        'ansible-playbook', 
        '-i', inventory_file, 
        playbook_path
    ]
    result = subprocess.run(command, capture_output=True, text=True)
    if result.returncode == 0:
        print("Playbook executed successfully")
    else:
        print(f"Error occurred: {result.stderr}")
        
# Пример использования
run_ansible_playbook('/path/to/playbook.yml', '/path/to/inventory')

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

  • subprocess.run() — используется для выполнения внешней команды (в данном случае, запуска Ansible), с возможностью захвата вывода для последующего анализа
  • ansible-playbook — командой Ansible, которая запускает заданный playbook для развертывания конфигураций на удалённых серверах
  • inventory_file — это список серверов или хостов, на которых будет выполняться playbook, что позволяет гибко управлять несколькими инстансами в разных окружениях
  • Обработка ошибок — анализируем возвратную информацию для корректной диагностики и автоматического логирования ошибок

❗️ Это позволяет вам интегрировать различные этапы CI/CD в одном инструменте, тем самым ускоряя процессы тестирования и доставки.

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

🧭 @recura_tech 🌐 VK 🌐 MAX

Тёмный скриншот с фрагментом Python-кода run_ansible_playbook: показан вызов ansible-playbook через subprocess и логотип RECURA на изображении.
Пример Python-скрипта для запуска ansible-playbook через subprocess (скриншот).

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