Penyebaran Openstack Landscape gagal di Mengkonfigurasi Zona Ketersediaan

8

Menggunakan opsi Landscape "OpenStack Beta" saat ini untuk menyebarkan OpenStack pada pengaturan MAAS saya. Saya mendapatkan penyelesaian 98%, dengan 1 kegagalan pada "Konfigurasikan zona ketersediaan". Pengaturan saya menggunakan KVM, Open vSwitch, dan saat ini saya menggunakan Ceph untuk penyimpanan objek dan blok. Ketika saya melihat /var/log/landscape/job-handler-1.log pada mesin landscape adalah melihat lebih dari 100 kesalahan tentang:

2015-03-05 21:18:38 INFO root RetryingCall untuk '_get_nova_info' gagal, mencoba 103 lebih banyak waktu: 2015-03-05 21:18:38 INFO root Traceback:: Hilang 4 unit nova-compute
/ usr /lib/python2.7/threading.py:783:__bootstrap
/usr/lib/python2.7/threading.py:810:__bootstrap_inner
/usr/lib/python2.7/threading.py:763:run
--- < pengecualian tertangkap di sini> ---
/usr/lib/python2.7/dist-packages/twisted/python/threadpool.py:191:_worker
/usr/lib/python2.7/dist-packages/twisted/python/context. py: 118: callWithContext
/usr/lib/python2.7/dist-packages/twisted/python/context.py:81:callWithContext
/usr/lib/python2.7/dist-packages/storm/twisted/transact.py: 76: _wrap
/opt/canonical/landscape/canonical/landscape/model/openstack/jobs.py:751:_get_nova_info


CATATAN : Nomor baris di jobs.py tidak aktif karena saya telah menambahkan beberapa pernyataan cetak untuk debugging. Ini adalah pernyataan dalam fungsi _get_nova_info () di dekat baris # 741 (jika memori berfungsi), dan ya saya menggunakan versi lansekap terbaru pada hari ini dari ppa lanskap untuk dipercaya.

Jadi saya dimodifikasi /opt/canonical/landscape/canonical/landscape/model/openstack/jobs.py 's _get_nova_info () fungsi untuk mencetak panjang nova_compute_hostnames dan aku nol . Jadi saya dikejar itu menjadi /opt/canonical/landscape/canonical/landscape/model/openstack/region.py 's get_nova_compute_hostnames () dan menemukan bahwa self.juju_environment.get_computer_ids (). Count () juga nol . Jadi saya menambahkan panggilan ke self.juju_environment.has_computers () dan mendapat false . Lalu saya berlari self.juju_environment.get_juju_home () dan mendapat/ var / lib / landscape / juju-homes / 20 . (Ya ini adalah upaya saya yang ke-20 pada rekondisi ke-2 saya dari kotak lansekap, saya sudah melakukan ini untuk sementara waktu). Jadi saya menjalankan status juju menggunakan rumah juju yang disebutkan di atas dan semuanya terlihat baik. Semua 5 mesin dan layanan dimulai, tidak ada status tertunda atau kesalahan. (termasuk 4 node nova-compute) Ada ide? Saya agak baru untuk landscape, MAAS, JUJU, & python sehingga debugging saya agak lambat.


PEMBARUAN 1:

