Как инженеру DevOps, вам приходится ежедневно иметь дело с множеством различных инструментов и технологий. Одним из самых популярных и мощных инструментов в вашем наборе инструментов является Python.

В этой статье мы обсудим некоторые пакеты Python, которые обычно используются инженерами DevOps, а также примеры кода.

Ансибль

Ansible — популярный инструмент с открытым исходным кодом для управления конфигурацией, развертывания приложений и автоматизации задач. Он использует простой синтаксис под названием «playbooks» для определения задач и рабочих процессов, что упрощает его изучение и использование. Ansible может одновременно управлять тысячами серверов и интегрироваться с другими инструментами, такими как Docker и Kubernetes.

Вот пример плейбука, который устанавливает веб-сервер Apache на удаленный сервер:

---
- hosts: webservers
  become: yes
  tasks:
    - name: Install Apache web server
      apt:
        name: apache2
        state: present

Бото3

Boto3 — это библиотека Python, обеспечивающая простой доступ к API Amazon Web Services (AWS). Это позволяет инженерам DevOps автоматизировать такие задачи, как создание экземпляров EC2, корзин S3 и баз данных RDS и управление ими.

Вот пример того, как Boto3 можно использовать для создания инстанса EC2.

import boto3

ec2 = boto3.client('ec2')
response = ec2.run_instances(ImageId='ami-0c55b159cbfafe1f0', MinCount=1, MaxCount=1)
instance_id = response['Instances'][0]['InstanceId']
print(f"Instance ID: {instance_id}")

PyYAML

PyYAML — это библиотека Python, которая позволяет анализировать и сериализовать файлы YAML. Он обычно используется в DevOps для управления конфигурацией и сериализации данных.

Вот пример того, как PyYAML можно использовать для чтения файла YAML:

import yaml

with open('config.yaml', 'r') as f:
    config = yaml.load(f, Loader=yaml.FullLoader)
print(config)

Ткань

Fabric — это библиотека Python для выполнения команд удаленной оболочки через SSH. Он упрощает процесс управления удаленными серверами, предоставляя высокоуровневый API для выполнения общих задач, таких как развертывание кода, управление файлами и выполнение системных команд.

Вот пример использования Fabric для развертывания кода на удаленном сервере:

from fabric import Connection

def deploy():
    c = Connection(host='example.com', user='deploy')
    c.run('cd /path/to/app && git pull')
    c.run('sudo systemctl restart app')

Псутил

Psutil — это библиотека Python для получения системной информации. Он предоставляет простой в использовании API для доступа к информации о процессах, использовании системы, использовании диска и многом другом.

Вот пример использования Psutil для получения информации об использовании ЦП:

import psutil

# Get CPU usage
cpu_percent = psutil.cpu_percent()
print(f'CPU usage: {cpu_percent}%')

# Get Memory usage
print(psutil.virtual_memory())

# Get Disk usage
print(psutil.disk_usage('/'))

Парамико

Paramiko — это реализация протокола SSH на Python, которая обеспечивает безопасное соединение между двумя хостами. Он предоставляет интерфейс для обработки соединения SSH, передачи файлов и эмуляции терминала.

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('hostname', username='username', password='password')

stdin, stdout, stderr = ssh.exec_command('ls -l')
print(stdout.read())

Надеюсь, вам понравилась эта статья.

Следите за другими подобными материалами.