tripleO部署openstack搭建手册

本文详细介绍了如何利用tripleO在有限的硬件环境下部署openstack,包括控制节点、计算节点、块存储节点和对象存储节点的配置。通过在ESXI上安装Fedora作为种子节点,然后部署openstack服务,最终成功启动控制节点。

声明:

本博客欢迎转载,但请保留原作者信息!

作者:姜飞

团队:华为杭州OpenStack团队


最近在学习tripleo来部署openstack,那么tripleO是什么, 他的主要目标就是使用oepnstack来管理openstack,达到安装、维护、升级的目标。

那么,如何来使用tripleo来部署openstack呢。


tripleO部署openstack支持的几种角色:

controler : openstack的控制节点

computer : openstack的计算节点

Block-storage : opentack的块存储节点

Object-storage : openstack的对象存储节点


环境:

ps:由于物理环境所限,只有一台物理服务器,我就部署一个控制节点。

2285服务器一台 (被管理的物理服务器) 

ESXI 虚拟机 (种子节点,官方说法叫undercloud或者seed)

操作系统:Fedora 20 x86-64


安装步骤:

1、安装种子节点

2、部署种子节点

3、部署openstack节点


安装种子节点:

在ESXI上创建一个虚拟机,选择下载好的fedora的iso文件进行安装。


安装过程这里就不在描述,等系统安装完毕。


部署种子节点

使用root用户登录fedora系统,增加stack用户

useradd stack
passwd stack
echo "stack        ALL=(ALL)       NOPASSWD: ALL" > /etc/sudoers.d/stack
chmod 0440 /etc/sudoers.d/stack

然后使用stack用户重新登录fedora系统

sudo yum install -y http://rdo.fedorapeople.org/openstack-juno/rdo-release-juno.rpm
sudo yum -y install instack-underclou
cp /usr/share/instack-undercloud/instack.answers.sample ~/instack.answers   ##修改文件内容再执行下面一个步骤
instack-install-undercloud

在执行instack-install-undercloud命令之前需要~/instack.answers文件修改~/instack.answers的文件内容,主要是要修改LOCAL_INTERFACE 这个配置,其他的DHCP的一些配置,还有如果要使用自定义的密码的话,如果不设置,则会调用os-make-password 生成默认密码在 /root/tripleo-undercloud-passwords文件里。



 

这里修改LOCAL_INTERFACE为ens192,系统上第二个网口,这个网口作为DHCPserver的网口。

执行完instack-install-undercloud的话,会打印出来  instack-install-undercloud complete. 同时也可以查看日志文件:~/.instack/install-undercloud.log

到这里的话,环境上的种子节点的openstack的服务已经起来了。

至此,openstack的种子节点已经启动成功了。

部署openstack节点

首先需要准备部署openstack节点的相关镜像, 可以使用diskimage-build来制作,这里就直接使用fedora提供的几个镜像:

下载地址:https://fedorapeople.org/groups/repos/openstack-m/tripleo-images-rdo-icehouse/

下载好的镜像文件,拷贝到/home/stack目录下

使用stack用户重开一个shell窗口执行如下命令

command $(sudo cat /root/stackrc | xargs)
instack-prepare-for-overcloud


创建/home/stack/deploy-overcloudrc文件:



我只部署一个controller节点,所以COMPUTESCALE,BLOCKSTORAGESCALE,SWIFTSTORAGESCALE都为0 。

NeutronPublicInterface 这个网口要填跟刚才设置的ens192在一个网络里面,可以从ens192进行PXE

MACS就是NeutronPublicInterface 这个网卡的mac地址,如果有多个服务器,则以空格隔开。

PM_IPS  PM_USERS PM_PASSWORDS  是物理服务器的BMCIP、用户名和密码, 如果有多个服务器,则以空格隔开。


如果只有1个节点需要部署的话,需要修改如下文件:

sudo vi /usr/bin/instack-deploy-overcloud

for mac in $MACS; do
    if [ -n "${PM_IPS:-}" -a -n "${PM_USERS:-}" -a -n "${PM_PASSWORDS:-}" ]; then
        JSON=$(jq ".nodes=(.nodes + [{mac:[\"$mac\"], cpu:\"$CPU\", memory:\"$MEM\", disk:\"$DISK\", arch:\"$ARCH\", pm_user:\"$PM_USERS\", pm_addr:\"$PM_IPS\", pm_password:\"$PM_PASSWORDS\"}])" <<< $JSON)
    else
        JSON=$(jq ".nodes=(.nodes + [{mac:[\"$mac\"], cpu:\"$CPU\", memory:\"$MEM\", disk:\"$DISK\", arch:\"$ARCH\", pm_user:\"$USER\", pm_addr:\"ssh_host\", pm_password:\"ssh_key\"}])" <<< $JSON)
    fi
    count=$((count + 1))
done

将PMUSER[$COUNT] --》PMUSER 去掉Count。


开始部署openstack



这个地方会等待物理服务器PXE完成,部署完成。


等待物理单板PXE 重启:




物理单板已经PXEOK,进入OS  cloud-init



部署成功:


查看虚拟机状态,已经ACTIVE 。



heat-admin登录到物理机,查看物理机的control节点,可以正常工作。


物理机启动时,会调用cloud-init的进行用户数据的初始化,如果发生如下的错误:

1、cloud-init failed, Route info failed

2、/var/lib/heat-cfntools/cfn-userdata  Userdata empty or not executable: [Errno 8] Exec format error 



则执行service cloud-init restart  进行重新初始化。 因为os-refresh-config会不停的进行配置和服务的安装和部署,直到成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值