什么是openstack
OpenStack 是一系列开源工具(或开源项目)的组合,主要使用池化虚拟资源来构建和管理私有云及公共云。其中的六个项目主要负责处理核心云计算服务,包括计算、网络、存储、身份和镜像服务。还有另外十多个可选项目,用户可把它们捆绑打包,用来创建独特、可部署的云架构。
云计算模式
一、IaaS:基础设施即服务(个人比较习惯的):用户通过网络获取虚机、存储、网络,然后用户根据自己的需求操作获取的资源
二、PaaS:平台即服务:将软件研发平台作为一种服务, 如Eclipse/Java编程平台,服务商提供编程接口/运行平台等
三、SaaS:软件即服务 :将软件作为一种服务通过网络提供给用户,如web的电子邮件、HR系统、订单管理系统、客户关系系统等。用户无需购买软件,而是向提供商租用基于web的软件,来管理企业经营活动
OpenStack 中有哪些项目?
OpenStack 架构由大量开源项目组成。其中包含 6 个稳定可靠的核心服务,用于处理计算、网络、存储、身份和镜像; 同时,还为用户提供了十多种开发成熟度各异的可选服务。OpenStack 的 6 个核心服务主要担纲系统的基础架构,其余项目则负责管理控制面板、编排、裸机部署、信息传递、容器及统筹管理等操作。
Keystone: 认证所有 OpenStack 服务并对其进行授权。同时,它也是所有服务的端点目录。
Glance: 可存储和检索多个位置的虚拟机磁盘镜像。
Nova:是一个完整的 OpenStack 计算资源管理和访问工具,负责处理规划、创建和删除操作。
Neutron :能够连接其他 OpenStack 服务并连接网络。
Horizon:web管理界面
Swift: 是一种高度容错的对象存储服务
Cinder 通过自助服务 API 访问持久块存储。
openstack 安装
环境准备
主机名称 | IP地址 | 最小资源配置 |
---|---|---|
openstack | 192.168.1.10 | 2CPU,8G内存 |
nova01 | 192.168.1.11 | 2CPU,3G内存 |
nova02 | 192.168.1.12 | 2CPU,3G内存 |
repo | 192.168.1.250 | 2CPU,1G内存 |
上传 RHEL7-extras.iso、RHEL7OSP-10.iso 到功能服务器[repo]
功能服务器安装配置
时间源服务器
[[email protected] ~]# yum install -y chrony
[[email protected] ~]# vim /etc/chrony.conf
# 注释掉所有 server 开头的行,添加
server ntp.aliyun.com iburst
bindacqaddress 0.0.0.0
allow 0/0
local stratum 10
[[email protected] ~]# systemctl enable chronyd
[[email protected] ~]# systemctl restart chronyd
[[email protected] ~]# ss -ltun # 查看 123 端口是否被监听成功
网络yum源服务器
[[email protected] ~]# yum install -y vsftpd
[[email protected] ~]# systemctl enable --now vsftpd
[[email protected] ~]# mkdir -p /var/ftp/{extras,openstack}
[[email protected] ~]# cd /var/iso
[[email protected] ~]# mount -t iso9660 -o ro,loop RHEL7-extras.iso /var/ftp/extras
[[email protected] ~]# mount -t iso9660 -o ro,loop RHEL7OSP-10.iso /var/ftp/openstack
# 在openstack上验证
[[email protected] ~]# curl ftp://192.168.1.250/extras/
[[email protected] ~]# curl ftp://192.168.1.250/openstack/
openstack 实验架构图例
openstack系统环境安装配置
以下操作,openstack,nova01 都需要做
[[email protected] ~]# vim /etc/selinux/config
# 修改 SELINUX=disabled
[[email protected] ~]# yum -y remove firewalld-*
[[email protected] ~]# reboot
# 重启后验证
[[email protected] ~]# sestatus
SELinux status: disabled
[[email protected] ~]# rpm -qa |grep -i firewalld
[[email protected] ~]#
卸载 NetworkManager
[[email protected] ~]# systemctl stop NetworkManager
[[email protected] ~]# yum remove -y NetworkManager
[[email protected] ~]# systemctl enable --now network
网卡配置文件注解
- # Generated by dracut initrd # 注释
- DEVICE=“eth0” # 驱动名称,与ifconfig 看到的名称一致
- ONBOOT=“yes” # 开机启动
- NM_CONTROLLED=“no” # 不接受 NetworkManager 控制
- TYPE=“Ethernet” # 类型
- BOOTPROTO=“static” # 协议(dhcp|static|none)
- IPADDR=“192.168.1.10” # IP地址
- NETMASK=“255.255.255.0” # 子网掩码
- GATEWAY=“192.168.1.254” # 默认网关
Yum安装源配置
确认软件包总数是 10670
[[email protected] ~]# vim /etc/yum.repos.d/openstack.repo
[local_extras]
name=CentOS-$releasever - Extras
baseurl="ftp://192.168.1.250/extras"
enabled=1
gpgcheck=0
[local_openstack]
name=CentOS-$releasever - OpenStack
baseurl="ftp://192.168.1.250/openstack/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0
[local_openstack_devtools]
name=CentOS-$releasever - Openstack devtools
baseurl="ftp://192.168.1.250/openstack/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0
[[email protected] ~]# yum makecache
[[email protected] ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
CentOS-Base CentOS-7 - Base 9,911
local_extras CentOS-7 - Extras 76
local_openstack CentOS-7 - OpenStack 680
local_openstack_devtools CentOS-7 - Openstack devtools 3
repolist: 10,670
时间服务器配置
[[email protected] ~]# vim /etc/chrony.conf
# 注释掉所有 server 开头的行,添加
server 192.168.1.250 iburst
[[email protected] ~]# systemctl restart chronyd
[[email protected] ~]# chronyc sources -v # 验证配置 ^* 代表成功
主机名与DNS配置
[[email protected] ~]# vim /etc/hosts
192.168.1.10 openstack
192.168.1.11 nova01
192.168.1.12 nova02
192.168.1.250 repo
# 删除所有 search 开头的行
[[email protected] ~]# sed '/^search /d' -i /etc/resolv.conf
nova虚拟环境安装
nova01 安装
[[email protected] ~]# yum install -y qemu-kvm libvirt-daemon libvirt-daemon-driver-qemu libvirt-client python-setuptools
[[email protected] ~]# systemctl enable --now libvirtd
[[email protected] ~]# virsh version # 验证
packstack工具安装
只需要在 openstack 上安装即可
openstack安装
使用应答文件安装,只需要在 openstack 上安装即可
# 创建应答文件
[[email protected] ~]# packstack --gen-answer-file=answer.ini
# 修改应答文件
42: CONFIG_SWIFT_INSTALL=n //存储对象组件
45: CONFIG_CEILOMETER_INSTALL=n //计费模块
49: CONFIG_AODH_INSTALL=n //计费模块
53: CONFIG_GNOCCHI_INSTALL=n //计费模块
75: CONFIG_NTP_SERVERS=192.168.1.250 //时间服务器
98: CONFIG_COMPUTE_HOSTS=192.168.1.11 //计算节点IP
102: CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11 //网络节点IP
333: CONFIG_KEYSTONE_ADMIN_PW=a //管理员密码
840: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan //支持协议
910: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex //网桥设备
921: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 //出口网卡
1179: CONFIG_PROVISION_DEMO=n //演示模块
做快照!!!
做快照!!!
做快照!!!
安装过程大约 10 ~ 30 分钟不等
web页面登录
修改 apache 配置
[[email protected] ~]# vim /etc/httpd/conf.d/15-horizon_vhost.conf
# 在配置文件倒数第三行添加
WSGIApplicationGroup %{GLOBAL}
[[email protected] ~]# systemctl reload httpd
浏览器访问 http://192.168.1.10/
命令行登录openstack
[[email protected] ~]# openstack user list
Missing value auth-url required for auth plugin password
# 没有登录获取数据失败
[[email protected] ~]# source keystonerc_admin
[[email protected] ~(keystone_admin)]# openstack user list
+----------------------------------+---------+
| ID | Name |
+----------------------------------+---------+
| 0e5367062de6478a9fe2d0456cb5fddb | nova |
| 27191744bc6349f5b34822c083f7874e | admin |
| 803074aab6fe49a19b983d9fbb7322be | glance |
| cf35dd75778d4479965e2f39771956de | neutron |
| d5f4ffae68e54210a6bb29fba36acaaa | cinder |
+----------------------------------+---------+
# 登录以后获取数据成功
nova02 安装
openstack 实验架构图例
openstack系统环境安装配置
[[email protected] ~]# vim /etc/selinux/config
# 修改 SELINUX=disabled
[[email protected] ~]# yum -y remove firewalld-*
[[email protected] ~]# reboot
# 重启后验证
[[email protected] ~]# sestatus
SELinux status: disabled
[[email protected] ~]# rpm -qa |grep -i firewalld
[[email protected] ~]#
卸载 NetworkManager
[[email protected] ~]# systemctl stop NetworkManager
[[email protected] ~]# yum remove -y NetworkManager
[[email protected] ~]# systemctl enable --now network
网卡配置文件
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.1.12"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.254"
Yum安装源配置
确认软件包总数是 10670
[[email protected] ~]# vim /etc/yum.repos.d/openstack.repo
[local_extras]
name=CentOS-$releasever - Extras
baseurl="ftp://192.168.1.250/extras"
enabled=1
gpgcheck=0
[local_openstack]
name=CentOS-$releasever - OpenStack
baseurl="ftp://192.168.1.250/openstack/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0
[local_openstack_devtools]
name=CentOS-$releasever - Openstack devtools
baseurl="ftp://192.168.1.250/openstack/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0
[[email protected] ~]# yum makecache
[[email protected] ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
CentOS-Base CentOS-7 - Base 9,911
local_extras CentOS-7 - Extras 76
local_openstack CentOS-7 - OpenStack 680
local_openstack_devtools CentOS-7 - Openstack devtools 3
repolist: 10,670
时间服务器配置
[[email protected] ~]# vim /etc/chrony.conf
# 注释掉所有 server 开头的行,添加
server 192.168.1.250 iburst
[[email protected] ~]# systemctl restart chronyd
[[email protected] ~]# chronyc sources -v # 验证配置 ^* 代表成功
主机名与DNS配置
[[email protected] ~]# vim /etc/hosts
192.168.1.10 openstack
192.168.1.11 nova01
192.168.1.12 nova02
192.168.1.250 repo
# 删除所有 search 开头的行
[[email protected] ~]# sed '/^search /d' -i /etc/resolv.conf
nova虚拟环境安装
[[email protected] ~]# yum install -y qemu-kvm libvirt-daemon libvirt-daemon-driver-qemu libvirt-client python-setuptools
[[email protected] ~]# systemctl enable --now libvirtd
[[email protected] ~]# virsh version # 验证
nova02安装
在 openstack 上安装 nova02,修改第一次安装的配置文件,不能重新生成!!!
[[email protected] ~]# vim answer.ini
98: CONFIG_COMPUTE_HOSTS=192.168.1.12
102: CONFIG_NETWORK_HOSTS=192.168.1.12
安装过程大约 10 ~ 30 分钟不等
web页面登录
修改 apache 配置
[[email protected] ~]# vim /etc/httpd/conf.d/15-horizon_vhost.conf
# 在配置文件倒数第三行添加
WSGIApplicationGroup %{GLOBAL}
[[email protected] ~]# systemctl reload httpd
浏览器访问 http://192.168.1.10/
总结
Horizon 组件,提供web管理界面
Keystone 组件,提供集中的认证和授权
Nova 组件,计算节点创建管理云主机
Glance 组件,管理云主机镜像
Swift 组件,存储云使用的对象存储服务
Neutron 组件,管理云服务的内部、外部网络路由等
Cinder 组件,管理云主机的存储卷服务