Глава 1. Служба идентификации OpenStack Keystone
В данной главе мы охватим:
-
Создание среды песочницы с применением VirtualBox и Vagrant
-
Настройку архива облака Ubuntu
-
Установку службы идентификации OpenStack
-
Создание владельцев
-
Настройку ролей
-
Добавление пользователей
-
Определение конечных точек служб
-
Создание службы владельцев и службы пользователей
Содержание
Служба идентификации OpenStack, известная как Keystone, предоставляет услуги по аутентификации и управлению учетными записями пользователей, а также информацию о ролях для подражания нашей облачной среды OpenStack. Это важная служба, которая лежит в основе аутентификации и проверки между всеми нашими службами облака OpenStack и является первой службой, которая должна быть установлена в среде OpenStack. Как только аутентификация успешно проведена, служба идентичности OpenStack отправляет назад марекер (token) авторизации, который передается между службами. Этот маркер затем используется в качестве вашей аутентификации и проверки того, что вы можете приступить к использованию таких служб как, например, службы системы хранения и вычислительной среды OpenStack. Таким образом, настройка службы идентификации OpenStack должна быть выполнена первой и заключается в создании соответствующих ролей для пользователей и служб, владельцев, учетных записей пользователей а также конечных точек служб API, которые и составляют инфраструктуру нашего облака.
В конце главы у нас будет следующая установка среды:
Создание среды песочницы с применением VirtualBox и Vagrant позволяет нам узнать службу вычислительной среды OpenStack и экспериментировать с ней. VirtualBox позволяет нам возможность раскручивать виртуальные машины и сетевые среды, не затрагивая остальную часть нашей рабочей среды, и находится в свободном доступе на http://www.virtualbox.org для Windows, Mac OS X и Linux. Vagrant позволяет нам автоматизировать эту задачу, следовательно мы можем потратить меньше времени на создание наших тестовых сред и больше времени, на использование OpenStack. Vagrant может устанавливаться с помощью управления пакетами Ubuntu, а для других операционных систем посетите http://www.vagrantup.com/. Эта тестовая среда может быть использована для оставшейся части данной главы.
Предполагается, что компьютер, который вы будете использовать для запуска тестовой среды имеет достаточную вычислительную мощность, которая имеет поддержку аппаратной виртуализации (например, Intel VT-X и AMD-V) и имеет по крайней мере 8 ГБ оперативной памяти. Помните, мы создаем виртуальную машину, которая сама по себе будет использоваться для раскручивания виртуальных машинах, так что, чем больше оперативной памяти у вас есть, тем лучше.
Для начала мы должны загрузить VirtualBox c http://www.virtualbox.org/, а затем, после загрузки, выполните процедуру установки. Мы также должны скачать и установить Vagrant, что будет рассмотрены в дальнейшей части. На протяжении всей книги предполагаются, что основной операционной системой используемой для установки OpenStack будет редакция Ubuntu 12.04 LTS. Нам не нужно загружать Ubuntu 12.04 ISO, поскольку мы используем нашу среду Vagrant, которая сделает это за нас.
Для создания нашей среды песочницы в VirtualBox мы будем использовать Vagrant для определения отдельной виртуальной машины, которая позволит нам выполнять все службы вычислительной среды OpenStack, необходимые для запуска экземпляров облака. Эта виртуальная машина, которую мы будем называть как контроллер OpenStack, будет настроена, по крайней мере, с 2 Гб оперативной памяти и 20 Гб свободного пространства на жестком диске, а также будет иметь три сетевых интерфейса. Vagrant автоматически настраивает интерфейс на нашей виртуальной машины, а именно, существует NAT (Network Address Translate), который позволяет нашей виртуальной машине подключаться к сети за пределами VirtualBox для загрузки пакетов. Этот интерфейс NAT не упоминается в нашем файле Vagrant, но будет виден на нашей виртуальной машине как eth0. Мы настраиваем наш первый интерфейс для использования в нашей среде OpenStack, он будет общедоступным интерфейсом нашего хоста вычислительной среды OpenStack, второй интерфейс будет для нашей частной сети, которую вычислительная среда OpenStack использует для внутренней связи между различными хостами вычислительной среды OpenStack, а третий интерфейс будет использоваться, когда мы рассмотрим сеть Neutron в Главе 8, Сетевые среды OpenStack, как внешнюю сеть поставщика услуг.
Выполните следующие действия, чтобы создать виртуальную машину с Vagrant, которая будет использоваться для запуска служб вычислительной среды OpenStack:
-
Установите VirtualBox из http://www.virtualbox.org/. Если вы используете версию, поставляемую с редакцией Ubuntu 12.04 LTS, вы столкнетесь с проблемами.
Предостережение Эта книга была написана с использованием версии VirtualBox 4.2.16.
-
Установите Vagrant из http://www.vagrantup.com/. Если вы используете версию, поставляемую с редакцией Ubuntu 12.04 LTS, вы столкнетесь с проблемами.
Предостережение Эта книга была написана с использованием версии Vagrant 1.2.7.
После установки мы можем определить нашу виртуальную машину и сетевую среду в файле с названием Vagrantfile. Для этого создайте рабочий каталог (например, создайте ~/cookbook и отредактируйте в ней файл с названием Vagrantfile, как показано в следующем фрагменте программы:
mkdir ~/cookbook cd ~/cookbook vim Vagrantfile
Теперь мы можем приступить к настройке Vagrant, отредактировав этот файл со следующим кодом:
# -*- mode: ruby -*- # vi: set ft=ruby : nodes = { 'controller' => [1, 200], } Vagrant.configure("2") do |config| config.vm.box = "precise64" config.vm.box_url = "http://files.vagrantup.com/precise64.box" # Forescout NAC workaround # Предварительный обход сетевых адаптеров config.vm.usable_port_range = 2800..2900 nodes.each do |prefix, (count, ip_start)| count.times do |i| hostname = "%s" % [prefix, (i+1)] config.vm.define "#{hostname}" do |box| box.vm.hostname = "#{hostname}.book" box.vm.network :private_network, ip: "172.16.0.#{ip_start+i}", :netmask => "255.255.0.0" box.vm.network :private_network, ip: "10.10.0.#{ip_start+i}", :netmask => "255.255.0.0" box.vm.network :private_network, ip: "192.168.100.#{ip_start+i}", :netmask => "255.255.255.0" # Otherwise using VirtualBox # Иначе используем VirtualBox box.vm.provider :virtualbox do |vbox| # Defaults # Значения по умолчанию vbox.customize ["modifyvm", :id, "--memory", 2048] vbox.customize ["modifyvm", :id, "--cpus", 1] end end end end end
Теперь мы готовы к включению питания нашего контроллера узла. Это делается просто, выполним следующую команду:
vagrant up controller
Замечание Поздравляем! Мы успешно создали виртуальную машину VirtualBox выполняющуюся под Ubuntu 12.04, которая способна запускать службы контроллера OpenStack.
То что мы сделали, это создали в VirtualBox виртуальную машину определив ее в Vagrant. Vagrant затем настраивает эту виртуальную машину в соответствии с установками, приведенными в Vagrantfile в каталоге, в котором мы хотим сохранять и запускать наши виртуальные машины VirtualBox. Этот файл основан на синтаксисе на Ruby, строки достаточно хорошо объясняют себя. Мы должны дать следующие пояснения:
-
Хост называется "controller"
-
Виртуальные машины основаны на Precise64 коротком названии Ubuntu 12.04 LTS 64-bit
-
Мы определили 2 ГБ оперативной памяти, 1 ЦПУ и дополнительный диск с названием "controller-cinder.vdi", подключенный к нашей виртуальной машине, который мы будем использовать позже в нашей книге.
Затем мы запускаем виртуальные машины VirtualBox с использованием Vagrant при помощи следующей команды:
vagrant up
Она запустит все перечисленные в Vagrantfie виртуальные машины. Поскольку у нас объявлена только одна, эта виртуальная машина будет единственной запущенной.
Для регистрации на этой новой виртуальной машины мы воспользуемся следующей командой:
vagrant ssh controller
Для установки тестовой среды вы не ограничены только Vagrant и VirtualBox. Существует целый набор доступных продуктов для виртуализации, которые удобно использовать для тестирования OpenStack, например, VMware Server, VMware Player, и VMware Fusion подходят в равной степени.
Используемая в данной книге редакция Ubuntu 12.04 LTS обеспечивает два репозитория для установки OpenStack. Стандартный репозиторий поставляет редакцию Essex, тогда как поддерживаемый и в дальнейшем репозиторий, называемый архивом облака Ubuntu (Ubuntu Cloud Archive) предоставляет доступ к последней редакции (на момент написания книги) Grizzly. Мы будем выполнять установку и настройку службы идентификации OpenStack (а также всех остальных служб OpenStack) с использованием пакетов из архива облака Ubuntu для обеспечения нас редакцией программного обеспечения Grizzly.
Убедитесь, что вы зарегистрировались на выбранном для установки сервера службы идентификации OpenStack или что остальные хосты будут иметь доступ к хосту контроллера облака, на который будет устанавливаться служба идентификации.
Выполните следующие шаги настройки Ubuntu 12.04 LTS для использования архива облака Ubuntu: