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

Sesuaikan dan konfigurasikan Dasbor

Setelah Dasbor terpasang, Anda dapat menyesuaikan cara tampilannya dan terasa sesuai dengan kebutuhan lingkungan Anda, proyek Anda, atau bisnis Anda.

Anda juga dapat mengonfigurasi Dasbor untuk penerapan HTTPS yang aman, atau penerapan HTTP. Instalasi OpenStack standar menggunakan saluran HTTP yang tidak terenkripsi, tetapi Anda dapat mengaktifkan dukungan SSL untuk Dasbor.

Untuk informasi tentang konfigurasi HTTPS atau HTTP, lihat Konfigurasikan Dasbor.

Sesuaikan Dasbor

OpenStack Dashboard di Ubuntu menginstal paket openstack-dashboard-ubuntu-theme secara default. Jika Anda tidak ingin menggunakan tema ini, hapus itu dan dependensinya:

# apt-get remove --auto-remove openstack-dashboard-ubuntu-theme

Catatan

Panduan ini berfokus pada file local_settings.py.

Konten Dasbor berikut dapat disesuaikan agar sesuai dengan kebutuhan Anda:

  • Logo

  • Site colors

  • HTML title

  • Logo link

  • Help URL

Logo dan site colors

  1. Buat dua file logo PNG dengan latar belakang transparan menggunakan ukuran berikut:

    • Login screen: 365 x 50

    • Logged in banner: 216 x 35

  2. Unggah images baru Anda ke /usr/share/openstack-dashboard/openstack_dashboard/static/dashboard/img/.

  3. Buat style sheet CSS di /usr/share/openstack-dashboard/openstack_dashboard/static/dashboard/scss/.

  4. Ubah warna dan nama file image yang sesuai. Pastikan jalur direktori relatif sama. File contoh berikut menunjukkan cara menyesuaikan file CSS Anda:

    /*
    * New theme colors for dashboard that override the defaults:
    *  dark blue: #355796 / rgb(53, 87, 150)
    *  light blue: #BAD3E1 / rgb(186, 211, 225)
    *
    * By Preston Lee <[email protected]>
    */
    h1.brand {
    background: #355796 repeat-x top left;
    border-bottom: 2px solid #BAD3E1;
    }
    h1.brand a {
    background: url(../img/my_cloud_logo_small.png) top left no-repeat;
    }
    #splash .login {
    background: #355796 url(../img/my_cloud_logo_medium.png) no-repeat center 35px;
    }
    #splash .login .modal-header {
    border-top: 1px solid #BAD3E1;
    }
    .btn-primary {
    background-image: none !important;
    background-color: #355796 !important;
    border: none !important;
    box-shadow: none;
    }
    .btn-primary:hover,
    .btn-primary:active {
    border: none;
    box-shadow: none;
    background-color: #BAD3E1 !important;
    text-decoration: none;
    }
    
  5. Buka template HTML berikut di editor pilihan Anda:

    /usr/share/openstack-dashboard/openstack_dashboard/templates/_stylesheets.html
    
  6. Tambahkan garis untuk memasukkan style sheetyang baru Anda buat. Misalnya, file custom.css:

    <link href='{{ STATIC_URL }}bootstrap/css/bootstrap.min.css' media='screen' rel='stylesheet' />
    <link href='{{ STATIC_URL }}dashboard/css/{% choose_css %}' media='screen' rel='stylesheet' />
    <link href='{{ STATIC_URL }}dashboard/css/custom.css' media='screen' rel='stylesheet' />
    
  7. Restart layanan Apache.

  8. Untuk melihat perubahan Anda, muat ulang Dasbor Anda. Jika perlu, kembali dan modifikasi file CSS Anda sebagaimana mestinya.

HTML title

  1. Atur judul HTML, yang muncul di bagian atas jendela browser, dengan menambahkan baris berikut ke local_settings.py:

    SITE_BRANDING = "Example, Inc. Cloud"
    
  2. Mulai ulang Apache agar perubahan ini diterapkan.

Help URL

  1. Secara default, URL bantuan menunjuk ke https://docs.openstack.org. Untuk mengubahnya, edit atribut berikut di local_settings.py:

    HORIZON_CONFIG["help_url"] = "http://openstack.mycompany.org"
    
  2. Mulai ulang Apache agar perubahan ini diterapkan.

Konfigurasikan Dasbor

Bagian berikut dalam mengonfigurasi Dasbor untuk penerapan HTTPS yang aman, atau penerapan HTTP, menggunakan contoh konkret untuk memastikan prosedurnya jelas. Namun, jalur file bervariasi berdasarkan distribusi. Jika diperlukan, Anda juga dapat mengkonfigurasi ukuran jendela VNC di Dasbor.

