前言
Openstack是一个云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。Openstack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人将 Openstack作为基础设施即服务资源的通用前端。Openstack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。
本文希望通过提供必要的指导信息,帮助大家利用 Openstack前端来设置及管理自己的公共云或私有云。实践案例包括树莓派开发板组装、操作系统安装、软件下载更新以及虚拟化模块的搭建。通过实验,大家对于树莓派开发板的组成结构有一定的了解,掌握操作系统安装和 Linux 环境下的基本操作和命令。
一、树莓派组装和环境搭建
1.将树莓派组装到机盒中。
2.从网上下载镜像包,推荐使用 Ubuntu 18.04(Bionic)。下载地址:https://ubuntu.com/download/raspberry-pi
从中选择用于第四代树莓派的 64 位操作系统。
3.根据自己的笔记本电脑系统,下载安装相应的镜像烧制软件:balenaEtcher(https://www.balena.io/etcher/
)。
4.将树莓派的 TF 卡通过 USB 等转接设备插入笔记本中。 通过软件,选择步骤 3 中所下载的镜像,然后选择 TF卡所对应的磁盘驱动器,最后点击“烧制”按钮,等待一段时间后,即可完成系统烧制。流程如下图所示。
5.ssh连接树莓派,连接后提示修改密码,修改新的密码。
6.更新密码之后,再次使用相同的SSH命令登录,输入新密码之后,即可远程登入树莓派,操作其命令行。
通过vi编辑文件etc/cloud/cloud.cfg
,注意需要root权限,即sudo vi /etc/cloud/cloud.cfg
,将该文件中preserve_hostname: false
修改为 preserve_hostname: true
7.利用命令sudo vi /etc/hostname
修改主机名文件,将主机名由ubuntu修改为其他名字。
8.利用命令 sudo vi /etc/hosts
将本机地址 localhost 改为所需主机名127.0.0.1 xxx
,通过命令sudo reboot
,重启树莓派,使得主机名生效。
二、单节点安装配置步骤
1.创建“stack”用户组,命令:groupadd stack
2.创建“stack”用户,并将该账户的根目录设置为opt/stack
,命令:
useradd -g stack -s /bin/bash -d /opt/stack -m stack
3.修改根目录权限,命令:
chown -R stack:stack /opt/stack
4.赋予stack账号以root权限
a) 赋予配置文件以写权限:
chmod u+w /etc/sudoers
在这里插入图片描述
b) 修改该配置文件:sudo vi /etc/sudoers
c) 找到其中一行,root ALL=(ALL) ALL,
在其下面添加
stack ALL=(ALL) NOPASSWD: ALL
5.将配置文件的权限改回无写权限:sudo chmod u-w /etc/sudoers
配置完后,系统内应多了一个stack账户。通过sudo su - stack
(切换到stack),sudo su – ubuntu
(切换到ubuntu), sudo su –
(切换到root)等命令,即可完成在不同账户间的切换。
6.修改ubuntu软件包下载(通过apt-get
)的源。具体操作为
a) 备份默认的下载源:
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
b) 新建下载源:sudo vi /etc/apt/sources.list
c) 写入清华源(仅当底层为ARM架构CPU时采用该配置):
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/
bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/
bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/
bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/
bionic-security main restricted universe multiverse
d) 执行sudo apt update
更新源
e) 执行sudo apt dist-upgrade -y
更新软件
f) 下载安装pip(python的包管理工具,用于下载安装各种python
的插件和第三方库):
sudo apt install python-pip -y
8.修改python的pip源。在stack账号根目录下新建文件夹和文件:
a) 新建目录:mkdir ~/.pip
这里,~表示当前账号的根目录
b) 创建文件pip配置文件:vi ~/.pip/pip.conf
c) 在配置文件中加入清华源。
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
在/root/目录下做同样的操作。
9.安装KVM等虚拟化模块
下载安装cpu-checker:
sudo apt install cpu-checker -y
2) 运行命令sudo kvm-ok
。如果返回结果中包含“KVM acceleration can be used”
,说明KVM可用。
3) 安装KVM、QEMU及所依赖的包:
sudo apt install qemu qemu-kvm libvirt-daemon-system libvirt-bin bridge-utils
sudo apt install qemu qemu-kvm virt-manager qemu-efi ovmf -y
4) 启动虚拟化相关服务:
sudo service libvirtd start
sudo update-rc.d libvirtd enable
5) 查看服务状态:service libvirtd status
如果返回显示为active
,则表示虚拟化服务安装运行成功,如下所示。
6) 通过命令sudo netplan apply
使配置生效。
7) 通过命令sudo networkctl status -a
和ifconfig可以查看所配置的桥接网卡br0的信息。两条命令的输出分别如下所示。
8)调整系统时间并同步
执行命令,sudo dpkg-reconfigure tzdata
,时区选择Aisa -> Shanghai -> OK
9) 安装时间同步工具:
sudo apt install ntpdate -y
10) 与网络服务器同步时间:
sudo ntpdate cn.pool.ntp.org
11) 查看时间是否已经同步:date
12)源代码下载
首先在Gitee中申请一个账号,登陆之后,在主页的右上角点击加号,选择“从GitHub/GitLab导入仓库”,复制该链接,将其填入上一步中所弹出的导入页面,如下所示:
复制该链接,将其填入上一步中所弹出的导入页面,如下所示,其余字段默认,是否开源选择公开,然后点击导入按钮即可。等待一段时间后,DevStack的源码即从GitHub导入到你账户名下的仓库中。
因而用git clone命令时可以更换新的国内链接,下载速度大幅提升。
git clone https://gitee.com/songhuii/devstack.git -b stable/ussuri
进入根目录下的DevStack目录,cd ~/devstack
。在该目录下新建配置文件,vi local.conf
。由于本指导书目标配置多节点的OpenStack集群,可以参照DevStack关于Multi-Node Lab的说明文档填写具体配置内容,链接: https://docs.openstack.org/devstack/ussuri/guides/multinode-lab.html
在controller主节点上,配置范例如下:
配置完成后,通过运行脚本(命令:./stack.sh
)即开始部署安装:
三、OpenStack集群搭建
1.选择一个树莓派作为controller节点,其余的作为compute节点,将各个节点通过交换机互联搭建,如下图所示,有白色保护套的为控制节点:
2.配置完成后,打开浏览器输入相应的地址(本例中为http://192.168.1.100
),可打开OpenStack 登陆界面。如上截图中所示,登录账户名为 admin 或者 demo,密码均为setYourPWD在local.conf
里配置的)
admin 用户登录后即可查看系统资源情况
四、云计算总结与思考
OpenStack是由 Rackspace和NASA共同开发的云计算平台,帮助服务商和企业内部实现类似于Amazon ec2和S3的云基础架构服务( Infrastructure as a Service),它的主要任务是给用户提供IaaS服务。尽管 OpenStack从诞生到现在已经变得日渐成熟,基本上已经能够满足云计算用户的大部分的需求。但随着云计算技术的发展,OpenStack必然也需要不断地完善。OpenStack已经逐渐成为市场上主流的一个云计算平台解决方案。云计算经过十几年的发展,当下已是一个云原生的时代。随着K8s、Docker等技术的配套升级,云计算会为用户力求提供最好的服务。OpenStack的定位是IaaS平台,主要适用于搭建私有云以及基于私有云的使用的场景。K8S的定位是PaaS平台,尤其适合微服务应用的部署。二者推动了信息技术架构深层次变革,IaaS、PaaS、SaaS、容器、微服务等模式与技术推陈出新,云原生技术不断向前发展,形成软件工程新业态。