ubuntu18.04下使用devstack安装openstack多节点的ussuri版本

请参考devstack官方文档《Multi-Node Lab》 安装多节点openstack。
但由于官方文档未考虑国内网络问题,基本无法安装成功,具体解决方法,请参考上一篇文档《ubuntu18.04下使用devstack安装openstack时常见问题》

另外,devstack官方文档指出,现在只支持ussuri版本(截至至2020.07.27日)的多节点安装,故只能使用ussuri版本的devstack安装ussuri版本的openstack,请注意。

具体安装步骤也请参考《Ubuntu18.04Lts下使用Devstack安装单节点Openstack最新版本》,在第6步、第9步和第10步有小区别,可以对照着看,对使用devstack安装openstack会更有心得。

需要的资源:
两台物理机或者虚拟机,分别配置未控制节点和nova计算节点。
都有双网卡。
内网网段:10.4.128.0/20
外网网段:192.168.42.0/24
浮动ip网段:192.168.42.128/25
本例子中,控制节点地址为192.168.42.11和10.42.128.11。计算节点地址为192.168.42.12和10.4.128.12

1 安装ubuntu18.04lts版本代号为bionic的服务器或者虚拟主机。具体方法请百度。

2 登录后,切换到root用户:

sudo su – root

3 更换ubuntu源为国内源,经过几次测试,最后采用的是清华源:

mv /etc/apt/sources.list /etc/apt/sources.list.bak
vim /etc/apt/sources.list

增加如下内容:

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

更新ubuntu18.04:

apt update -y && apt -y upgrade

4 设定时区:

dpkg-reconfigure tzdata

选择Asia -> 在选择Shanghai -> OK

同步时间命令:
#安装时间同步工具
sudo apt-get install ntpdate
#与网络服务器同步时间
sudo ntpdate cn.pool.ntp.org
#查看时间是否已经同步
date

5 pip更换为豆瓣源

mkdir .pip
vi .pip/pip.conf

增加如下内容:

[global]
index-url = http://pypi.douban.com/simple/
trusted-host = pypi.douban.com

6 下载devstack,这里目录为~,且下载的为ussuri版本 。官方文档说明,多节点只支持到ussuri,更新的v版本还不支持,尚在开发中。

git clone https://github.com/openstack-dev/devstack -b stable/ussuri

7 创建stack用户

devstack/tools/create-stack-user.sh

8 将devstack目录放在/opt/stack下,并设置权限

mv devstack /opt/stack
chown -R stack:stack /opt/stack/devstack
sudo chmod -R 777 /opt/stack
sudo echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

9 切换到stack用户,以后直到openstack安装成功前都在stack用户下,

sudo su - stack
mkdir ~/.ssh; chmod 700 ~/.ssh
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyYjfgyPazTvGpd8OaAvtU2utL8W6gWC4JdRS1J95GhNNfQd657yO6s1AH5KYQWktcE6FO/xNUC2reEXSGC7ezy+sGO1kj9Limv5vrvNHvF1+wts0Cmyx61D2nQw35/Qz8BvpdJANL7VwP/cFI/p3yhvx2lsnjFE3hN8xRB2LtLUopUSVdBwACOVUmH2G+2BWMJDjVINd2DPqRIA4Zhy09KJ3O1Joabr0XpQL0yt/I9x8BVHdAx6l9U0tMg9dj5+tAjZvMAFfye3PJcYwwsfJoFxC8w/SLtqlFX7Ehw++8RtvomvuipLdmWCy+T9hIkl+gHYE4cS3OIqXH7f49jdJf [email protected]" > ~/.ssh/authorized_keys

再次以stack身份建立.pip,并变更为豆瓣源

mkdir .pip
vi .pip/pip.conf

写入如下内容:

[global]
index-url = http://pypi.douban.com/simple/
trusted-host = pypi.douban.com

10 手动下载需要的资料。
切换到/files目录,手工下载 etcd,cirros,网络原因下载较慢,建议手动下载放入/opt/stack/devstack/files

cd opt/stack/devstack/files
wget -c https://github.com/coreos/etcd/releases/download/v3.3.12/etcd-v3.3.12-linux-amd64.tar.gz
wget -c http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
wget -c https://github.com/coreos/etcd/releases/download/v3.1.10/etcd-v3.1.10-linux-amd64.tar.gz
wget -c https://github.com/coreos/etcd/releases/download/v3.1.7/etcd-v3.1.7-linux-amd64.tar.gz
wget -c https://bootstrap.pypa.io/get-pip.py

用root用户下载openstack组件,包括horizon、glance、noVNC、swift、neutron、placement、tempest、cinder、keystone、nove、requirements等:

