《云计算技术》实验一:OpenStack部署实验

/ 0评 / 0

在Linux环境下搭建OpenStack Training Labs

因为涉及到资源下载,为了减少不必要的网络麻烦,我选择在阿里云的服务器上进行实验。

系统选择Ubuntu 18.04 64位

1.下载并安装VirtualBox

使用XShell连接上服务器

使用指令安装

sudo apt-get install virtualbox

执行结果

root@iZ2zefyj16t9g8xtnw79vkZ:~# sudo apt-get install virtualbox
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package virtualbox
root@iZ2zefyj16t9g8xtnw79vkZ:~# 

看样子是找不到包,尝试更新一下源,使用指令:

sudo apt-get update

看样子系统已经默认使用了阿里云的源。

再尝试刚才的安装指令,还是不行,不过报错信息有点不一样。

root@iZ2zefyj16t9g8xtnw79vkZ:~# sudo apt-get install virtualbox
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package virtualbox is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'virtualbox' has no installation candidate
root@iZ2zefyj16t9g8xtnw79vkZ:~# 

还是没有找到包,百度了一下obsolete是淘汰的意思。

不死心,再用search找一下有没有virtualbox。

sudo apt search virtualbox

发现搜索出来的不全,而且没有想要的virtualbox。

看来应该是这个仓库里已经没有virtualbox了。

可以把Oracle VirtualBox 仓库添加到仓库列表中,但我觉得太麻烦了,所以决定用deb安装。

先上官网找到下载链接。

https://download.virtualbox.org/virtualbox/6.1.4/virtualbox-6.1_6.1.4-136177~Ubuntu~bionic_amd64.deb

使用wget指令下载

sudo wget https://download.virtualbox.org/virtualbox/6.1.4/virtualbox-6.1_6.1.4-136177~Ubuntu~bionic_amd64.deb

使用dpkg指令安装

sudo dpkg -i virtualbox-6.1_6.1.4-136177~Ubuntu~bionic_amd64.deb

又出现报错

dpkg: error processing package virtualbox-6.1 (--install):
 dependency problems - leaving unconfigured
Processing triggers for systemd (237-3ubuntu10.39) ...
Processing triggers for ureadahead (0.100.0-21) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for shared-mime-info (1.9-2) ...
Errors were encountered while processing:
 virtualbox-6.1

看到 dependency problems 应该是依赖出问题了,用apt-get指令修复一下。

sudo apt-get install -f

然后开始安装一大堆东西

终于安装成功,最后验证一下

sudo dpkg-query -l virtualbox

2.安装前准备

安装SSH、关闭防火墙

sudo apt-get install openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh
sudo systemctl stop ufw
sudo systemctl disable ufw

因为云服务器默认已经开启SSH了,所以只用关闭防火墙。

3.下载OpenStack Training Labs

https://docs.openstack.org/training_labs/ 找下载链接

下载master版本

链接是:http://tarballs.openstack.org/training-labs/dist/labs-master.tgz

sudo wget http://tarballs.openstack.org/training-labs/dist/labs-master.tgz

然后解压

sudo tar -xvf labs-master.tgz

为了避免openstack环境资源不足,修改配置文件labs/config/config.computer1

修改参数 SECOND_DISK_SIZE=51200 和 VM_MEM=10240 ,并添加参数 VM_CPUS=4

# Node VM configuration. Used by osbash/wbatch (host and guest).

# Port forwarding
# ssh access to compute1: 127.0.0.1:2232
VM_SSH_PORT=2232

# Assign network interfaces to networks
NET_IF_0=dhcp
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Mgmt network (elevate interface boot priority to 1; set when PXE booting)
NET_IF_1="static 10.0.0.31 1"
# Public network (select network, IP address configured manually)
NET_IF_2="manual 203.0.113.0"

#------------------------------------------------------------------------------
# Size of second disk in MB (/dev/sdb)
# Test volume is 1 GB; backing volume must be bigger
SECOND_DISK_SIZE=51200

#------------------------------------------------------------------------------
# http://docs.openstack.org/mitaka/install-guide-ubuntu/environment.html
#------------------------------------------------------------------------------
# Controller node is running many services.
# A default instance within compute uses 512 MB RAM. The install-guide
# demands 2048 MB of RAM, but 1024 MB is enough for one CirrOS instance.
VM_MEM=10240

# Override number of virtual CPUs (default is 1)
# To edit uncomment the line below
# VM_CPUS=1
VM_CPUS=4

安装python

sudo apt-get install python

4.运行 st.py 脚本

在labs目录下运行脚本

./st.py -b cluster
Please run this program as a regular user, not as root or with sudo. Aborting.

