Установка и настройка OpenStack

Добро пожаловать в подробное руководство по установке и настройке OpenStack в НАЙС ОС. В этом документе мы рассмотрим процесс установки, настройки и управления OpenStack, включая управление виртуальными машинами и сетями, настройку хранилища и безопасности, а также мониторинг и масштабирование облака. OpenStack — это облачная операционная система с открытым исходным кодом, которая позволяет управлять большими пулами вычислительных ресурсов, хранилища и сетей. Понимание его установки и конфигурации является важным навыком для системных администраторов и DevOps-инженеров.

Установка и конфигурация OpenStack

Установка OpenStack

Для установки OpenStack в НАЙС ОС используйте DevStack — скрипт для быстрого развертывания OpenStack. Сначала установите необходимые зависимости:

sudo tdnf install -y git wget curl

Клонируйте репозиторий DevStack:

git clone https://opendev.org/openstack/devstack

Перейдите в каталог DevStack:

cd devstack

Настройка DevStack

Создайте файл local.conf со следующим содержимым для базовой установки:


[[local|localrc]]
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
HOST_IP=127.0.0.1
  

Запуск DevStack

Запустите DevStack с помощью следующей команды:

./stack.sh

Процесс установки может занять некоторое время. После завершения вы увидите информацию о доступе к OpenStack.

Управление виртуальными машинами и сетями

Создание виртуальной машины

Для создания виртуальной машины используйте Horizon — веб-интерфейс OpenStack, или командную строку. Рассмотрим пример использования командной строки.

Аутентификация в командной строке

Сначала аутентифицируйтесь в командной строке:

source openrc admin admin

Создание сети

Создайте сеть и подсеть:

openstack network create my-network
openstack subnet create --network my-network --subnet-range 192.168.0.0/24 my-subnet

Создание виртуальной машины

Запустите виртуальную машину:

openstack server create --flavor m1.small --image cirros --nic net-id=$(openstack network list -c ID -f value --name my-network) --security-group default my-instance

Управление сетями

OpenStack позволяет управлять сложными сетевыми конфигурациями с помощью Neutron. Рассмотрим основные команды для управления сетями.

Создание роутера

Создайте роутер и подключите его к сети:

openstack router create my-router
openstack router set my-router --external-gateway public
openstack router add subnet my-router my-subnet

Создание правил безопасности

Создайте правило безопасности для разрешения ICMP и SSH трафика:

openstack security group rule create --proto icmp default
openstack security group rule create --proto tcp --dst-port 22 default

Настройка хранилища и безопасности

Настройка хранилища

OpenStack использует Cinder для управления блочными устройствами и Swift для управления объектным хранилищем. Рассмотрим основные команды для работы с Cinder.

Создание тома

Создайте том размером 10 ГБ:

openstack volume create --size 10 my-volume

Подключение тома к виртуальной машине

Подключите том к виртуальной машине:

openstack server add volume my-instance my-volume

Настройка безопасности

Для настройки безопасности используйте Keystone для управления аутентификацией и авторизацией. Рассмотрим основные команды.

Создание пользователя

Создайте нового пользователя:

openstack user create --domain default --password mypassword myuser

Назначение роли пользователю

Назначьте роль проекту и пользователю:

openstack role add --project myproject --user myuser myrole

Мониторинг и масштабирование облака

Мониторинг OpenStack

Для мониторинга OpenStack используйте Telemetry (Ceilometer) и другие инструменты, такие как Prometheus и Grafana. Рассмотрим пример настройки мониторинга с Prometheus и Grafana.

Установка Prometheus и Grafana

Сначала установите Prometheus и Grafana:

sudo tdnf install -y prometheus grafana

Запустите Prometheus и Grafana:

sudo systemctl start prometheus
sudo systemctl enable prometheus
sudo systemctl start grafana-server
sudo systemctl enable grafana-server

Настройка источников данных

Добавьте Prometheus как источник данных в Grafana и создайте дашборды для визуализации метрик OpenStack.

Масштабирование облака

Для масштабирования облака используйте функции автоматического масштабирования в OpenStack Heat и Senlin. Рассмотрим пример создания шаблона Heat для автоматического масштабирования.

Создание шаблона Heat

Создайте файл autoscale.yaml со следующим содержимым:


heat_template_version: 2013-05-23

description: >
  Template to deploy a scalable instance group

parameters:
  flavor:
    type: string
    default: m1.small
  image:
    type: string
    default: cirros
  network:
    type: string
    default: my-network

resources:
  my_scale_group:
    type: OS::Heat::AutoScalingGroup
    properties:
      min_size: 1
      max_size: 5
      desired_capacity: 2
      resource:
        type: OS::Nova::Server
        properties:
          flavor: { get_param: flavor }
          image: { get_param: image }
          networks:
            - network: { get_param: network }

  my_scale_policy:
    type: OS::Heat::ScalingPolicy
    properties:
      auto_scaling_group_id: { get_resource: my_scale_group }
      adjustment_type: change_in_capacity
      scaling_adjustment: 1
      cooldown: 60
  

Запуск шаблона Heat

Запустите шаблон Heat:

openstack stack create --template autoscale.yaml --parameter network=$(openstack network list -c ID -f value --name my-network) my-stack

Заключение

Мы рассмотрели основные аспекты установки, настройки и управления OpenStack в НАЙС ОС. OpenStack предоставляет мощные возможности для создания облачной инфраструктуры, а понимание его настройки и управления является важным навыком для системных администраторов и DevOps-инженеров. Продолжайте изучать и применять эти знания на практике для создания стабильных и масштабируемых облачных систем.