Bagaimana saya menggunakan cloud OpenStack dengan Juju?


15

Saya ingin mendapatkan cloud uji dan menjalankan dalam persiapan untuk kemungkinan penerapan 12,04. Saya sedikit mengotak-atik UEC, tetapi mengalami kesulitan menemukan sesuatu yang bermanfaat sebagai primer untuk tumpukan baru. Ada dokumentasi umum tentang Diablo, tetapi ada kemungkinan banyak bagian sudah berguna di Ubuntu yang dapat menghemat waktu dengan panduan tertentu.

Juga, sebanyak yang saya ingin, anggaran saya tidak termasuk $ 4-6k untuk menjalankan sebuah cluster kecil dengan dukungan Canonical.

Jawaban:


17

Menginstal OpenStack

Jika Anda ingin bangun dan berlari dengan cepat pergi ke sini:

Jawaban ini adalah tampilan yang lebih rinci tentang cara menggunakan Juju dengan OpenStack.

Cakupan

Platform OpenStack sangat kuat dan penggunaannya beragam. Bagian dokumentasi ini terutama berkaitan dengan penggunaan "standar" yang menjalankan sistem OpenStack menggunakan, tetapi tidak terbatas pada, komponen Canonical seperti MAAS, Juju dan Ubuntu. Apabila diperlukan, metode dan perangkat lunak lain akan disebutkan.

Asumsi

  1. Penggunaan MAAS - ikuti instruksi ini terlebih dahulu.
  2. Penggunaan Juju
  3. Konfigurasi jaringan lokal - Dokumen ini mengasumsikan bahwa Anda memiliki konfigurasi jaringan lokal yang memadai, termasuk antarmuka terpisah untuk akses ke cloud OpenStack. Jaringan ideal tercantum dalam [MAAS] [Dokumentasi MAAS untuk OpenStack].

Merencanakan instalasi

Sebelum menggunakan layanan apa pun, sangat berguna untuk mengambil stok dari sumber daya yang tersedia dan bagaimana mereka akan digunakan. OpenStack terdiri dari sejumlah layanan yang saling terkait (Nova, Swift, dll) yang masing-masing memiliki tuntutan berbeda dalam hal host. Sebagai contoh, layanan Swift, yang menyediakan penyimpanan objek, memiliki persyaratan yang berbeda dari layanan Nova, yang menyediakan sumber daya komputasi.

Persyaratan minimum untuk setiap layanan dan rekomendasi tercantum dalam Panduan Operasi OpenStack resmi

Komposisi node yang direkomendasikan untuk menggunakan OpenStack dengan MAAS dan Juju adalah bahwa semua node dalam sistem harus mampu menjalankan APAPUN layanan. Ini adalah praktik terbaik untuk ketahanan sistem, karena karena setiap simpul fisik harus gagal, yang lain dapat digunakan kembali untuk menggantikannya. Ini jelas meluas ke persyaratan perangkat keras apa pun seperti antarmuka jaringan tambahan.

Jika karena alasan ekonomi atau Anda memilih untuk menggunakan konfigurasi perangkat keras yang berbeda, Anda harus mencatat bahwa kemampuan Anda untuk mengatasi kegagalan perangkat keras akan berkurang. Ini juga akan perlu untuk menargetkan penyebaran ke node tertentu - lihat bagian dalam dokumentasi MAAS pada tag .

Buat file konfigurasi OpenStack

Kami akan menggunakan mantra Juju untuk menyebarkan bagian-bagian komponen OpenStack. Setiap pesona merangkum semua yang diperlukan untuk mengatur layanan tertentu. Namun, masing-masing layanan memiliki banyak opsi konfigurasi, beberapa di antaranya ingin kami ubah.

Untuk membuat tugas ini lebih mudah dan lebih dapat direproduksi, kami akan membuat file konfigurasi terpisah dengan opsi yang relevan untuk semua layanan. Ini ditulis dalam format YAML standar ( lihat www.yaml.org jika ini tidak Anda kenal ).

Berikut adalah contoh dari openstack-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'

Untuk semua layanan, kita dapat mengonfigurasi openstack-originto point ke sumber pemasangan. Dalam hal ini, kami akan bergantung pada default, yang akan menunjuk ke sumber yang relevan untuk rilis Ubuntu 14.04 LTS Trusty. Konfigurasi lebih lanjut untuk setiap layanan dijelaskan dalam dokumen ini .

