OpenStack(二)安装部署

一、主要组件

Horizon

  - 用于管理Openstack各种服务的、基于web的管理接口

  - 通过图形界面实现创建用户、管理网络、启动实例等操作

Keystone

  - 为其他服务提供认证和授权的集中身份管理服务

  - 也提供了集中的目录服务

  - 支持多种身份认证模式,如密码认证、令牌认证、以及AWS(亚马逊Web服务)登陆

  - 为用户和其他服务提供了SSO认证服务

Neutron

  - 一种软件定义网络服务

  - 用于创建网络、子网、路由器、管理浮动IP地址

  - 可以实现虚拟交换机、虚拟路由器

  - 可用于在项目中创建VPN

Cinder

  - 为虚拟机管理存储卷的服务

  - 为运行在Nova中的实例提供永久的块存储

  - 可以通过快照进行数据备份

  - 经常应用在实例存储环境中,如数据库文件

Glance

  - 扮演虚拟机镜像注册的角色

  - 允许用户为直接存储拷贝服务器镜像

  - 这些镜像可以用于新建虚拟机的模板

Nova

  - 在节点上用于管理虚拟机的服务

  - Nova是一个分布式的服务,能够与Keystone交互实现认证,与Glance交互实现镜像管理

  - Nova被设计成在标准硬件上能够进行水平扩展

  - 启动实例时,如果有则需要下载镜像

Swift

 本次不安装,swift主要是用来创建数据卷的

二、安装部署

1.虚拟机配置

镜像:CentOS7-1804.iso

链接:https://pan.baidu.com/s/1yBrcvFCOL13xLvfBdi08qg?pwd=vr6i 
提取码:vr6i

#使用VMware安装环境

#虚拟机网络可以使用桥接模式,能够访问互联网

#cpu开启虚拟化:虚拟机->设置->处理器->虚拟化引擎->勾选"虚拟化Intel VT-x/EPT或AMD-V/RVI(V)"

#修改网卡名参考:https://www.cnblogs.com/WEIWEI1095/p/17279451.html

openstack管理主机:2cpu、6G内存,50G硬盘;静态IP:192.168.0.100

NAME=eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.0.100
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
ONBOOT=yes
TYPE=Ethernet
DNS1=192.168.0.1
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes

nova01计算节点:2cpu、4G内存,100G硬盘;静态IP:192.168.0.101

NAME=eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.0.101
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
ONBOOT=yes
TYPE=Ethernet
DNS1=192.168.0.1
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes

nova02计算节点:2cpu、4G内存,100G硬盘;静态IP:192.168.0.102

NAME=eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.0.102
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
ONBOOT=yes
TYPE=Ethernet
DNS1=192.168.0.1
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes

2.配置DNS

vi /etc/resolv.conf

# Generated by NetworkManager
nameserver 114.114.114.114
#如果有search开头的行删除这行

3.本地解析

vi /etc/hosts

192.168.0.100 openstack
192.168.0.101 nova01
192.168.0.102 nova02

4.NTP

yum install -y chrony

vi /etc/chrony.conf

server ntp.tencent.com iburst  #修改为腾讯的NTP服务器

systemctl restart chronyd

systemctl enable chronyd

测试NTP时间同步是否成功:

chronyc sources -v

===============================================================================
^* 106.55.184.199                2   6    77     5  -9080us[  -14ms] +/-   67ms  #测试结果出现^*表示成功

5.修改主机名

openstack节点: vi /etc/hostname

openstack

nova01节点: vi /etc/hostname

nova01

nova02节点: vi /etc/hostname

nova02

配置完成后重新登录 

6.配置yum源

CentOS7-1804.iso  #系统软件

RHEL7-extras.iso  #提供python依赖软件包

RHEL7OSP-10.iso  #openstack软件包

链接:https://pan.baidu.com/s/1yBrcvFCOL13xLvfBdi08qg?pwd=vr6i 
提取码:vr6i

将镜像挂载后内容复制出来做yum源,再卸载:

mkdir -p /test/base

mkdir -p /test/extras

mkdir -p /test/openstack/

mount CentOS7-1804.iso /test/base/

mount  RHEL7-extras.iso /test/extras/

mount  RHEL7OSP-10.iso /test/openstack/

mkdir /iso

