Был ли у вас опыт работы с OpenStack?

«Был ли у вас опыт работы с OpenStack?» — вопрос из категории Облачные платформы, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, я участвовал в развертывании и эксплуатации приватного облака на базе OpenStack для внутренних нужд разработки и тестирования.

Мой опыт охватывает следующие компоненты и задачи:

  • Развертывание и поддержка: установка и настройка ключевых сервисов (Nova, Neutron, Cinder, Glance, Keystone, Horizon) с помощью инструментов вроде openstack-ansible или kolla-ansible.
  • Сетевая инфраструктура (Neutron): настройка self-service сетей, маршрутизации (L3), security groups, Floating IP. Интеграция с физическими сетевыми устройствами (ML2 plugin).
  • Хранилище (Cinder/Glance): настройка бэкендов на Ceph для предоставления блочных хранилищ (Cinder) и репозитория образов (Glance).
  • Автоматизация и оркестрация (Heat): создание шаблонов для декларативного описания и развертывания целых стеков инфраструктуры (виртуальные машины, сети, диски).

Пример Heat-шаблона (YAML) для создания инстанса с прикрепленным томом:

heat_template_version: 2015-04-30
description: Launch a VM with a data volume
resources:
  boot_volume:
    type: OS::Cinder::Volume
    properties:
      size: 10
      image: ubuntu-focal
  data_volume:
    type: OS::Cinder::Volume
    properties:
      size: 50
  server:
    type: OS::Nova::Server
    properties:
      name: db-server
      flavor: m1.medium
      block_device_mapping:
        - device_name: vda
          volume_id: { get_resource: boot_volume }
          delete_on_termination: true
      networks:
        - network: private-net
      user_data_format: RAW
      user_data: |
        #cloud-config
        runcmd:
          - mkfs.ext4 /dev/vdb
          - mkdir /data && mount /dev/vdb /data
  • Мониторинг и troubleshooting: работа с логами компонентов (/var/log/keystone/, /var/log/neutron/), диагностика проблем с выделением IP-адресов, созданием инстансов или аутентификацией.