在上一篇部落格中,我們成功的基於兩種網路啟動虛擬機器;這意味著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圖形介面去管理虛擬機器了;