cp -r  /test/* /iso

umount /test/base/

umount /test/extras/

umount /test/openstack/

rm -rf /test

删除其他yum配置,配置新源:

cd /etc/yum.repos.d/

rm -rf *

vi openstack.repo

[CentOS7-Base]
name=CentOS7-Base
baseurl=file:///iso/base
enabled=1
gpgcheck=0

[RHEL7-Extras]
name=RHEL7-Extras
baseurl=file:///iso/extras
enabled=1
gpgcheck=0

[RHEL7-Package]
name=RHEL7-Package
baseurl=file:///iso/openstack/rhel-7-server-openstack-10-rpms
enabled=1
gpgcheck=0

[RHEL7-DevTools]
name=RHEL7-DevTools
baseurl=file:///iso/openstack/rhel-7-server-openstack-10-devtools-rpms
enabled=1
gpgcheck=0

yum repolist

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                            repo name                          status
CentOS7-Base                       CentOS7-Base                       9,911
RHEL7-DevTools                     RHEL7-DevTools                         3
RHEL7-Extras                       RHEL7-Extras                          76
RHEL7-Package                      RHEL7-Package                        680
repolist: 10,670

7.安装依赖包

yum install -y qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools

8.安装前检查

#是否卸载firewalld和NetworkManager,OpenStack会接管防火墙和网络的工作,会和这两个原生的服务冲突

卸载firewalld:

systemctl stop firewalld

systemctl disable firewalld

yum autoremove -y firewalld  #autoremove 可以将即使是不使用的依赖包也删除

rm -rf /etc/firewalld/

rm -rf /var/lib/firewalld/

rm -rf /var/log/firewalld/

卸载NetworkManager:

systemctl stop NetworkManager

systemctl disable NetworkManager

yum autoremove -y NetworkManager  #autoremove 可以将即使是不使用的依赖包也删除

rm -rf /etc/NetworkManager/

rm -rf /var/lib/NetworkManager/

rm -rf /var/log/NetworkManager/

检查是否卸载成功:

rpm -qa|grep -i firewalld 返回空

rpm -qa|grep -i networkmanager 返回空

#是否静态IP

ifcfg-eth0文件中BOOTPROTO=static

#主机名能够相互ping通

ping openstack

ping nova01

ping nova02

#检查yum源

yum repolist

4个源,10670个包

#依赖包是否安装

systemctl start libvirtd 无报错

#检查NTP是否可用

chronyc sources -v 返回结果中有^*

#检查/etc/resolv.conf不能有search开头的行

grep search /etc/resolv.conf 返回空

9.安装OpenStack(两节点模型)

openstack管理节点:

安装openstack-packstack

yum install -y openstack-packstack

使用packstack创建通用应答文件

packstack --gen-answer-file=answer.ini

修改应答文件

vi 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=ntp.tencent.com  #NTP时间服务器地址
98: CONFIG_COMPUTE_HOSTS=192.168.0.101  #在哪个IP上部署nova
102: CONFIG_NETWORK_HOSTS=192.168.0.100,192.168.0.101  #在哪个IP上部署neutron
330: CONFIG_KEYSTONE_ADMIN_USERNAME=admin  #管理员用户名
333: CONFIG_KEYSTONE_ADMIN_PW=000000  #管理员密码
840: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan  #支持多少种网络
910: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex  #能划分vlan的虚拟交换机 #物理机前缀头:虚拟交换机名字
921: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0  #虚拟交换机端口 #交换机名字:端口名字
1179: CONFIG_PROVISION_DEMO=n  #是否需要openstack提供的演示案例

根据应答文件安装

packstack --answer-file=answer.ini  #输入节点密码后预计执行20分钟,如果出错会自动回滚到最近一个成功的节点,根据报错解决问题即可

10.安装完成后各节点网络有哪些变化

新增一个交换机配置文件ifcfg-br-ex

IPADDR=192.168.0.100
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
ONBOOT=yes
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs  #设备类型,ovs表示交换机
OVSBOOTPROTO=static  #静态IP
TYPE=OVSBridge  #ovs交换机,Ethernet表示网卡

vi ifcfg-eth0

DEVICE=eth0
NAME=eth0
DEVICETYPE=ovs  #设备类型为ovs
TYPE=OVSPort  #表示eth0现在为交换机端口
OVS_BRIDGE=br-ex  #表示属于br-ex交换机的子端口
ONBOOT=yes
BOOTPROTO=none

ovs-vsctl show查看交换机信息

            ...
Bridge br-ex  #交换机br-ex
        Controller "tcp:127.0.0.1:6633"
            is_connected: true
        fail_mode: secure
        Port phy-br-ex
            Interface phy-br-ex
                type: patch
                options: {peer=int-br-ex}
        Port br-ex
            Interface br-ex
                type: internal
        Port "eth0"  #eth0是br-ex的一个port
            Interface "eth0"
            ...

11.Horizon配置

概述:

Horizon是一个用以管理、控制OpenStack服务的Web控制面板,也称之为Dashboard仪表盘

可以管理实例、镜像、创建密匙对,对实例添加卷、操作Swift容器等。除此之外,用户还可以在控制面板中使用终端(console)或VNC直接访问实例

基于python的django web框架进行开发

功能特点:

实例管理:创建、终止实例,查看终端日志,VNC连接,添加卷等

访问与安全管理:创建安全群组,管理密钥对,设置浮动IP等

偏好设定:对虚拟硬件模板可以进行不同偏好设定

镜像管理:编辑或删除镜像

用户管理:创建用户等

卷管理:创建卷和快照

对象存储处理:创建、删除容器和对象

bug修复:

默认可能无法打开horizon,添加一行解决

vi /etc/httpd/conf.d/15-horizon_vhost.conf

  ## Server aliases
  ServerAlias 192.168.0.100
  ServerAlias openstack
  ServerAlias localhost
  WSGIDaemonProcess apache group=apache processes=3 threads=10 user=apache
  WSGIProcessGroup apache
  WSGIApplicationGroup %{GLOBAL}  #添加这行
  WSGIScriptAlias /dashboard "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi"

systemctl reload httpd  #重载httpd配置文件

打开Horizon页面:

http://192.168.0.100/dashboard

用户名admin 密码000000

12.openstack命令

安装完成后会生成一个keystonerc_admin,导入这个环境变量就可以使用nova、glance等命令了

[root@openstack ~]# cat keystonerc_admin

unset OS_SERVICE_TOKEN
    export OS_USERNAME=admin
    export OS_PASSWORD=000000
    export OS_AUTH_URL=http://192.168.0.100:5000/v2.0
    export PS1='[\u@\h \W(keystone_admin)]\$ '
    
export OS_TENANT_NAME=admin
export OS_REGION_NAME=RegionOne

[root@openstack ~]# source keystonerc_admin

 

posted @   vorn  阅读(330)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示