效果展示:
环境准备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
|
transport_url=rabbit: //guest :guest@192.168.12.118
|
原来的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
|
transport_url=rabbit: //guest :guest@192.168.12.118
|
这行注释打开,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
|
transport_url = rabbit: //guest :guest@192.168.12.118
|
找到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
|
transport_url = rabbit: //guest :guest@192.168.12.118
|
新增加一行
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