Як розгорнути хмару OpenStack з Juju?


15

Я хотів би скласти тестову хмару та працювати, готуючись до можливого розгортання 12.04. Я трохи поспілкувався з UEC, але мені було набагато складніше знайти щось корисне як грунтовку для нового стека. Існує загальна документація на Diablo, але, ймовірно, в Ubuntu вже є багато фрагментів, на які конкретний посібник може заощадити час.

Крім того, як би я хотів, щоб мій бюджет не включав $ 4-6k, щоб отримати невеликий кластер, що працює за підтримки Canonical.

Відповіді:


17

Встановлення OpenStack

Якщо ви хочете швидко встати та працювати, перейдіть сюди:

Ця відповідь - більш детальний погляд на те, як використовувати Juju з OpenStack.

Область застосування

Платформа OpenStack є потужною, і її використання різноманітне. Цей розділ документації стосується насамперед розгортання "стандартної" системи OpenStack з використанням, але не обмежуючись ними, канонічних компонентів, таких як MAAS, Juju та Ubuntu. У відповідних випадках будуть згадані інші методи та програмне забезпечення.

Припущення

  1. Використання MAAS - спочатку виконайте ці втручання.
  2. Використання Джуджу
  3. Конфігурація локальної мережі - Цей документ передбачає, що у вас є адекватна конфігурація локальної мережі, включаючи окремі інтерфейси для доступу до хмари OpenStack. Ідеальні мережі викладені в [MAAS] [документації MAAS для OpenStack].

Планування установки

Перш ніж розгорнути будь-які сервіси, дуже корисно проаналізувати наявні ресурси та спосіб їх використання. OpenStack складається з ряду взаємопов'язаних сервісів (Nova, Swift тощо), які мають різні вимоги щодо хостів. Наприклад, служба Swift, яка забезпечує зберігання об'єктів, має іншу вимогу, ніж послуга Nova, яка забезпечує обчислювальні ресурси.

Мінімальні вимоги до кожної послуги та рекомендації викладені в офіційному Посібнику з експлуатації OpenStack

Рекомендована композиція вузлів для розгортання OpenStack з MAAS та Juju полягає в тому, що всі вузли в системі повинні бути спроможні запускати будь -які сервіси. Це найкраща практика для надійності системи, оскільки оскільки будь-який фізичний вузол повинен вийти з ладу, на його місце може бути перетворений інший. Це, очевидно, поширюється на будь-які технічні вимоги, такі як додаткові мережеві інтерфейси.

Якщо ви з економічної причини чи іншим чином вирішите використовувати різні конфігурації обладнання, слід зазначити, що ваша здатність подолати апаратну несправність буде знижена. Також потрібно буде орієнтувати розгортання на конкретні вузли - дивіться розділ документації MAAS про теги .

Створіть файл конфігурації OpenStack

Ми будемо використовувати принади Juju для розгортання складових частин OpenStack. Кожен шарм інкапсулює все необхідне для налаштування певної послуги. Однак в окремих службах є багато варіантів конфігурації, деякі з яких ми хочемо змінити.

Щоб полегшити та відтворити це завдання, ми створимо окремий файл конфігурації з відповідними параметрами для всіх служб. Це написано у стандартному форматі YAML ( див. Www.yaml.org, якщо це вам незнайоме ).

Ось приклад Opentack-config.yaml:

keystone:
  admin-password: openstack
  debug: 'true'
  log-level: DEBUG
nova-cloud-controller:
  network-manager: 'Neutron'
  quantum-security-groups: 'yes'
  neutron-external-network: Public_Network
nova-compute:
  enable-live-migration: 'True'
  migration-auth-type: "none"
  virt-type: kvm
  #virt-type: lxc
  enable-resize: 'True'
quantum-gateway:
  ext-port: 'eth1'
  plugin: ovs
glance:
  ceph-osd-replication-count: 3
cinder:
  block-device: None
  ceph-osd-replication-count: 3
  overwrite: "true"
  glance-api-version: 2
ceph:
  fsid: a51ce9ea-35cd-4639-9b5e-668625d3c1d8
  monitor-secret: AQCk5+dR6NRDMRAAKUd3B8SdAD7jLJ5nbzxXXA==
  osd-devices: /dev/sdb
  osd-reformat: 'True'

Для всіх служб ми можемо налаштувати openstack-originточку на джерело встановлення. У цьому випадку ми будемо покладатися на дефолт, який вказуватиме на відповідні джерела для випуску Ubuntu 14.04 LTS Trusty. Подальша конфігурація для кожної послуги пояснюється в цьому документі .

Інші конфігурації

Інші параметри та параметри конфігурації можливі для розгортання служб OpenStack. Вони детально описані в документації окремих чарів, які використовує Juju, і їх можна ознайомити, відвідавши інтернет-магазин Juju Charm і шукати чарівність, використовуючи поле пошуку у верхній лівій частині сторінки. Параметри конфігурації потім детально описані у розділі "Конфігурація" на головній сторінці, як показано:

введіть тут опис зображення

Розгортання OpenStack з Juju

Тепер, коли конфігурація визначена, ми можемо використовувати Juju для розгортання та відновлення послуг.

Ініціалізація Джуджу

Джуджу вимагає мінімальної кількості налаштувань. Тут ми припускаємо, що він уже налаштований на роботу з вашим кластером MAAS (для отримання додаткової інформації див. [Посібник з установки Juju] [juju_install].

По-перше, нам потрібно отримати зображення та інструменти, якими буде користуватися Джуджу:

juju sync-tools --debug

Тоді ми можемо створити екземпляр завантаження:

juju bootstrap --upload-tools --debug

Ми використовуємо перемикач інструментів завантаження, щоб використовувати локальні версії інструментів, які ми тільки що отримали. Перемикач налагодження дасть багатослівний вихід, який може бути корисним. Цей процес може зайняти кілька хвилин, оскільки Juju створює екземпляр та встановлює інструменти. Закінчивши, ви можете перевірити стан системи за допомогою команди:

juju status

Це має повернути щось на кшталт:

environment: maas
machines:
  "0":
    agent-state: started
    agent-version: 1.18.1.1
    dns-name: localhost
    instance-id: localhost
    series: trusty

Розгорніть чари OpenStack

Тепер, коли вузол завантажувальної програми Juju запущений, ми можемо розгорнути сервіси, необхідні для встановлення нашої OpenStack. Щоб правильно налаштувати ці служби під час їх розгортання, ми скористаємося файлом конфігурації, який ми визначили раніше, передаючи його разом із --configкомутатором із кожною командою розгортання. Замініть ім'я та шлях вашого конфігураційного файлу, якщо вони різні.

Корисно, але не суттєво розгортати служби у нижченаведеному порядку. Також дуже рекомендується відкрити додаткове вікно терміналу та запустити команду juju debug-log. Це виведе журнали всіх служб під час їх запуску і може бути корисним для усунення несправностей.

Також рекомендується juju statusперіодично запускати команду, щоб перевірити, чи кожна служба встановлена ​​та працює належним чином. Джуджу автоматично спробує отримати найкращу можливу версію шарму з інтернет-магазину чарівності. Якщо ви встановлюєте з обмеженої або закритої мережі, можна заздалегідь отримати необхідні принади. Дивіться [документацію для офлайн-чарів] [charms-offline].

juju deploy --to=0 juju-gui
juju deploy rabbitmq-server
juju deploy mysql
juju deploy --config openstack-config.yaml openstack-dashboard
juju deploy --config openstack-config.yaml keystone
juju deploy --config openstack-config.yaml ceph -n 3 
juju deploy --config openstack-config.yaml nova-compute -n 3
juju deploy --config openstack-config.yaml quantum-gateway
juju deploy --config openstack-config.yaml cinder
juju deploy --config openstack-config.yaml nova-cloud-controller
juju deploy --config openstack-config.yaml glance
juju deploy --config openstack-config.yaml ceph-radosgw

Додайте відносини між службами OpenStack

Хоча служби зараз розгорнуті, вони ще не з'єднані між собою. Кожна служба наразі існує ізольовано. Ми використовуємо juju add-relation команду, щоб дати їм знати один одному і встановити будь-які відповідні з'єднання та протоколи. Ця додаткова конфігурація опікується самими індивідуальними принадами.

Слід почати додавати зв'язки між принадами, встановивши службу авторизації Keystone та її базу даних, оскільки для цього знадобляться багато інших з'єднань:

juju add-relation keystone mysql

Чекаємо, поки встановиться відношення. Після того, як він закінчить, перевірте його у статусі дзюджу:

juju status mysql
juju status keystone

Ця послуга може зайняти кілька моментів. Хоча, безумовно, можна продовжувати додавання відносин (Джуджу керує чергою на очікувані дії), це може бути контрпродуктивним з точки зору загального часу, оскільки багато стосунків стосуються одних і тих же служб.

Необхідно також встановити такі відносини:

juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone
juju add-relation nova-compute mysql
juju add-relation nova-compute rabbitmq-server
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation cinder keystone
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder nova-cloud-controller
juju add-relation openstack-dashboard keystone
juju add-relation swift-proxy swift-storage
juju add-relation swift-proxy keystone

Нарешті, результат статусу дзюджу повинен показати всі відносини як завершені. Зараз хмара OpenStack працює, але її потрібно заповнити деякими додатковими компонентами, перш ніж вона буде готова до використання.


Спасибі. URL-адреса insights.ubuntu.com/wp-content/uploads/UCD-latest.pdf, здається,
зникла


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.