Konfigurasi lainnya

Opsi pengaturan dan konfigurasi lainnya dimungkinkan untuk penyebaran layanan OpenStack. Ini dirinci dalam dokumentasi pesona individu yang digunakan oleh Juju, dan dapat diperiksa dengan mengunjungi Toko Pesona Juju online dan mencari pesona menggunakan kotak pencarian di sisi kiri atas halaman. pengaturan konfigurasi kemudian dirinci dalam "Konfigurasi" di halaman utama, seperti yang ditunjukkan:

masukkan deskripsi gambar di sini

Menyebarkan OpenStack dengan Juju

Sekarang konfigurasi sudah ditentukan, kita bisa menggunakan Juju untuk menyebarkan dan menghubungkan layanan.

Menginisialisasi Juju

Juju membutuhkan pengaturan minimal. Di sini kami menganggapnya telah dikonfigurasi untuk berfungsi dengan kluster MAAS Anda (lihat [Panduan Instalasi Juju] [juju_install] untuk informasi lebih lanjut tentang ini.

Pertama, kita perlu mengambil gambar dan alat yang akan digunakan Juju:

juju sync-tools --debug

Kemudian kita dapat membuat instance bootstrap:

juju bootstrap --upload-tools --debug

Kami menggunakan sakelar alat unggah untuk menggunakan versi lokal alat yang baru saja kami ambil. Saklar debug akan memberikan keluaran verbose yang dapat bermanfaat. Proses ini mungkin memakan waktu beberapa menit, karena Juju membuat contoh dan menginstal alat. Setelah selesai, Anda dapat memeriksa status sistem dengan perintah:

juju status

Ini akan menghasilkan sesuatu seperti:

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

Sebarkan OpenStack Charms

Sekarang node bootstrap Juju sudah aktif dan berjalan, kami dapat menggunakan layanan yang diperlukan untuk melakukan instalasi OpenStack kami. Untuk mengonfigurasikan layanan ini dengan benar saat digunakan, kami akan menggunakan file konfigurasi yang telah kami tentukan sebelumnya, dengan meneruskannya bersama --configsaklar dengan setiap perintah penyebaran. Ganti nama dan jalur file konfigurasi Anda jika berbeda.

Ini berguna tetapi tidak penting untuk menggunakan layanan dalam urutan di bawah ini. Juga sangat disarankan untuk membuka jendela terminal tambahan dan menjalankan perintah juju debug-log. Ini akan menampilkan log semua layanan saat dijalankan, dan dapat berguna untuk pemecahan masalah.

Juga dianjurkan untuk menjalankan juju statusperintah secara berkala, untuk memeriksa bahwa setiap layanan telah diinstal dan berjalan dengan benar. Juju akan secara otomatis mencoba untuk mengambil versi terbaik dari pesona dari Toko Pesona online. Jika Anda menginstal dari dalam jaringan terbatas atau tertutup, dimungkinkan untuk mengambil pra-jimat yang diperlukan. Lihat [dokumentasi untuk pesona offline] [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

Tambahkan hubungan antara layanan OpenStack

Meskipun layanan sekarang dikerahkan, mereka belum terhubung bersama. Setiap layanan saat ini ada dalam isolasi. Kami menggunakan juju add-relation perintah untuk membuat mereka sadar satu sama lain dan mengatur koneksi dan protokol yang relevan. Konfigurasi ekstra ini dirawat oleh pesona individu itu sendiri.

Kita harus mulai menambahkan hubungan antara mantra dengan menyiapkan layanan otorisasi Keystone dan databasenya, karena ini akan dibutuhkan oleh banyak koneksi lain:

juju add-relation keystone mysql

Kami menunggu sampai relasi ditetapkan. Setelah selesai periksa dengan status juju:

juju status mysql
juju status keystone

Butuh beberapa saat untuk menyelesaikan layanan ini. Meskipun tentu saja mungkin untuk terus menambahkan hubungan (Juju mengelola antrian untuk tindakan yang tertunda) namun dapat kontraproduktif dalam hal waktu keseluruhan yang diambil, karena banyak relasi merujuk pada layanan yang sama.

Hubungan-hubungan berikut juga perlu dibuat:

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

Akhirnya, output dari status juju harus menunjukkan semua hubungan sebagai lengkap. Cloud OpenStack sekarang berjalan, tetapi perlu diisi dengan beberapa komponen tambahan sebelum siap digunakan.




Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.