效果展示:
環境準備controller節點:
6GB
4H
60GB/30GB/30GB
compute節點
6GB
4H
60G/60G
admin節點(ceph admin管理節點)
2GB
4H
60GB/6GB
OpenStack簡介
OpenStack是一個開源的云平臺管理項目,可以用于構建公有云或私有云平臺,提供了基礎設施及服務(Iaas)的解決方案,OpenStack是一個云操作系統,通過數據中心可控制計算、存儲、網絡等資源池,OpenStack覆蓋了網絡、虛擬化、操作系統、服務器等各個方面,通過OpenStack可以啟動、分配和管理虛擬機資源,所有的管理也都可以通過前端界面完成。
OpenStack核心組件Nova
計算管理服務,管理虛擬機實例的整個生命周期,負責虛擬機的創建、開機、關機、掛起、暫停、調整、遷移、重啟、銷毀,資源分配等操作,通過API對外提供服務,使用KeyStone來進行身份驗證,使用Horizon作為其管理接口,使用Glance提供其鏡像,這樣使得Nova可管理計算資源、網絡和認證。
Neutron
網絡管理服務,為多租戶環境下的每個租戶提供獨立的網絡環境,Neutron為整個OpenStack環境提供網絡支持,可以定義Network,Subent(子網),Router(路由),配置DHCP、DNS、負載均衡、L3服務,網絡支持GRE、VLAN等,并且支持眾多流行的網絡管理插件,如:OpenvSwitch。
Cinder
塊存儲服務,支持不同的存儲后端,包括ceph,glusterfs等,它是存儲虛擬機以及虛擬機使用的數據的基礎,Cinder提供了塊存儲設備的訪問以及管理,對OpenStack主機,存儲以塊設備的形式出現,使用ISCSI,NFS,ceph或其他一些專門協議作為后端的連接;Cinder的接口指定了一系列的獨立的功能,包括創建卷、刪除卷、掛載卷等基本功能,還有一些高級功能如擴展卷、快照、從VM鏡像克隆等。
Swift
對象存儲服務,為OpenStack集群提供跨節點的分布式大規模對象存儲服務,它是通過RESTful接口來存儲和檢索非結構化的數據對象,它是一個高容錯可伸縮的存儲架構。對象存儲是將相應的數據存儲為二進制對象,而不是文件,一般通過一條指令就可以存儲或檢索到整個對象。
Keystone
認證管理服務,是OpenStack框架中負責管理身份驗證、服務規則和服務令牌功能的模塊,管理Domains、Project、Users、Groups、Roles,使用MySQL作為統一的數據庫,用戶訪問資源需要驗證用戶的身份和權限,服務執行操作也需要進行權限檢測,這些都需要通過Keystone來處理,OpenStack服務通過Keystone來注冊其Endpoint(服務訪問的URL),任何服務之間的相互調用,都需要先經過KeyStone的身份驗證,獲得到目標的Endpoint,然后再調用。
Glance
鏡像管理服務,提供了對虛擬機部署的時候所能提供的鏡像的管理,包括鏡像的查找,注冊,檢索,導入,格式,以及制作相應的模板,它支持多種虛擬機鏡像格式,有創建鏡像、刪除鏡像、編輯鏡像基本信息的功能,Glance提供RESTfulAPI可以查詢虛擬機鏡像的metadata以及獲取鏡像,Glance可以將鏡像保存到多種后端存儲上,比如簡單的文件存儲或者對象存儲。
Horizon
用戶交互界面,是OpenStack中各種服務的Web管理門戶,用于簡化用戶對服務的操作,例如:啟動實例、分配IP地址、配置訪問控制等
安裝CentOS
1
|
yum install vim |
在cmd窗口輸入以下命令查看網段
1
|
ipconfig /all |
修改網卡信息
1
|
vim /etc/sysconfig/network-scripts/ifcfg-ens33 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE= yes IPV4_FAILURE_FATAL=no IPV6INIT= yes IPV6_AUTOCONF= yes IPV6_DEFROUTE= yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 DEVICE=ens33 ONBOOT= yes IPADDR=192.168.12.18 PREFIX=24 GATEWAY=192.168.12.1 DNS1=192.168.111.2 |
重啟網絡服務
1
|
service network restart |
controller
ens33 192.168.12.18(提供浮動IP,出網地址)
ens34 192.168.12.118(內網之間通信)
compute
ens33 192.168.12.140(提供浮動IP,出網地址)
ens34 192.168.12.240(內網之間通信)
1
2
|
# 立即重啟 shutdown -r now |
初始化各節點
1
|
yum -y install wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel vim ncurses-devel autoconf automake zlib-devel python-devel epel-release lrzsz openssh-server |
關閉防火墻、networkmanager,iptables,selinux(各個節點操作)
1
2
|
systemctl stop firewalld && systemctl disable firewalld && systemctl stop NetworkManager && systemctl disable NetworkManager systemctl stop iptables && systemctl disable iptables |
修改selinux
1
|
vim /etc/sysconfig/selinux |
1
|
SELINUX=disabled |
修改hosts
1
|
vim /etc/hosts |
1
2
|
192.168.12.118 controller 192.168.12.240 compute |
修改主機名
1
|
hostnamectl set - hostname controller |
1
|
hostnamectl set - hostname compute |
時間同步
1
|
ntpdate cn.pool.ntp.org |
配置無密碼登陸,各個節點操作
1
2
3
4
|
ssh -keygen -t rsa #一直回車即可 ssh -copy- id -i . ssh /id_rsa .pub controller ssh -copy- id -i . ssh /id_rsa .pub computer |
用xftp上傳openstack離線軟件包到root目錄下(在controller和compute節點操作)
在root下創建一個目錄openstack,然后把軟件包解壓到這個目錄下
1
|
mkdir /root/openstack && cd /root/openstack && tar zxvf /root/openstack_N . tar .gz |
把openstack目錄整體移動到/下(controller和computer節點操作)
1
|
mv openstack / |
重新配置yum源(controller和computer節點都操作)
1
2
3
4
5
|
cd /etc/yum .repos.d/ mkdir bak mv CentOS-* bak/ mv epel* bak/ cp bak /CentOS-Base .repo ./ |
生成一個新的openstack的yum源
1
2
3
4
5
6
|
cat <<EOF > /etc/yum .repos.d /openstack .repo [openstack] enable =1 gpgcheck=0 baseurl= file : ///openstack EOF |
清緩存
1
|
yum makecache |
openstack應答文件安裝(controller節點操作)
1
|
yum install centos-release-openstack-newton -y |
1
2
3
4
|
cd /etc/yum .repos.d mv *.repo bak/ cp bak /openstack .repo ./ cp bak /CentOS-Base .repo ./ |
清緩存
1
|
yum makecache |
1
2
3
|
yum install openstack-packstack -y cd /root packstack --gen-answer- file =openstack.txt |
結束后會生成一個應答文件openstack.txt
修改openstack.txt文件
修改的內容如下
1
2
3
4
5
6
7
8
9
10
11
|
CONFIG_DEFAULT_PASSWORD=123456 CONFIG_SWIFT_INSTALL=n CONFIG_NAGIOS_INSTALL=n CONFIG_CINDER_VOLUMES_SIZE=10G CONFIG_PROVISION_DEMO=n CONFIG_LBAAS_INSTALL=y CONFIG_NEUTRON_FWAAS=y CONFIG_NEUTRON_VPNAAS=y CONFIG_CONTROLLER_HOST=192.168.12.118 CONFIG_COMPUTE_HOSTS=192.168.12.240 CONFIG_NETWORK_HOSTS=192.168.12.240 |
基于應答文件安裝組件
1
|
packstack --answer- file =openstack.txt |
安裝過程需要查看iptables狀態,在controller和computer節點
1
|
systemctl status iptables |
如果發現iptables處于active狀態,需要停掉
1
|
systemctl stop iptables |
看到如下說明安裝成功
1
|
Installation completed successfully |
啟動rabbitmq的管理界面(controller節點操作)
1
|
rabbitmq-plugins enable rabbitmq_management |
在瀏覽器訪問
192.168.124.200:15672
賬號:guest
密碼:guest
登陸openstack的dashboad界面
在瀏覽器輸入:
192.168.124.200
賬號:admin
密碼:
獲取密碼
1
2
|
cd /root cat keystonerc_admin |
KeyStone配置優化
在controller節點操作
修改keystone.conf
1
|
vim /etc/keystone/keystone .conf |
在default字段下面添加如下一行
1
|
memcache_servers = 192.168.12.118:11211 |
重啟服務
1
|
systemctl restart httpd |
如果OpenStack可以正常訪問則代表配置成功
glance配置優化
修改glance-api.conf
1
|
vim /etc/glance/glance-api .conf |
在頂部添加
1
|
memcache_servers = 192.168.12.118:11211 |
修改glance-registry.conf
1
|
vim /etc/glance/glance-registry .conf |
在頂部添加
1
|
memcache_servers = 192.168.12.118:11211 |
重啟服務
1
2
|
systemctl restart openstack-glance-api systemctl restart openstack-glance-registry |
nova配置優化在controller節點修改
修改nova.conf
1
|
vim /etc/nova/nova .conf |
在頂部添加memcahce緩存
1
|
memcache_servers = 192.168.12.118:11211 |
原來是只有地址,沒有http協議,需要加上http協議
1
|
api_servers=http: //192 .168.12.118:9292 |
在第一行[DEFAULT]下面加上這行
1
|
|
原來的ip改成這個,并且打開注釋
1
|
my_ip=192.168.12.118 |
原來是0.0.0.0,現在改成這個
1
|
vncserver_listen=192.168.12.118 |
原來是主機名,改成這個主機IP
1
|
vncserver_proxyclient_address=192.168.12.118 |
上面修改好之后重新啟動服務
1
2
3
|
systemctl restart openstack-nova-api.service \ openstack-nova-consoleauth.service openstack-nova-scheduler.service \ openstack-nova-conductor.s:ervice openstack-nova-novncproxy.service |
在compute節點修改
修改配置文件nova.conf
1
|
vim /etc/nova/nova .conf |
在第一行[DEFAULT]字段加如下一行
1
|
memcache_servers=192.168.12.118:11211 |
這行注釋打開,變成這個ip地址
1
|
|
這行注釋打開,ip變成這個主機ip
1
|
api_servers=http: //192 .168.12.118:9292 |
這行注釋打開,變成這個ip地址
1
|
my_ip=192.168.12.240 |
這行注釋打開,變成這個ip地址
1
|
vncserver_proxyclient_address=192.168.12.240 |
這行注釋打開,變成這個ip地址
1
|
novncproxy_base_url=http: //192 .168.12.118:6080 /vnc_auto .html |
這行注釋打開
1
|
virt_type=qemu |
上面修好好了之后重新啟動服務
1
2
|
systemctl enable libvirtd.service openstack-nova-compute.service systemctl restart libvirtd.service openstack-nova-compute.service |
查看日志,沒有報錯
1
|
cat /var/log/nova/nova-compute .log |
啟動之后在controller節點查看日志
1
|
cat /var/log/nova/nova-api .log |
如果沒有報錯即可
Neutron配置優化
在controller節點操作
修改配置文件neutron.conf
1
|
vim /etc/neutron/neutron .conf |
新增加一行
1
|
memcache_servers = 192.168.12.118:11211 |
找到transport_url,新增加一行(消息隊列rabbit地址在controller節點上)
1
|
|
找到lock_path,改為絕對路徑
1
|
lock_path= /var/lib/neutron/tmp |
修改ml2_conf.ini
1
|
vim /etc/neutron/plugins/ml2/ml2_conf .ini |
修改vni_ranges
1
|
vni_ranges = 10:10000 |
上面兩個文件修改好之后重啟服務
1
|
systemctl restart neutron-server |
新開一個端口查看日志,沒有報錯即可
1
|
tail -f /var/log/neutron/server .log |
在compute節點操作
創建一個橋接網卡,橋接到能夠訪問外網的那個網卡,也就是ens33
1
2
3
4
|
cd /etc/sysconfig/network-scripts mkdir bak cp ifcfg-ens33 bak/ vim ifcfg-br-ex |
復制內容到ifcfg-br-ex
1
2
3
4
5
6
7
8
9
10
11
12
|
DEVICE=br-ex BOOTPROTO=static ONBOOT= yes TYPE=OVSBridge DEVICETYPE=ovs USERCTL= yes PEERDNS= yes IPV6INIT=no IPADDR=192.168.12.140 NETMASK=255.255.255.0 DNS1=192.168.111.2 GATEWAY=192.168.12.1 |
1
|
vim ifcfg-ens33 |
將原有內容刪除,替換為如下內容
1
2
3
4
5
6
7
8
|
# 設備名 DEVICE=ens33 # 是否開啟開機自啟 ONBOOT= yes TYPE=OVSPort DEVICETYPE=ovs #橋接到哪個網卡上 OVS_BRIDGE=br-ex |
重啟網卡
1
|
service network restart |
修改配置文件neutron.conf
1
|
vim /etc/neutron/neutron .conf |
新增加一行配置文件
1
|
|
新增加一行
1
|
memcached_servers=192.168.12.118:11211 |
原來的路徑變成這個
1
|
lock_path= /var/lib/neutron/tmp |
修改三層的和浮動ip相關的配置文件
1
|
cd /etc/neutron |
1
|
vim l3_agent.ini |
這行注釋去掉
1
|
ovs_integration_bridge = br-int |
這行注釋打開
1
|
availability_zone = nova |
修改配置文件metadata_agent.ini
1
|
vim metadata_agent.ini |
這行注釋打開
1
|
nova_metadata_port = 8775 |
這行注釋打開
1
|
nova_metadata_protocol = http |
新增加一行
1
|
memcached_servers=192.168.12.118:11211 |
修改配置文件dhcp_agent.ini
1
|
vim dhcp_agent.ini |
這行注釋打開
1
|
ovs_integration_bridge = br-int |
原來是False,需要變成True
1
|
enable_metadata_network = True |
新增加一行
1
|
dhcp_domain = test .localdomain |
原來的注釋打開,修改成外網的dns地址
1
|
dnsmasq_dns_servers = 192.168.111.2 |
這行注釋打開
1
|
dnsmasq_lease_max = 16777216 |
這行注釋打開
1
|
availability_zone = nova |
上面修改好了之后重啟服務
1
|
systemctl restart neutron-ovs-cleanup.service neutron-openvswitch-agent.service neutron-metering-agent.service neutron-metadata-agent.service neutron-lbaasv2-agent.service neutron-l3-agent.service neutron-dhcp-agent.service |
到此這篇關于基于CentOS的OpenStack環境部署(OpenStack安裝)的文章就介紹到這了,更多相關CentOS的OpenStack環境部署內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/qq_29537269/article/details/107568489