第一次OpenStack之旅

今天开始,研究OpenStack,开始IAAS层的探索!!

云:通过管理框架来灵活使用通用硬件设备的计算方式,可以说是拥有了资源“云”。
OpenStack:从一个更高的角度来说,你可以认为OpenStack之于数据中心,就像操作系统之于服务器,都带来了相同水平的运行效率。
租户:是资源的配额限制集合,被虚拟机用来在逻辑上与不同租户互相隔离。

以下使用Icehouse版本的OpenStack
https://www.manning.com/books/openstack-in-action

OpenStack是什么

OpenStack官方网站这样描述这个框架:创建私有云和公有云的开源软件;OpenStack软件是一个大规模云操作系统;
主要组件有:
这里写图片描述

通过 DevStack 来体验 OpenStack

DevStack是一个快速部署OpenStack的工具。DevStack可以让你与一个小规模(更大规模部署的代表)的OpenStack
交互。
准备工作:需要一台运行可支持的Linux发行版本的物理服务器或者虚拟服务器。

1. 搭建服务器:

最好是用一台全新安装Linux的服务器来进行DevStack的部署,本次实验建议使用Ubuntu 16.04(TLS),如果条件允许,建议使用物理硬件来部署,尽管在虚拟环境中“嵌套”运行OpenStack也是可行的,但运行在这个嵌套的OpenStack环境里的虚拟机会非常慢。
设置IP地址:
vi /etc/network/interfaces

auto eth0
iface eth0 inet static
address 192.168.8.100    
netmask 255.255.255.0
gateway 192.168.8.2
dns-nameserver 119.29.29.29

关闭防火墙:sudo ufw disable
查看防火墙:sudo ufw status
安装SSH服务:

sudo apt-get install openssh-server

更改源:
sudo vim /etc/apt/sources.list
阿里源:

deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

更新源:
sudo apt-get update

更改pip镜像源:

# 更改pip镜像源
echo "---> update pip mirrors ..."
mkdir ~/.pip
echo """
[global]
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple/
""" >> ~/.pip/pip.conf

2. 准备服务器环境

DevStack将会安装和配置整套OpenStack。部署OpenStack框架的过程称为Stacking。
现在应该通过普通用户加 sudo 权限操作,而不是通过 root 用户,在下面的例子中使用 sysop 作为有 sudo 特权的普通用户。更新源

sudo apt-get -y update

DevStack 不是通过 Linux 发行版提供的包管理系统,而是直接通过 OpenStack 在线软件仓库
获取 OpenStack 组件。Git,用来从 OpenStack 软件仓库获取源代码。

leo@master:~$ sudo apt-get install git

3. 准备 DevStack

下载最新的DevStack代码,如下:

leo@master:~$ sudo git clone http://git.trystack.cn/openstack-dev/devstack.git /opt/devstack/

下一步是为 OpenStack 设置正确的目录权限和创建一个新的服务账号(所有服务都在该账号
下运行),这一过程将会创建 stack 用户并设置所有 DevStack 文件从属于这个用户。

# 进入 devstack 目录
leo@master:~$ cd /opt/devstack
# 使 create-stack-user.sh工具可执行
leo@master:/opt/devstack$ sudo  chmod u+x tools/create-stack-user.sh
# 创建 stack 用户
leo@master:/opt/devstack$ sudo tools/create-stack-user.sh
Creating a group called stack
Creating a user called stack
Giving stack user passwordless sudo privileges
# 使 stack 用户拥有目录中的所有文件
leo@master:/opt/devstack$ sudo chown -R stack:stack /opt/devstack/

目录已经设置好正确的权限,新用户也已经创建好了。下一步是切换到刚创建的 stack 账户,
创建 DevStack 的配置文件,然后就可以以这个配置文件 stack(部署)了。

4. 执行 DevStack

