openstack基礎環境部署以及openstack部署架構圖


安裝 openstack 基礎組件准備

本次安裝 T 版,各種組件最好安裝正式版

Alpha:是內部測試版,一般不向外部發布,通常只在軟件開發者內部交流,該版本軟件的 Bug較多,需要繼續修改。

Dev:在軟件開發中多用於開發軟件的代號,相比於 beta 版本,dev 版本可能出現的更早,甚至還沒有發布。這也就意味着,dev 版本的軟件通常比 beta 版本的軟件更不穩定

Beta:也是測試版,這個階段的版本會一直加入新的功能。在 Alpha 版之后推出。

RC:(Release Candidate) 就是發行候選版本,RC 版不會再加入新的功能了,主要着重於除錯。

GA:General Availability,正式發布的版本。

Release:該版本意味“最終版本”,在前面版本的一系列測試版之后,終歸會有一個正式版本,是最終交付用戶使用的一個版本。該版本有時也稱為標准版。

注意事項

1、openstack管理端需要運行多個服務,所以內存需要大一些,最少4G;openstack管理端是不運行虛擬機的,可以不開啟內核的虛擬化功能;

2、安裝openstack時先安裝認證服務,只有安裝完認證服務(認證服務是使用apache運行的)之后,才可以創建賬號進行管理,然后安裝鏡像服務、計算服務、網絡服務,計算服務和網絡服務分為管理端和客戶端,所以需要在openstack的管理端安裝計算服務和網絡服務的管理端,在創建虛擬機的node節點上安裝計算服務和網絡服務的客戶端,最后安裝dashboard服務,openstack各種組件的API都是通過apache運行的;
openstack的管理端負責創建虛擬機時的調度;
通過openstack管理端創建虛擬機的相關數據最終都會記錄到mysql中;node節點沒有權限往數據庫中寫數據,只有控制端有權限,並且node節點與控制端通訊是通過rabbitmq間接通訊,node節點會監聽rabbitmq,控制端也會監聽rabbitmq,控制端把創建虛擬機的指令發送到rabbitmq,由監聽rabbitmq指定隊列的node節點接收消息並創建虛擬機;

3、在使用RDO軟件包時(安裝openstack時)禁用EPEL,因為EPEL中的更新會破壞向后兼容性。或者,最好是使用yum-versionlock插件固定封裝版本。

安裝前准備

1、yum list centos-release-opensack*  #查看yum能夠安裝的openstack版本

實現架構

(01)

openstack-controler

https://docs.openstack.org/install-guide/overview.html #安裝openstack前需要的硬件及系統配置

https://docs.openstack.org/install-guide/environment-packages-rdo.html #安裝參考文檔

1、hostnamectl set-hostname openstack-controler1.example.local  #修改控制端主機名

2、yum install centos-release-openstack-train.noarch -y  
#安裝官方openstack T版的yum源;node節點、controler節點、mysql服務器都需要安裝

3、yum install https://rdoproject.org/repos/rdo-release.rpm  
#安裝RDO存儲庫RPM以啟用OpenStack存儲庫;安裝rdo源,這個源中保存了比較新並且穩定的openstack的包;node節點、controler節點、mysql服務器都需要安裝

4、yum install python-openstackclient -y
#安裝openstack客戶端,會生成openstack的相關命令;只安裝在node節點和controler節點

5、yum install openstack-selinux -y
#如果啟用SELinux。安裝 openstack-selinux 軟件包以自動管理OpenStack服務的安全策略,就算沒有啟用selinux也可以安裝;只安裝在node節點和controler節點

6、yum install python2-PyMySQL -y
#此包用於openstack的控制端連接mysql所需要的模塊,如果不安裝,則無法連接數據庫;此包只安裝在控制端

7、yum install python-memcached -y
#安裝python連接memcached的模塊,只安裝在控制端;如果不安裝,則無法連接到memcached,無法連接到memcached,則賬號就無法登錄,因為賬號信息是寫入到memcache中的

准備mysql服務器

https://docs.openstack.org/install-guide/environment-sql-database-rdo.html #配置數據庫

