[ English | English (United Kingdom) | 中文 (简体, 中国) | Indonesia | русский | français | नेपाली | Deutsch | Esperanto | português (Brasil) | español | 한국어 (대한민국) ]

Pemasangan manual

Halaman ini mencakup pemasangan horizon dasar dalam lingkungan produksi. Jika Anda mencari lingkungan pengembang, lihat Quickstart.

Untuk dependensi sistem, lihat Persyaratan sistem.

Pemasangan

Catatan

Dalam perintah di bawah ini, gantikan "<release>" untuk versi pilihan Anda, seperti "queens" atau "rocky".

Jika Anda menggunakan versi pengembangan, ganti "stable/<release>" dengan "master".

  1. Clone Horizon

    $ git clone https://opendev.org/openstack/horizon -b stable/<release> --depth=1
    $ cd horizon
    
  2. Instal modul horizon python ke dalam sistem Anda

    $ sudo pip install -c https://opendev.org/openstack/requirements/raw/branch/stable/<release>/upper-constraints.txt .
    

Konfigurasi

Bagian ini berisi ringkasan kecil dari pengaturan kritis yang diperlukan untuk menjalankan horizon. Untuk lebih jelasnya, silakan merujuk Referensi Pengaturan.

Pengaturan

Buat openstack_dashboard/local/local_settings.py. Itu biasanya ide yang baik untuk menyalin openstack_dashboard/local/local_settings.py.example` dan mengeditnya. Minimal, pengaturan berikut perlu dimodifikasi:

DEBUG

Setel ke False

ALLOWED_HOSTS

Setel nama domain Anda (s)

OPENSTACK_HOST

Atur ke IP endpoint Keystone Anda. Anda mungkin juga perlu mengubah OPENSTACK_KEYSTONE_URL

Catatan

Langkah-langkah berikut di bagian "Configuration" adalah opsional, tetapi sangat dianjurkan dalam produksi.

Translations (terjemahan)

Menyusun katalog pesan terjemahan untuk internasionalisasi. Langkah ini tidak diperlukan jika Anda tidak perlu mendukung bahasa selain Bahasa Inggris AS. Alat gettext` GNU diperlukan untuk mengkompilasi katalog pesan.

$ sudo apt install gettext
$ ./manage.py compilemessages

Static Assets

Kompres file statis Anda dengan menambahkan COMPRESS_OFFLINE = True ke local_settings.py Anda, lalu jalankan perintah berikut

$ ./manage.py collectstatic
$ ./manage.py compress

Logging

Horizons menggunakan mekanisme konfigurasi Django's logging, yang dapat dikustomisasi dengan mengubah kamus LOGGING di local_settings.py. Secara default, contoh Horizon's logging menyetel tingkat log ke `` INFO``.

Horizon juga menggunakan sejumlah klien pihak ketiga yang masuk secara terpisah. Tingkat log untuk ini masih dapat dikontrol melalui konfigurasi LOGGING Horizon, namun perilaku dapat bervariasi di luar kendali Horizon.

Untuk informasi lebih lanjut tentang mengkonfigurasi penebangan di Horizon, silakan baca 'Django logging directive`_ dan dokumentasi `Python loggingiveive__. Horizon dibangun di atas Python dan Django.

Session Storage

Horizon menggunakan Django's sessions framework untuk menangani data sesi. Ada banyak sesi backend yang tersedia, yang dipilih melalui pengaturan SESSION_ENGINE di file local_settings.py Anda.

Memcached

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.PyMemcacheCache',
        'LOCATION': 'controller:11211',
    }
}

Eksternal caching menggunakan aplikasi seperti memcached menawarkan persisten dan penyimpanan bersama, dan bisa sangat berguna untuk penyebaran skala kecil dan/atau pengembangan. Namun, untuk skenario yang didistribusikan dan ketersediaan tinggi memcached memiliki masalah yang melekat yang berada di luar lingkup dokumentasi ini.

Persyaratan:

  • Layanan memcached berjalan dan dapat diakses

  • Modul Python memcached terpasang

Database

SESSION_ENGINE = 'django.core.cache.backends.db.DatabaseCache'
DATABASES = {
    'default': {
        # Database configuration here
    }
}

Sesi yang didukung database bersifat skalabel (menggunakan strategi basis data yang sesuai), persisten, dan dapat dibuat konkurensi tinggi dan sangat tersedia.

Kelemahan dari pendekatan ini adalah bahwa sesi yang didukung database adalah salah satu penyimpanan sesi yang lebih lambat, dan menimbulkan biaya overhead yang tinggi di bawah penggunaan berat. Konfigurasi yang tepat dari penyebaran basis data Anda juga dapat menjadi pekerjaan substansial dan jauh di luar lingkup dokumentasi ini.

Cached Database

Untuk mengurangi masalah kinerja query database, Anda juga dapat mempertimbangkan untuk menggunakan backend sesi cached_db Django yang memanfaatkan database dan infrastruktur cache untuk melakukan cache write-through dan pengambilan yang efisien. Anda dapat mengaktifkan pengaturan hibrida ini dengan mengkonfigurasi database dan cache Anda seperti yang dibahas di atas dan kemudian menggunakan

SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"

Deployment

  1. Siapkan server web dengan dukungan WSGI. Sebagai contoh, instal server web Apache di Ubuntu

    $ sudo apt install apache2 libapache2-mod-wsgi
    

    Anda dapat menggunakan openstack_dashboard/wsgi.py atau menghasilkan file openstack_dashboard/horizon_wsgi.py dengan perintah berikut (yang mendeteksi jika Anda menggunakan lingkungan virtual atau tidak secara otomatis membangun file WSGI yang disesuaikan )

    $ ./manage.py make_web_conf --wsgi
    

    Then configure the web server to host OpenStack dashboard via WSGI. For apache2 web server, you may need to create /etc/apache2/sites-available/horizon.conf. The template in DevStack is a good example of the file. https://opendev.org/openstack/devstack/src/branch/master/files/apache-horizon.template. Or you can automatically generate an apache configuration file. If you previously generated an openstack_dashboard/horizon_wsgi.py file it will use that, otherwise will default to using openstack_dashboard/wsgi.py

    $ ./manage.py make_web_conf --apache > /etc/apache2/sites-available/horizon.conf
    

    Sama seperti di atas tetapi jika Anda menginginkan dukungan SSL

    $ ./manage.py make_web_conf --apache --ssl --sslkey=/path/to/ssl/key --sslcert=/path/to/ssl/cert > /etc/apache2/sites-available/horizon.conf
    

    Secara default, konfigurasi apache akan meluncurkan sejumlah proses apache yang sama dengan jumlah CPU + 1 dari mesin di mana Anda meluncurkan perintah make_web_conf. Jika mesin target tidak sama atau jika Anda ingin menentukan jumlah proses, tambahkan opsi --processes

    $ ./manage.py make_web_conf --apache --processes 10 > /etc/apache2/sites-available/horizon.conf
    
  2. Aktifkan konfigurasi di atas dan mulai ulang server web

    $ sudo a2ensite horizon
    $ sudo service apache2 restart
    

Langkah selanjutnya