Juju ile bir OpenStack bulutunu nasıl dağıtabilirim?


15

Olası bir 12.04 dağıtımına hazırlanmak için bir test bulutu hazır ve çalışır duruma getirmek istiyorum. UEC ile biraz uğraştım, ancak yeni yığın için bir astar olarak yararlı bir şey bulmak çok daha zor zaman geçirdim. Diablo'da genel belgeler var, ancak Ubuntu'da zaten belirli bir kılavuzun zamandan tasarruf edebileceği çok sayıda parça olması muhtemel.

Ayrıca, istediğim kadarıyla, bütçem, Canonical destekle çalışan küçük bir küme elde etmek için 4-6 bin dolar içermiyor.

Yanıtlar:


17

OpenStack Kurulumu

Hızlı bir şekilde çalışmaya başlamak istiyorsanız, bunun yerine buraya gidin:

Bu cevap Juju'nun OpenStack ile nasıl kullanılacağına daha ayrıntılı bir bakış.

Dürbün

OpenStack platformu güçlüdür ve kullanımları çeşitlidir. Dokümantasyonun bu bölümü, esas olarak MAAS, Juju ve Ubuntu gibi Kanonik bileşenleri kullanarak, ancak bunlarla sınırlı olmamak kaydıyla, "standart" çalışan bir OpenStack sistemi kurmakla ilgilidir. Uygun olan yerlerde diğer yöntemler ve yazılımlardan bahsedilecektir.

Varsayımlar

  1. MAAS kullanımı - önce bu talimatları izleyin.
  2. Juju Kullanımı
  3. Yerel ağ yapılandırması - Bu belge, OpenStack bulutuna erişim için ayrı arabirimler de dahil olmak üzere yeterli bir yerel ağ yapılandırmanız olduğunu varsayar. İdeal ağlar [MAAS] [OpenStack için MAAS belgeleri] 'nde düzenlenmiştir.

Kurulum planlama

Herhangi bir hizmeti dağıtmadan önce, mevcut kaynakları ve bunların nasıl kullanılacağını değerlendirmek çok yararlıdır. OpenStack, ana bilgisayarlar açısından farklı taleplere sahip olan birbiriyle ilişkili bir dizi hizmetten (Nova, Swift, vb.) Oluşur. Örneğin, nesne depolama sağlayan Swift hizmeti, bilgi işlem kaynakları sağlayan Nova hizmetinden farklı bir gereksinime sahiptir.

Her hizmet ve öneri için minimum gereksinimler resmi OpenStack Operasyon Kılavuzu'nda belirtilmiştir.

MAAS ve Juju ile OpenStack dağıtımı için önerilen düğümlerin bileşimi, sistemdeki tüm düğümlerin HİÇBİR hizmetleri çalıştırabilmesidir . Bu, sistemin sağlamlığı için en iyi uygulamadır, çünkü herhangi bir fiziksel düğüm başarısız olması gerektiğinden, bir başkası yerini almak için yeniden kullanılabilir. Bu açıkça ekstra ağ arayüzleri gibi donanım gereksinimlerini de kapsar.

Ekonomi nedeniyle veya başka bir şekilde farklı donanım yapılandırmaları kullanmayı seçerseniz, donanım arızasının üstesinden gelme yeteneğinizin azalacağını unutmayın. Ayrıca, dağıtımları belirli düğümlere hedeflemek de gerekecektir - etiketler üzerindeki MAAS belgelerindeki bölüme bakın .

OpenStack yapılandırma dosyasını oluşturma

OpenStack'ın bileşen parçalarını dağıtmak için Juju takılar kullanacağız. Her çekicilik, belirli bir hizmet kurmak için gereken her şeyi kapsar. Bununla birlikte, bireysel hizmetlerin, bazıları değiştirmek isteyeceğimiz birçok yapılandırma seçeneği vardır.

Bu görevi daha kolay ve tekrarlanabilir hale getirmek için, tüm hizmetler için ilgili seçeneklerle ayrı bir yapılandırma dosyası oluşturacağız. Bu standart bir YAML formatında yazılmıştır ( eğer size yabancıysanız www.yaml.org adresini ziyaret edin ).

İşte bir openstack-config.yaml örneği:

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'

Tüm hizmetler için, openstack-originyükleme kaynağını gösterecek şekilde yapılandırabiliriz . Bu durumda, Ubuntu 14.04 LTS Trusty sürümü için ilgili kaynaklara işaret edecek olan varsayılana güveneceğiz. Her hizmet için daha fazla yapılandırma bu belgede açıklanmıştır .

Diğer konfigürasyonlar

