雲端計算管理平臺之OpenStack Web管理工具dashboard

1874發表於2020-11-02

  在上一篇部落格中,我們成功的基於兩種網路啟動虛擬機器;這意味著openstack的核心服務都搭建完成,並正常執行著;有關啟動虛擬機器例項請參考上一篇部落格;今天我們來了解下,基於一個web介面圖形工具來管理openstack上的虛擬機器;

  openstack是iaas(Infrastructure as a Service)服務模型,所謂iaas指基礎設施及服務;它的意思就是把基礎設施用服務的方式通過網路對外提供;比如,我們要10臺虛擬機器;我們可以在openstack的web介面上點點滑鼠就能給我們啟動10臺虛擬機器,至於這些虛擬機器在哪裡,怎麼啟動的我們不用關心;我們只需要關心我們期望的10臺虛擬機器是不是能夠正常使用,是不是我們期望的配置,網路是不是通暢;簡單點講iaas就是把基礎設施以服務的方式對外提供,對使用者來講,它隱藏了基礎設施的構建過程;常用的還有其他服務模型,比如saas,paas,lbaas,fwaas等等,這些都是在講把什麼抽象成服務的形式對外提供;這些服務模型的出現,大大簡化了傳統從底層開始構建的複雜過程;

  在上一篇部落格我們主要聊了下在命令列通過命令的方式在openstack環境上啟動虛擬機器,通常這種方式不太適合對普通使用者使用;為了讓openstack易用,我們得給openstack提供一個圖形介面,以實現方便任何人使用;dashboard是openstack環境中提供web介面的服務,其專案名稱叫horizon,主要作用就是提供一個web管理介面,方便使用者管理執行在openstack之上的虛擬機器;

  1、dashboard服務的安裝配置

  環境說明,dashboard這個服務可以執行在控制節點,也可以執行在其他一個單獨的節點上,但是執行在單獨的一個節點上,請提前配置好yum倉庫,時間同步,以及主機名解析等等;有關基礎環境的配置,請參考https://www.cnblogs.com/qiuhom-1874/p/13886693.html;我這裡用一臺獨立的服務安裝dashboard服務;

  安裝dashboard

[root@node04 ~]# yum install openstack-dashboard -y

  編輯/etc/openstack-dashboard/local_settings配置檔案,配置OPENSTACK_HOST地址

OPENSTACK_HOST = "controller"

  提示:這裡可以是主機名,可以是ip地址,預設是127.0.0.1;如果配置主機名,請提前對主機名做名稱解析;

  配置任何主機都允許訪問dashboard服務

ALLOWED_HOSTS = ['*', ]

  提示:*表示通配所有主機;

  配置儲存session的服務為memcached,並配置memcached的地址

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

CACHES = {
    'default': {
         'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
         'LOCATION': 'controller:11211',
    }
}

  提示:配置了memcached作為session儲存伺服器,下面預設的CACHES配置就要全部註釋;

  啟用Identity API版本3

OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST

  提示:上面紅框中的配置表示把%s替換成OPENSTACK_HOST這個變數的值;也就是說OPENSTACK_KEYSTONE_URL = “http://controller:5000/v3”

  啟用對域的支援

OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True

  配置API版本

OPENSTACK_API_VERSIONS = {
#    "data-processing": 1.1,
    "identity": 3,
    "image": 2,
    "volume": 2,
#    "compute": 2,
}

  配置default域為使用者的預設域

OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"

  配置建立使用者的角色預設為user角色

OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"

  配置網路相關引數,如果openstack中的neutron服務配置的的是provider network ,需要禁用對三層網路的支援,如果是self-service network保持預設即可

  預設配置是

  如果選用的是provider network這種網路模型,配置是

OPENSTACK_NEUTRON_NETWORK = {
    ...
    'enable_router': False,
    'enable_quotas': False,
    'enable_distributed_router': False,
    'enable_ha_router': False,
    'enable_lb': False,
    'enable_firewall': False,
    'enable_vpn': False,
    'enable_fip_topology_check': False,

  配置時區

TIME_ZONE = "Asia/Shanghai"

  在/etc/httpd/conf.d/openstack-dashboard.conf配置檔案匯入以下配置

WSGIApplicationGroup %{GLOBAL}

  啟動httpd服務,並將其設定為開機啟動

  提示:以上啟動httpd沒有成功的原因是在node04上沒有安裝連線memcache的驅動,所以導致啟動httpd時連線memcached找不到模組;

  安裝連線memcached驅動

[root@node04 ~]# yum install python-memcached
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * centos-qemu-ev: mirror.bit.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package python-memcached.noarch 0:1.58-1.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package                       Arch                Version                    Repository                           Size
========================================================================================================================
Installing:
 python-memcached              noarch              1.58-1.el7                 centos-openstack-rocky               38 k

Transaction Summary
========================================================================================================================
Install  1 Package

Total download size: 38 k
Installed size: 123 k
Is this ok [y/d/N]: y
Downloading packages:
python-memcached-1.58-1.el7.noarch.rpm                                                           |  38 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : python-memcached-1.58-1.el7.noarch                                                                   1/1 
  Verifying  : python-memcached-1.58-1.el7.noarch                                                                   1/1 

Installed:
  python-memcached.noarch 0:1.58-1.el7                                                                                  

Complete!
[root@node04 ~]# 

  再次啟動httpd,看看是否能夠起來?

[root@node04 ~]# systemctl start httpd
[root@node04 ~]# ss -ntl
State      Recv-Q Send-Q               Local Address:Port                              Peer Address:Port              
LISTEN     0      128                              *:22                                           *:*                  
LISTEN     0      100                      127.0.0.1:25                                           *:*                  
LISTEN     0      128                             :::80                                          :::*                  
LISTEN     0      128                             :::22                                          :::*                  
LISTEN     0      100                            ::1:25                                          :::*                  
[root@node04 ~]# systemctl enable httpd.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@node04 ~]# 

  用瀏覽器訪問httpd所在伺服器ip地址+/dashboard,看看是否能夠訪問到dashboard?

  用default域demo使用者帳號和密碼,登入dashbroad

  檢視demo使用者啟動的虛擬機器例項,看看是否能夠看到之前我們啟動的例項?

  管理例項,連線例項控制檯

  停止例項

  建立3個虛擬機器例項

  選擇映象

  選擇模板

  選擇網路

  建立例項

  提示:可以看到我們想要的3個虛擬機器例項建立好了;

  驗證:在計算節點上,看看是否有4個虛擬機器處於執行狀態呢?

[root@node03 ~]# virsh list 
 Id    Name                           State
----------------------------------------------------
 1     instance-00000001              running
 13    instance-0000000e              running
 14    instance-0000000c              running
 15    instance-0000000d              running

[root@node03 ~]# 

  提示:可以看到有4個虛擬機器處於執行狀態;

  檢視網路top圖

  ok,到此dashboard服務就搭建好了;後續我們就可以使用這個web圖形介面去管理虛擬機器了;

相關文章