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
- MAAS kullanımı - önce bu talimatları izleyin.
- Juju Kullanımı
- 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-origin
yü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:
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 status
her 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.