IT技术互动交流平台

tripleO部署openstack搭建手册

来源:IT165收集  发布日期:2014-11-10 20:39:30

 

最近在学习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会不停的进行配置和服务的安装和部署,直到成功。


延伸阅读:

Tag标签: 手册  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规