DevStack 被设计用来部署和测试 OpenStack 组件,因此有多种可行的配置方式。DevStack
是通过维护 local.conf 文件中的配置参数来进行控制的。现在必须在 devstack 目录下创建一个名为 local.conf 的配置文件。
1、切换到stack用户执行下面的操作:

leo@master:/opt/devstack$ sudo -i -u stack
stack@master:~$ cd /opt/devstack
stack@master:/opt/devstack$ 

2、使用 Vim 编辑、创建 local.conf

stack@master:/opt/devstack$  vim local.conf
[[local|localrc]]
ADMIN_PASSWORD=devstack
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

HOST_IP=172.181.141.11

# Define images to be automatically downloaded during the DevStack built process.
#DOWNLOAD_DEFAULT_IMAGES=False
#IMAGE_URLS=http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git

#CINDER CONFIG
VOLUME_BACKING_FILE_SIZE=10240M

#GENERAL CONFIG
API_RATE_LIMIT=False

# Output
LOGFILE=/opt/stack/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=False
SCREEN_LOGDIR=/opt/stack/logs

执行安装命令:

./stack.sh

遇到的坑:

  • pip版本问题
    安装过程中会把pip降到pip 9.0.3办吧,而最新版本是10.0.0,后面因为版本问题报错,查看脚本发现在:
    /opt/devstack/tools/cap-pip.txt 中,定义的pip办吧是pip!=8,<10修改为pip!=8,<11后,可以安装最新pip,排除错误。升级pip命令:pip install -U pip setuptools wheel
  • pip安装问题
    安装过程中遇到pip安装失败,可以手动安装,
    例如:
    sudo pip install cryptography===2.2.2
    sudo pip install Babel===2.6.0
    sudo pip install numpy===1.14.5
    或者直接:
    sudo pip install -r requirements.txt

  • ETCD错误
    https://github.com/coreos/etcd/releases/download/v3.2.17/etcd-v3.2.17-linux-amd64.tar.gz
    手动下载并安装ETCD版本为:etcd-v3.2.17-linux-amd64.tar.gz,放到/opt/devstack/files中,再次运行即可。

  • 版本错误
    经过测试,很多组建的版本有错误,遇到版本错误可以自行修改文件/opt/stack/requirements/upper-constraints.txt

  • 自己下载源代码
git clone git://git.openstack.org/openstack/neutron.git /opt/stack/neutron --branch master

git clone git://git.openstack.org/openstack/nova.git /opt/stack/nova --branch master

git clone git://git.openstack.org/openstack/horizon.git /opt/stack/horizon --branch master
  • 终极大法
    遇到错误,手动安装依赖包,然后重新执行:
    ./unstack.sh
    ./clear.sh
    ./stack.sh
    多次执行,必将成功!
    成功后贴图:
=========================
DevStack Component Timing
 (times are in seconds)  
=========================
run_process           27
test_with_retry        4
apt-get-update        14
pip_install          580
osc                  265
wait_for_service      30
dbsync                30
apt-get               61
-------------------------
Unaccounted time     1231
=========================
Total runtime        2242



This is your host IP address: 127.18.141.11
This is your host IPv6 address: ::1
Horizon is now available at http://127.18.141.11/dashboard
Keystone is serving at http://127.18.141.11/identity/
The default users are: admin and demo
The password: devstack

WARNING: 
Using lib/neutron-legacy is deprecated, and it will be removed in the future


Services are running under systemd unit files.
For more information see: 
https://docs.openstack.org/devstack/latest/systemd.html

DevStack Version: rocky
Change: ea2aff96ffa8ec95d029a20e052648cfe6de3a03 Merge "Ensure passwordless ssh with stack between nodes" 2018-06-09 05:28:07 +0000
OS Version: Ubuntu 16.04 xenial

登陆页面

登陆后页面

5、测试devstack
测试包含两个测试套件:DevStack exercises 和 OpenStack Tempest,执行下面的命令进行测试:
./exercise.sh
https://blog.csdn.net/u011521019/article/details/51114681

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值