Juju 是一个支持多种云服务商(如 AWS、Azure、Google Cloud Platform、MAAS 和 LXD)的部署工具。本文将重点介绍如何使用 Juju 和 LXD 构建 OpenStack 测试环境。
安装 LXD# 安装 LXD 非常简单,只需运行以下命令:
1
sudo apt-install lxd
复制
如果找不到 lxd 包,请运行以下命令添加 PPA(Personal Package Archive),然后重新执行安装命令。
1
2
3
sudo apt-add-repository ppa:ubuntu-lxc/stable
sudo apt update
sudo apt dist-upgrade
复制
配置 LXD# 运行以下命令,按步骤配置 lxd 设置:
1
2
3
4
5
6
7
8
$ sudo lxd init
Do you want to configure a new storage pool ( yes/no) [ default = yes] ?
Name of the storage backend to use ( dir or zfs) [ default = dir] :
Would you like LXD to be available over the network ( yes/no) [ default = no] ?
Do you want to configure the LXD bridge ( yes/no) [ default = yes] ?
Warning: Stopping lxd.service, but it can still be activated by:
lxd.socket
LXD has been successfully configured.
复制
安装 juju# 运行以下命令安装 juju:
1
2
$ sudo apt install juju
...(省略:安装日志)...
复制
安装完成后,我们可以使用 LXD 启动一个新的控制器。这意味着 juju 会为管理服务创建一个新的 LXD 容器。
可以用以下命令创建名为 juju-controller 的控制器:
1
2
$ juju bootstrap localhost juju-controller
...(省略:引导日志)...
复制
此时可以看到有一个新的 LXD 容器正在运行。
1
2
$ lxc list
...(省略:容器列表)...
复制
运行 juju status
可以看到当前还没有任何服务在运行。
1
2
$ juju status
...(省略:状态输出)...
复制
部署 Minecraft 服务器# 现在我们可以部署 Minecraft 服务器了!
运行以下命令告诉 juju 你要部署它。命令会立即返回,但这并不意味着服务已经准备好。请用 juju status
查看进度。
1
2
$ juju status
...(省略:Minecraft 服务器部署进度)...
复制
从上面可以看到 juju 正在创建服务器。用 lxc list
命令也可以看到为 Minecraft 服务器创建的新容器。
1
2
$ lxc list
...(省略:容器列表)...
复制
过一会儿,部署完成,服务变为 active。
1
2
$ juju status
...(省略:服务变为 active 的输出)...
复制
现在你可以启动 Minecraft 客户端,连接 10.229.139.124 的 25565 端口,畅玩你的全新 Minecraft 服务器!
如果想删除它,只需运行以下命令。
与 Minecraft 服务器相关的所有服务和服务器都会被移除。
1
juju destroy-service minecraft
复制
你也可以销毁 juju 控制器以及它创建的所有服务/服务器。
最简单的一键销毁方法如下:
1
2
$ juju destroy-controller juju-controller --destroy-all-models
...(省略:销毁日志)...
复制
可以确认所有容器都已被移除。
1
2
$ lxc list
...(省略:空列表)...
复制
部署 OpenStack# 你可以用 Juju 部署更复杂的环境,比如 OpenStack。
1
2
$ juju deploy cs:bundle/openstack-base-55
...(省略:OpenStack bundle 部署日志)...
复制