Sesuai permintaan, saya mendapat 2 log (walaupun rumah saya sekarang # 23) status juju dan broker.log . Saya pikir saya sekarang tahu apa masalah saya per potongan dari broker.log di bawah ini. (Terima kasih dpb untuk menunjuk saya ke sana) Mesin MAAS saya memberikan alamat DHCP ke LXC lansekap saya, tetapi lansekap LXC saya tidak ada dalam DNS yang dikendalikan MAAS karena tidak disediakan oleh MAAS. Oleh karena itu mesin yang disediakan tidak dapat terhubung ke server lanskap dengan nama.

Jadi itu mengarahkan saya ke pertanyaan terkait, apakah ada cara yang baik untuk membuat MAAS memperbarui DNS secara otomatis dengan mesin yang tidak disediakan (atau di bawah kendali MAAS)? Jika tidak, saya harus memberikannya IP statis di luar rentang DHCP saya dan secara manual mengatur DNS.

2015-03-06 17: 09: 50.665 INFO [MainThread] Broker memulai dengan config /etc/landscape/client.conf
2015-03-06 17: 09: 52.382 INFO [MainThread] Memulai pertukaran pesan mendesak dengan https: // landscape / sistem pesan .
2015-03-06 17: 09: 52.389 ERROR [PoolThread-twisted.internet.reactor-1] Kesalahan menghubungi server di https: // landscape / message-system .
Traceback (panggilan terakhir terakhir):
File "/usr/lib/python2.7/dist-packages/landscape/broker/transport.py", baris 71, dalam pertukaran
message_api)
File "/usr/lib/python2.7/ dist-package / landscape / broker / transport.py ", baris 45, dalam _curl
header = header, cainfo = self._pubkey, curl = curl))
File "/usr/lib/python2.7/dist-packages/landscape/lib/fetch.py", baris 109, dalam pengambilan
meningkatkan PyCurlError (e.args [0], e.args 1 )
PyCurlError: Kesalahan 6: Bisa tidak menyelesaikan host: landscape
2015-03-06 17: 09: 52.390 INFO [MainThread] Pertukaran pesan gagal.
2015-03-06 17: 09: 52.391 INFO [MainThread] Pertukaran pesan selesai dalam 0.01s.


PEMBARUAN 2:

Setup saya agak terbatas karena saya hanya diberi 6 mesin (5 node dan 1 controller) untuk menunjukkan kemampuan OpenStack / Landscape jadi saya tidak bisa menggunakan mesin khusus untuk landscape. Saya menggunakan landscape-server-quickstart dalam LXC pada kontroler MAAS saya sehingga saya dapat dengan cepat meniupnya dan memulai dari awal.

jadi saya menghapus pengaturan lanskap dan mengatur LXC ke IP statis, kemudian memodifikasi DNS (dikontrol oleh MAAS) untuk memiliki entri DNS statis untuk server lanskap saya. Kemudian saya menginstal Landscape Dedicated Server pada LXC menggunakan metode landscape-server-quickstart yang disebutkan di atas.

Setelah menginstal ulang ini (terutama untuk membersihkan semua kekacauan debug saya) saya akhirnya dapat menginstal OpenStack meskipun landscape. Terima kasih.

Master5597
sumber

Jawaban:

4

Pesan "Missing N nova-compute units" adalah tentang agen klien lanskap yang terdaftar kembali ke lanskap, Periksa /var/log/landscape/broker.logunit yang hilang.

MEMPERBARUI:

Seperti yang telah Anda identifikasi dengan benar, segala sesuatunya berjalan lancar jika LDS (Landscape Dedicated Server) diinstal ke MAAS yang sama dengan tempat openstack Anda akan hidup, sebagian besar karena perutean jaringan dan DNS. Namun, variasi yang tak terhitung jumlahnya ada dari topologi yang valid dengan rute antar jaringan, dll.

Beberapa saran untuk mencoba, bacalah semuanya. Pada akhirnya Anda perlu menentukan topologi penempatan Anda:

  • Untuk tes, gunakan LDS ke MAAS yang sama di mana openstack Anda akan - hanya untuk memeriksa apakah ada yang berfungsi di sana. Gunakan alat instalan-openstack , atau paket lansekap-padat dengan juju-quickstart secara langsung untuk memfasilitasi ini.

  • Klien Anda harus dapat mencapai LDS, seperti yang telah Anda nyatakan. Jika mereka dapat merutekan IP ke tempat LDS digunakan, Anda dapat menghancurkan instalasi openstack, mengubah pengaturan apache servername Anda dan coba lagi. juju set apache2 servername=IP_ADDRESS. Setelah melakukan ini, ikuti juju debug-log, pastikan semua muncul OK, dan pastikan Anda dapat menelusuri ke GUI LDS di https: // IP_ADDRESS / URL.

dpb
sumber