Konfigurasikan Dasbor untuk HTTP

Anda dapat mengkonfigurasi Dasbor untuk penerapan HTTP sederhana. Instalasi standar menggunakan saluran HTTP yang tidak terenkripsi.

  1. Tentukan host untuk endpoint layanan Identitas Anda di file local_settings.py dengan pengaturan OPENSTACK_HOST.

    Contoh berikut menunjukkan pengaturan ini:

    import os
    
    from django.utils.translation import gettext_lazy as _
    
    DEBUG = False
    TEMPLATE_DEBUG = DEBUG
    PROD = True
    
    SITE_BRANDING = 'OpenStack Dashboard'
    
    # Ubuntu-specific: Enables an extra panel in the 'Settings' section
    # that easily generates a Juju environments.yaml for download,
    # preconfigured with endpoints and credentials required for bootstrap
    # and service deployment.
    ENABLE_JUJU_PANEL = True
    
    # Note: You should change this value
    SECRET_KEY = 'elj1IWiLoWHgryYxFT6j7cM5fGOOxWY0'
    
    # Specify a regular expression to validate user passwords.
    # HORIZON_CONFIG = {
    #     "password_validator": {
    #         "regex": '.*',
    #         "help_text": _("Your password does not meet the requirements.")
    #     }
    # }
    
    LOCAL_PATH = os.path.dirname(os.path.abspath(__file__))
    
    CACHES = {
        'default': {
            'BACKEND' : 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION' : '127.0.0.1:11211'
        }
    }
    
    # Send email to the console by default
    EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
    # Or send them to /dev/null
    #EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend'
    
    # Configure these for your outgoing email host
    # EMAIL_HOST = 'smtp.my-company.com'
    # EMAIL_PORT = 25
    # EMAIL_HOST_USER = 'djangomail'
    # EMAIL_HOST_PASSWORD = 'top-secret!'
    
    # For multiple regions uncomment this configuration, and add (endpoint, title).
    # AVAILABLE_REGIONS = [
    #     ('http://cluster1.example.com/identity/v3', 'cluster1'),
    #     ('http://cluster2.example.com/identity/v3', 'cluster2'),
    # ]
    
    OPENSTACK_HOST = "127.0.0.1"
    OPENSTACK_KEYSTONE_URL = "http://%s/identity/v3" % OPENSTACK_HOST
    OPENSTACK_KEYSTONE_DEFAULT_ROLE = "Member"
    
    # The OPENSTACK_KEYSTONE_BACKEND settings can be used to identify the
    # capabilities of the auth backend for Keystone.
    # If Keystone has been configured to use LDAP as the auth backend then set
    # can_edit_user to False and name to 'ldap'.
    #
    # TODO(tres): Remove these once Keystone has an API to identify auth backend.
    OPENSTACK_KEYSTONE_BACKEND = {
        'name': 'native',
        'can_edit_user': True
    }
    
    # OPENSTACK_ENDPOINT_TYPE specifies the endpoint type to use for the endpoints
    # in the Keystone service catalog. Use this setting when Horizon is running
    # external to the OpenStack environment. The default is 'internalURL'.
    #OPENSTACK_ENDPOINT_TYPE = "publicURL"
    
    # The number of Swift containers and objects to display on a single page before
    # providing a paging element (a "more" link) to paginate results.
    API_RESULT_LIMIT = 1000
    
    # If you have external monitoring links, eg:
    # EXTERNAL_MONITORING = [
    #     ['Nagios','http://foo.com'],
    #     ['Ganglia','http://bar.com'],
    # ]
    
    LOGGING = {
            'version': 1,
            # When set to True this will disable all logging except
            # for loggers specified in this configuration dictionary. Note that
            # if nothing is specified here and disable_existing_loggers is True,
            # django.db.backends will still log unless it is disabled explicitly.
            'disable_existing_loggers': False,
            'handlers': {
                'null': {
                    'level': 'DEBUG',
                    'class': 'logging.NullHandler',
                    },
                'console': {
                    # Set the level to "DEBUG" for verbose output logging.
                    'level': 'INFO',
                    'class': 'logging.StreamHandler',
                    },
                },
            'loggers': {
                # Logging from django.db.backends is VERY verbose, send to null
                # by default.
                'django.db.backends': {
                    'handlers': ['null'],
                    'propagate': False,
                    },
                'horizon': {
                    'handlers': ['console'],
                    'propagate': False,
                },
                'novaclient': {
                    'handlers': ['console'],
                    'propagate': False,
                },
                'keystoneclient': {
                    'handlers': ['console'],
                    'propagate': False,
                }
            }
    }
    

    Konfigurasi katalog layanan dalam layanan Identity menentukan apakah layanan muncul di Dasbor. Untuk daftar lengkap, lihat Referensi Pengaturan.

  2. Restart Apache HTTP Server.

  3. Restart memcached.