不能用root身份运行这个脚本,看来还得创建一个非root用户。

使用adduser指令创建用户

sudo adduser huangzong

然后使用su命令切换用户

su huangzong

运行脚本,又报错

huangzong@iZ2zefyj16t9g8xtnw79vkZ:/root/labs$ ./st.py -b cluster
Traceback (most recent call last):
  File "./st.py", line 19, in <module>
    import stacktrain.config.general as conf
  File "./stacktrain/config/general.py", line 129, in <module>
    cfg_localrc = CfgFileParser("localrc")
  File "./stacktrain/config/general.py", line 71, in __init__
    with open(self.file_path) as cfg:
IOError: [Errno 13] Permission denied: '/root/labs/config/localrc'

提示权限不足,我要崩溃了。

查阅了很多资料,尝试了很多方法,修改了labs目录权限,在sudoers里添加了用户权限。

最后的解决方法是,把整个labs目录复制到非root用户的家目录下,就可以执行脚本了。

应该是其它用户在root目录下会遇到权限问题,即使目录已设置777权限。

等待它下载ubuntu server的镜像,不过嫌下载慢,自己下载镜像,然后放进labs/img/目录中。

http://cdimage.ubuntu.com/releases/18.04/release/ubuntu-18.04.4-server-amd64.iso

用迅雷下载会快很多,然后用FTP传到服务器上。

上传也好慢,先去做几个俯卧撑活动一下。

重新执行脚本。

出现VBoxManage: error: VT-x is not available (VERR_VMX_NO_VMX)的问题,意思是不支持虚拟化,我才想到阿里云已经是经过一次虚拟化了,再套娃应该不行。

在阿里云社区查了一下,果然是阿里云ECS不支持二次虚拟化!

https://developer.aliyun.com/ask/247266

我吐了!

没办法,只好重回原点,在本机上做实验。

1.下载并安装VirtualBox

https://download.virtualbox.org/virtualbox/6.1.4/VirtualBox-6.1.4-136177-Win.exe

2.下载opesntack-labs

http://tarballs.openstack.org/training-labs/dist/labs-master.tgz

3.创建节点VM用于通信的host-only网络

修改 labs\osbash\wbatch\config.bat 中的 VBoxManage.exe 的路径。

打开powershell,在 labs\osbash\wbatch\ 下运行脚本

.\create_hostnet.bat

在VirtualBox的管理菜单的主机网络管理器验证是否成功

4.创建基础磁盘

先用文本编辑器打开create_base.bat,确认一下使用的是哪个版本的Ubuntu。

然后把提前下载好的镜像放到 labs\osbash\img\

命令行执行脚本create_base.bat

.\create_base.bat

按任意键继续

这里的脚本是通过输入键盘实现的,所以开始执行脚本后最好不要按键盘,特别是锁定虚拟机后按键盘。等待它到完成或者卡住。

我第一次执行手贱按了什么键,在黑底白字的开始安装界面卡住了。

然后删除虚拟机,再次执行脚本,在安装进度14%的地方(running preseed)等了好久,最后成功进入到输入账户密码的界面,然后powershell就没有反应了。

CTRL+C终止脚本,到 labs\osbash\log\ 里面看日志,没有找到error.log,但看到三个文件:

应该是已经执行了0,1,2号脚本

使用账号osbash,密码osbash登录到虚拟机,进入 /osbash/autostart/ 下依次执行未执行的脚本。

我从03号脚本开始执行





出现 E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)

有进程正在占用apt-get,使用指令清理一下

sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

//最好再更新一下
sudo apt-get update

再次执行03号脚本

查看02号脚本的日志

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Hit:1 http://security.ubuntu.com/ubuntu bionic-security InRelease
Get:2 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
Get:2 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
Get:2 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
Get:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Err:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
  Connection failed [IP: 91.189.88.152 80]
Get:5 http://archive.ubuntu.com/ubuntu bionic/main i386 Packages [1,007 kB]
Get:5 http://archive.ubuntu.com/ubuntu bionic/main i386 Packages [1,007 kB]
Get:6 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages [1,019 kB]
Ign:6 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages
Get:7 http://archive.ubuntu.com/ubuntu bionic/main Translation-en [516 kB]
Get:7 http://archive.ubuntu.com/ubuntu bionic/main Translation-en [516 kB]
Get:7 http://archive.ubuntu.com/ubuntu bionic/main Translation-en [516 kB]
Get:7 http://archive.ubuntu.com/ubuntu bionic/main Translation-en [516 kB]

02号脚本死活不能成功,应该是网络问题,但是挂了代理依旧下载不了。

崩溃了,我不玩了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注