这是LXD2.0系列介绍文章的第十一篇。LXD入门安装和配置您的第一个LXD容器资源控制图像管理LXD中的远程托管和容器迁移DockerLXD中的LXD实时迁移LXD和Juju简介首先很抱歉延迟。我花了很长时间才让一切正常工作。我第一次尝试使用devstack遇到了一些我必须修复的问题。然而,即便如此,我仍然无法让网络正常工作。我最终放弃了devstack,并尝试使用用户友好的Juju来部署一个完整的UbuntuOpenStack和“conjure-up”。它终于奏效了!下面介绍如何使用LXD容器而不是VM运行完整的OpenStack,并在LXD容器中运行所有这些容器(嵌套!)。要求这篇文章假设你有一个有效的LXD设置,提供容器网络访问,并且你有一个非常强大的CPU,大约50GB的容器空间和至少16GB的RAM。请记住,我们在这里运行的是一个成熟的OpenStack,它不是很轻量级!设置容器OpenStack由许多不同的组件组成,它们执行不同的操作。有些需要一些额外的权限,为了使设置更容易,我们将使用特权容器。我们将配置容器以支持嵌套,预加载所有需要的内核模块,并允许它访问/dev/mem(显然需要)。请注意,这意味着该容器禁用了LXD容器的大部分安全功能。然而,由OpenStack本身生成的容器将没有特权,并且可以正常使用LXD的安全功能。lxclaunchubuntu:16.04openstack-csecurity.privileged=true-csecurity.nesting=true-c"linux.kernel_modules=iptable_nat,ip6table_nat,ebtables,openvswitch"lxcconfigdeviceaddopenstackmemunix-charpath=/dev/memLXD有个小bug,会尝试loadalready主机上加载的内核模块。这已经在LXD2.5中修复,并将在LXD2.0.6中修复,但在此之前可以使用以下方法:lxcexecopenstack--ln-s/bin/true/usr/local/bin/modprobe我们需要添加几个PPA并安装conjure-up,这是我们用来安装OpenStack的部署工具。lxcexecopenstack--apt-add-repositoryppa:conjure-up/next-ylxcexecopenstack--apt-add-repositoryppa:juju/stable-ylxcexecopenstack--aptupdatelxcexecopenstack--aptdist-upgrade-ylxcexecopenstack--aptinstallconjure-up-y***一个step是在容器内部配置LXD网络。所有问题都选择默认,除了:Usedirstoragebackend(zfsisnotusedinnestedcontainers)DonotconfigureIPv6network(conjure-up/jujuisnotcompatiblewithit)lxcexecopenstack--lxdinit现在配置容器,现在我们部署OpenStack!使用conjure-up部署OpenStack如前所述,我们使用conjure-up部署OpenStack。这是一个很好的用户友好工具,用于与Juju交互以部署复杂的服务。首先:lxcexecopenstack--sudo-uubuntu-iconjure-up选择“OpenStackwithNovaLXD”选择“localhost”作为部署目标(使用LXD)点击“部署所有剩余应用程序”接下来,将部署OpenStack。整个过程可能需要一个多小时,具体取决于您运行的机器。您会看到所有服务都将分配一个容器,然后进行部署并最终互连。Conjure-Up部署OpenStack部署完成后,会出现安装完成的界面。它导入一些初始图像,设置SSH权限,配置网络***并显示面板的IP地址。访问面板并生成容器面板在容器中运行,因此您不能直接从浏览器访问它。最简单的方法是设置NAT规则:lxcexecopenstack--iptables-tnat-APREROUTING-ptcp--dport80-jDNAT--to