sudo su - root
git clone http://github.com/openstack/horizon.git -b stable/ussuri /home/stack/ussuri/horizon
git clone http://github.com/openstack/glance.git -b stable/ussuri /home/stack/ussuri/glance
git clone http://github.com/openstack/swift.git -b stable/ussuri /home/stack/ussuri/swift
git clone http://github.com/openstack/neutron.git -b stable/ussuri /home/stack/ussuri/neutron
git clone http://github.com/openstack/placement.git -b stable/ussuri /home/stack/ussuri/placement
git clone http://github.com/openstack/tempest.git  /home/stack/ussuri/temptest
git clone http://github.com/openstack/cinder.git -b stable/ussuri /home/stack/ussuri/cinder
git clone http://github.com/openstack/keystone.git -b stable/ussuri /home/stack/ussuri/keystone
git clone http://github.com/openstack/nova.git -b stable/ussuri /home/stack/ussuri/nova
git clone http://github.com/openstack/requirements.git -b stable/ussuri /home//stack/ussuri/requirements
git clone https://github.com/kanaka/noVNC.git -b stable/v1.0.0 /home/stack/ussuri/noVNC

将下载的资源拷贝到/opt/stack

cp -f  /home/stack/ussuri /opt/stack

由于权限问题。所以要再次赋予stack用户/opt/stack目录777权限:

chown -R stack:stack /opt/stack/devstack
sudo chmod -R 777 /opt/stack
sudo echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

11 切换回stack用户,进入devstack目录,创建local.conf配置文件:

sudo su - stack
cd /opt/stack/devstack
vi local.conf

首先配置集群控制器,写入以下内容:可以参照《ubuntu18.04下使用devstack安装openstack时常见问题解决方法。》中办法,按具体网络情况部署openstack源,本文是用的gitclone.com,但现在http://git.trystack.cn已经恢复,推荐。

[[local|localrc]]
#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"

#用gitclone.com吧,git clone https://gitclone.com/github.com/xxx/yyy.git 
GIT_BASE=https://gitclone.com/github.com
NOVNC_REPO=https://gitclone.com/github.com/kanaka/noVNC.git
SPICE_REPO=https://gitclone.com/github.com/git/spice/sice-html5.git

 #Credentials
 ##根据具体情况设置主机ip
HOST_IP=192.168.42.11
##根据实际情况设定内网ip
FIXED_RANGE=10.4.128.0/20
##根据实际情况设定浮动ip
FLOATING_RANGE=192.168.42.128/25
LOGFILE=/opt/stack/logs/stack.sh.log
ADMIN_PASSWORD=admin
DATABASE_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=admin

在多节点配置时,一般保留私有地址的前十个,在 local.sh中增加如下语句,
for i in seq 2 10; do /opt/stack/nova/bin/nova-manage fixed reserve 10.4.128.$i;
并在执行./stack.sh后执行

执行./stack.sh

nova计算节点配置:

[[local|localrc]]
#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"

#用gitclone.com吧,git clone https://gitclone.com/github.com/xxx/yyy.git 
GIT_BASE=https://gitclone.com/github.com
NOVNC_REPO=https://gitclone.com/github.com/kanaka/noVNC.git
SPICE_REPO=https://gitclone.com/github.com/git/spice/sice-html5.git

#Credentials
HOST_IP=192.168.42.12 # change this per compute node
FIXED_RANGE=10.4.128.0/20
FLOATING_RANGE=192.168.42.128/25
LOGFILE=/opt/stack/logs/stack.sh.log
ADMIN_PASSWORD=admin
DATABASE_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=admin
DATABASE_TYPE=mysql
SERVICE_HOST=192.168.42.11
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
GLANCE_HOSTPORT=$SERVICE_HOST:9292
ENABLED_SERVICES=n-cpu,q-agt,c-vol,placement-client
NOVA_VNC_ENABLED=True
NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_lite.html"
VNCSERVER_LISTEN=$HOST_IP
VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN

执行./stack.sh

注意,首先安装控制节点,再控制节点安装成功后,再安装nova计算节点,计算节点和控制节点之间要通讯正常。

12 从 Ocata 版本中开始,Nova 需要进行Cells v2部署。计算节点服务必须映射到单元格,然后才能使用。

堆叠每个计算节点后,验证它出现在输出中。计算服务以异步方式在单元格数据库中注册,因此这可能需要轮询。

nova service-list --binary nova-compute

一旦计算节点服务显示,从控制节点运行脚本,将计算主机映射到单个单元。

./tools/discover_hosts.sh

在主控制节点上运行的计算服务将在堆叠控制节点时自动发现,因此这只需要对子节点执行。

13 列出所有组件 引自:《最新devstack安装(ussuri)》
ll /etc/systemd/system/ | grep devstack | awk ‘{print $9}’
输出:
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

c-*是cinder,g-*是glance,n-*是nova,o-*是octavia,q-*是neutron

猜你喜欢

转载自blog.csdn.net/m0_49212388/article/details/107606727