Konfigurasikan Dasbor untuk HTTPS

Anda dapat mengonfigurasi Dasbor untuk penerapan HTTPS yang aman. Sementara instalasi standar menggunakan saluran HTTP yang tidak terenkripsi, Anda dapat mengaktifkan dukungan SSL untuk Dasbor.

Contoh ini menggunakan domain http://openstack.example.com. Gunakan domain yang sesuai dengan pengaturan Anda saat ini.

  1. Di file local_settings.py, perbarui opsi berikut:

    CSRF_COOKIE_SECURE = True
    SESSION_COOKIE_SECURE = True
    SESSION_COOKIE_HTTPONLY = True
    

    Opsi lainnya mengharuskan HTTPS diaktifkan; opsi ini dipertahankan terhadap scripting lintas situs.

  2. Edit file openstack-dashboard.conf seperti yang ditunjukkan pada Example After:

    Example Before

    WSGIScriptAlias / /usr/share/openstack-dashboard/openstack_dashboard/wsgi.py
    WSGIDaemonProcess horizon user=www-data group=www-data processes=3 threads=10
    Alias /static /usr/share/openstack-dashboard/openstack_dashboard/static/
    <Location />
      <ifVersion >=2.4>
        Require all granted
      </ifVersion>
      <ifVersion <2.4>
        Order allow,deny
        Allow from all
      </ifVersion>
    </Location>
    

    Example After

    <VirtualHost *:80>
      ServerName openstack.example.com
      <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
      </IfModule>
      <IfModule !mod_rewrite.c>
        RedirectPermanent / https://openstack.example.com
      </IfModule>
    </VirtualHost>
    
    <VirtualHost *:443>
      ServerName openstack.example.com
    
      SSLEngine On
      # Remember to replace certificates and keys with valid paths in your environment
      SSLCertificateFile /etc/apache2/SSL/openstack.example.com.crt
      SSLCACertificateFile /etc/apache2/SSL/openstack.example.com.crt
      SSLCertificateKeyFile /etc/apache2/SSL/openstack.example.com.key
      SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
    
      # HTTP Strict Transport Security (HSTS) enforces that all communications
      # with a server go over SSL. This mitigates the threat from attacks such
      # as SSL-Strip which replaces links on the wire, stripping away https prefixes
      # and potentially allowing an attacker to view confidential information on the
      # wire
      Header add Strict-Transport-Security "max-age=15768000"
    
      WSGIScriptAlias / /usr/share/openstack-dashboard/openstack_dashboard/wsgi.py
      WSGIDaemonProcess horizon user=www-data group=www-data processes=3 threads=10
      Alias /static /usr/share/openstack-dashboard/openstack_dashboard/static/
      <Location />
        Options None
        AllowOverride None
        # For Apache http server 2.4 and later:
        <ifVersion >=2.4>
          Require all granted
        </ifVersion>
        # For Apache http server 2.2 and earlier:
        <ifVersion <2.4>
          Order allow,deny
          Allow from all
        </ifVersion>
      </Location>
    </VirtualHost>
    

    Dalam konfigurasi ini, Apache HTTP Server mendengarkan pada port 443 dan mengalihkan semua permintaan tidak aman ke protokol HTTPS. Bagian aman mendefinisikan kunci privat, kunci publik, dan sertifikat untuk digunakan.

  3. Restart Apache HTTP Server.

  4. Restart memcached.

    Jika Anda mencoba mengakses Dasbor melalui HTTP, browser akan mengarahkan Anda ke halaman HTTPS.

    Catatan

    Mengonfigurasi Dasbor untuk HTTPS juga mengharuskan mengaktifkan SSL untuk layanan proxy noVNC. Pada simpul pengontrol, tambahkan opsi tambahan berikut ke bagian [DEFAULT] `` dari file ``/etc/nova/nova.conf:

    [DEFAULT]
    # ...
    ssl_only = true
    cert = /etc/apache2/SSL/openstack.example.com.crt
    key = /etc/apache2/SSL/openstack.example.com.key
    

    Pada node komputasi, pastikan opsi nonvncproxy_base_url menunjuk ke URL dengan skema HTTPS:

    [DEFAULT]
    # ...
    novncproxy_base_url = https://controller:6080/vnc_auto.html