1、hostnamectl set-hostname openstack-mysql.example.local

2、yum install centos-release-openstack-train.noarch -y 
#在openstack環境中,安裝數據庫及其他組件都需要使用openstack的官方源安裝,否則會出現版本不兼容;openstack官方源中的數據庫版本比centos的更新一些

3、yum install https://rdoproject.org/repos/rdo-release.rpm

4、yum install mariadb mariadb-server -y

5、vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 0.0.0.0         #指定監聽地址

default-storage-engine = innodb  
innodb_file_per_table = on
max_connections = 4096         #指定最大連接
collation-server = utf8_general_ci   #字符集
character-set-server = utf8 

6、systemctl start mariadb

7、systemctl enable mariadb

准備haproxy服務器

1、hostnamectl set-hostname openstack-ha1.example.local

2、yum install keepalived haproxy -y

3、vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_iptables     #centos必須添加此選項,否則會生成iptables規則,造成無法訪問
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 58
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.31.7.248 dev eth0 label eth0:0
    }
}

4、systemctl restart keepalived.service

5、systemctl enable keepalived.service

6、其余節點嘗試VIP是否能夠ping通:ping 172.31.7.248

7、vim /etc/haproxy/haproxy.cfg
listen openstack-mysql-3306
 mode tcp
 bind 172.31.7.248:3306
 server 172.31.7.103 172.31.7.103:3306 check inter 3s fall 3 rise 5

listen openstack-rabbitmq-5672
 mode tcp
 bind 172.31.7.248:5672
 server 172.31.7.103 172.31.7.103:5672 check inter 3s fall 3 rise 5

listen openstack-memcached-11211
 mode tcp
 bind 172.31.7.248:11211
 server 172.31.7.103 172.31.7.103:11211 check inter 3s fall 3 rise 5
 
8、systemctl restart haproxy.service

9、systemctl enable haproxy.service 

10、在控制端通過telnet命令,測試這幾個端口是否能夠訪問:telnet 172.31.7.248 5672

安裝rabbitmq

https://docs.openstack.org/install-guide/environment-messaging-rdo.html #centos幫助文檔

所有創建虛擬機的指令,控制端都會發送到rabbitmq,node節點監聽rabbitmq
rabbitmq可以與mysql在同一個機器

1、vim /etc/hosts     #rabbitmq需要識別主機名才能夠啟動,需要把主機名解析放到本地的hosts文件中
172.31.7.103 openstack-mysql.example.local openstack-mysql
#添加本機IP地址解析,並且必須是一個全稱主機名,一個是短主機名

2、yum install rabbitmq-server -y  
#必須安裝官方openstack源,這樣rabbitmq版本才會新一些,與其他組件才兼容

3、systemctl start rabbitmq-server.service  #監聽端口是5672

4、systemctl enable rabbitmq-server.service

5、rabbitmqctl add_user openstack openstack123
#創建一個openstack賬號,用於controler和node節點連接rabbitmq的認證

6、rabbitmqctl set_permissions openstack ".*" ".*" ".*"
#給openstack賬號正則配置,擁有讀寫權限

7、rabbitmq-plugins list
   rabbitmq-plugins enable rabbitmq_management  #開啟rabbitmq的web管理界面的插件,端口為15672
   
8、瀏覽器訪問 http://172.31.7.103:15672   #賬號名密碼都是guest   

安裝memcached

https://docs.openstack.org/install-guide/environment-memcached-rdo.html #centos參考文檔

安裝memcached是用於存儲session信息;服務身份驗證機制使用Memcached來緩存令牌
在登錄openstack的dashboard時,會產生一些session信息,這些session信息會存放到memcached中

1、yum install memcached -y

2、vim /etc/sysconfig/memcached
PORT="11211"      #監聽端口
USER="memcached"
MAXCONN="1024"
CACHESIZE="1024"  #指定memcached使用的內存大小
OPTIONS="-l 0.0.0.0,::1"  #指定監聽地址

3、systemctl start memcached.service

4、systemctl enable memcached.service 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM