MAAS和JUJU都是Ubuntu的产品,最近想玩一下OpenStack,看看能不能部署一个实验环境,虽然最后发现MAAS和JUJU的模式很好用但是官方文档给的东西实在是太少了,这里我就不列具体的安装步骤,我只能说安装步骤确实太简单了,完全不需要很复杂的文档。
MAAS和JUJU配合conjure-up的组合确实非常强大,真的非常强大,跟我知道KVM可以热迁移的震撼差不多吧。
接下来,简单的说明一下部署生产环境(部署到一台机器的测试环境算是比较简单,下文会简单提到一下)
这个是非常重要的内容,老规矩,先不解释,先上图,后面有空会慢慢解释。
Internet: 主要是在安装的时候使用,只要可以访问外网即可。
Internet ISP: 一个或者多个固定外网IP,将来作为OpenStack的浮动IP使用。
首先找一台机器部署一个Ubuntu Server并部署MAAS,但是这个方式我不是很建议,哈哈哈哈哈。
我建议虚拟化处理,所以我是这样做的,首先给 物理服务器0
安装 OpenSuse42.3,选用BtrFS文件系统作为根文件系统,主要是因为BtrFS+Snapper(Yast中有Snapper的管理功能),在文字模式下实在强大到爆炸,简直就是给操作系统安装了一个GIT系统,可以随时回退和比较snapshot之间的不同点。方便安装过程出错以后秒恢复到之前的状态。
然后可以在Yast中安装虚拟化组件或者使用zypper安装,具体细节就不说了,总之就是让系统可以部署虚拟机。
这样就可以使用 普通电脑
安装Virtual Machine Manage去远程管理 物理服务器0
上的虚拟机。
实际上物理服务器0上面有两个虚拟服务器,一个是 MAAS-Controller
配置稍微低一点,另外一个是的角色和 物理服务器1
到 物理服务器3
是一样的。
MAAS-Controller
只需要链接一个网络,生成虚拟机的时候注意一下。
然后在 MAAS-Controller
安装MAAS, 安装的方法,请见 MAAS 的官方文档。
Router
关闭DHCP,因为MAAS会提供DHCP服务,所以不需要LAN上的DHCP 服务。其他不用说,物理服务器0
的IP也要配置正确,这个应该不用解释。小坑太多,建议把MAAS文档的FAQ多看一下,例如,安装MAAS的时候神奇的发现改一下IP地址以后居然不能正常使用了,有两个方法解决,第一,看MAAS的FAQ;第二,把IP配置好了再安装MAAS,参看上面注意的第1条。
大坑实在是太大了,安装文档没有讲网络的拓扑结构,不知道怎么玩,怎么入手。官方文档说需要两个专用交换机,我就是依据这个推断出了网络拓扑结构。如果大家踊跃回复,我就再写一篇文章说明一下。
继续说坑。
首先是DNS,后来发现在用conjure-up的时候,DNS非常关键,必须有正确的正反查功能。首先确保MAAS的DNS配置正确(参看注意里面的第2和第3条),我的方法是找一台正常的电脑(比如取个名字叫TESTC),接上网线,首先看MAAS的DHCP服务是否正常,这里顺便说一句,强烈推荐使用MAAS的DHCP功能,不用的话,PXE,部署都是麻烦。
如果一切顺利在MAAS的DNS页面下会找到TESTC,然后在普通电脑ping一下TESTC的主机名或者nslookup一下也行。如果不能查询到ip,那么请回去各种检查,例如,Setting下面的DNS配置部分,或者Subnet下的DNS Server配置等等。
怎么样算是DNS配置正常呢?
虽然说的有点乱,但是基本是这个道理。请注意,有时候你可能需要加上域名,MAAS默认的域名是maas,也就是说可能是你要去 nslookup TESTC.maas 就可以看到结果,有问题这里也会有提示,解决掉就可以了。
为什么说DNS是大坑呢,因为,我在部署过程中遇到的大多数问题都是DNS造成的。
请解决DNS的问题!
如果网络配置没有问题,基本上安装是没有问题的。
各位,OpenStack需要一点基础知识,必须要多看一下。另外OpenStack实际上是一个非常不错学习项目,OpenStack用了很多很先进的方法,值得一学。
MAAS是什么呢?刚开始看神乎其神,后来看完以后发现秀逗了,MAAS就是一个无人值守的部署工具,部署啥?部署操作系统,可以部署各种linux系统,不过为了避免麻烦,我直接用了Ubuntu Server版本。
JUJU是什么呢?JUJU是编排工具,我X,有没有这么复杂啊,在我看来,JUJU也是无人值守的部署工具,部署啥?部署OpenStack,OpenStack还是很复杂的,各种服务太多,配置也不少,所以JUJU来帮你。
Conjure-Up是什么呢?不管你信不信,这货也是无人值守的部署工具,部署啥?部署JUJU+OpenStack,看上去复杂,其实挺简单的,Conjure-UP会帮安装JUJU控制器啊,节点这些东西,同时提供了一个牛气轰轰的界面让你去编排服务,然后,Conjure-UP就帮你部署完了一切,请注意是一切,一切。
刚开始我没有搞明白这里面的关系,那是相当被动,后来明白以后,其实事情算是比较简单的,也就搞明白为什么Ubuntu把文档写的那么简单,因为,确实简单,没啥好说的。
这算是个小坑,刚开始,我以为是Bug,后来发现不是,因为在招安(Commissioning)的过程中,有这个选项就是允许进入SSH并阻止重启,所以应该是MAAS故意而为之。其实MAAS在招安完成以后是会自动关机的,但是我用的是服务器,服务器都有个IPMI的东西,所以这东西发现关机,以为是发生了天大的故障,于是给重启了,不停的重启,所以其实只要把IPMI配置好就行了,我这里服务器是 Intel AMT,配置好了就啥事儿没有了,做一个安静的美男子。
之前说过JUJU是个编排服务,其编排的内容就是OpenStack的服务,这玩意儿好用。
怎么管理JUJU呢?在conjure-up的控制器上,执行juju gui,就可以看到登录地址和密码。Web登录以后看到openstack-dashboad服务,看一下主机名或者IP地址,剩下的请自行补脑OpenStack,我这里记录三个关键字,horizon,admin,openstack,好了你猜吧。
这个东西算是个一个超级超级超级大坑,单独列出来讲一下,Ubuntu的JUJU和MAAS都没有把需要的网络结构将清楚,我觉得可能是因为JUJU和MAAS没有什么具体的要求吧,主要还是看OpenStack对网络拓扑结构的要求。
这个地方需要脑补,上图是我实际安装成功的网络拓扑结构,给大家参考。
有很多东西没有截图,说的比较模糊,请各位原谅。想到什么再补充吧
另外我还莫名其妙的写了一句:
删除了ComputeCapabilitiesFilter
我也不知道为啥,忘记了。
看到有零星网友回复期待下一集,确实不是很热烈,所以,很抱歉~~只说坑,不写教程了,如果有什么问题可以私信我,尽量为大家解答~谢谢