OpenStack hizmetlerinin konuşlandırılması için başka ayarlar ve yapılandırma seçenekleri de mümkündür. Bunlar, Juju tarafından kullanılan bireysel takılar belgelerinde detaylandırılmıştır ve çevrimiçi Juju Charm Mağazasını ziyaret ederek ve sayfanın sol üst köşesindeki arama kutusunu kullanarak cazibeyi arayarak denetlenebilir . yapılandırma ayarları daha sonra gösterildiği gibi ana sayfada "Yapılandırma" altında ayrıntılı olarak açıklanır:

resim açıklamasını buraya girin

Juju ile OpenStack'i Dağıtma

Şimdi yapılandırma tanımlandığına göre, hizmetleri dağıtmak ve ilişkilendirmek için Juju'yu kullanabiliriz.

Juju'yu başlatma

Juju minimum miktarda kurulum gerektirir. Burada MAAS kümenizle çalışacak şekilde yapılandırıldığını varsayıyoruz (bu konuda daha fazla bilgi için [Juju Kurulum Kılavuzu] [juju_install] 'a bakın.

İlk olarak, Juju'nun kullanacağı resim ve araçları getirmeliyiz:

juju sync-tools --debug

Sonra bootstrap örneğini oluşturabiliriz:

juju bootstrap --upload-tools --debug

Yeni getirdiğimiz araçların yerel sürümlerini kullanmak için upload-tools anahtarını kullanıyoruz. Hata ayıklama anahtarı, yararlı olabilecek ayrıntılı çıktı verecektir. Juju bir örnek oluşturduğu ve araçları yüklediği için bu işlem birkaç dakika sürebilir. Tamamlandığında, sistemin durumunu şu komutla kontrol edebilirsiniz:

juju status

Bu şöyle bir şey döndürmelidir:

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

OpenStack Düğmelerini Dağıtma

Artık Juju önyükleme düğümü çalışıyor ve OpenStack kurulumumuzu yapmak için gerekli hizmetleri dağıtabiliriz. Bu hizmetleri dağıtıldıkları gibi düzgün bir şekilde yapılandırmak için, daha önce tanımladığımız yapılandırma dosyasını --config, her bir dağıtım komutuyla birlikte anahtarı ileterek kullanacağız . Farklıysa, yapılandırma dosyanızın adını ve yolunu kullanın.

Hizmetlerin aşağıdaki sırayla dağıtılması yararlıdır, ancak zorunlu değildir. Ek bir terminal penceresi açmak ve komutu çalıştırmak da önerilir juju debug-log. Bu, tüm hizmetlerin günlüklerini çalıştıklarında alır ve sorun giderme için yararlı olabilir.

Ayrıca, juju statusher hizmetin yüklü ve düzgün çalışıp çalışmadığını kontrol etmek için düzenli aralıklarla bir komut çalıştırmanız önerilir . Juju, çevrimiçi Charm Store'dan cazibenin mümkün olan en iyi sürümünü otomatik olarak almaya çalışacaktır. Kısıtlı veya kapalı bir ağdan kurulum yapıyorsanız, gerekli takılar önceden getirilebilir. Bkz. [Çevrimdışı takılar için belgeler] [takılar-çevrimdışı].

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 hizmetleri arasında ilişki ekleme

Hizmetler dağıtılmasına rağmen, henüz birbirine bağlı değillerdir. Her hizmet şu anda tek başına mevcuttur. Biz kullanmak juju add-relation birbirlerine sahip olmasını sağlamayı ve ilgili bağlantıları ve protokolleri kurmak için komutu. Bu ekstra konfigürasyon, bireysel takılar tarafından halledilir.

Keystone yetkilendirme hizmetini ve veritabanını kurarak takılar arasında ilişki eklemeye başlamalıyız, çünkü diğer bağlantıların çoğunda ihtiyaç duyulacaktır:

juju add-relation keystone mysql

İlişki kurulana kadar bekleriz. Bittikten sonra juju durumu ile kontrol edin:

juju status mysql
juju status keystone

Bu hizmetin yerleşmesi birkaç dakika sürebilir. İlişkileri eklemeye devam etmek kesinlikle mümkün olsa da (Juju, beklemedeki eylemler için bir kuyruğu yönetir), ilişkilerin birçoğu aynı hizmetlere atıfta bulunduğundan, geçen toplam süre açısından verimsiz olabilir.

Aşağıdaki ilişkilerin de yapılması gerekir:

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

Son olarak, juju statüsünün çıktısı tüm ilişkileri eksiksiz olarak göstermelidir. OpenStack bulutu şimdi çalışıyor, ancak kullanıma hazır hale gelmeden önce bazı ek bileşenlerle doldurulması gerekiyor.




Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.