介绍
CoreOS 是专注于使用 Docker 容器和服务发现快速旋转集群环境的 Linux 发行版. 如果您是 CoreOS 的新手,请查看此 Getting Started with CoreOS 教程系列。
然而,Docker 图像可以在 Docker 主机上占用相当多的磁盘空间. 基本图像大小可达数百 MB,自定义图像可轻松达到 1 GB. 如果您为您的应用程序发布了许多新的 Docker 图像,它们可以轻松存储在服务器存储中;如果不定期清除旧或未使用的图像,服务器可能会失去磁盘空间。
[CloudSlang] (http://www.cloudslang.io/# /)是一个开源的管弦乐解决方案,它使得使用工作流程的流程自动化变得容易,或者流为短. 一个流程包含任务列表和导航逻辑. 一个任务可以称为一个操作,它包含一个运行Python脚本或Java方法的动作,或者另一个流. CloudSlang语言允许您以文字,可再用的方式定义流量,您可以使用现有的内容(Docker,OpenStack,和公用事业)来管理您部署的应用程序,或者创建您自己的自定义流量.
在本教程中,我们将清理部署在CoreOS集群中的每个机器的Docker环境,使用CloudSlang. 我们将使用已经存在的内容,因此您不需要编辑任何CloudSlang文件。
前提条件
在你开始之前,你需要:
- Ubuntu 14.04 Droplet 有 [一个sudo 非root 用户] (https://andsky.com/tech/tutorials/initial-server-setup-with-ubuntu-14-04), 这将是你的 CloudSlang 服务器.
- [Java(版本7或后安装)] (https://andsky.com/tech/tutorials/how-to-install-java-on-ubuntu-with-apt-get) 在CloudSlang服务器上. 注意你不需要安装JDK,只有JRE.
- 由三台 CoreOS 机组组成。 尚未设置的,可以通过遵循此教程设置. .
第1步:安装unzip
在此步骤中,我们将在CloudSlang服务器上安装unzip
。
首先,确保包列表是最新的。
1sudo apt-get update
然后安装unzip。
1sudo apt-get install unzip
第2步:下载CloudSlang
在本节中,我们将下载CloudSlang CLI工具和可用的内容(预定义操作和流)。
首先,下载 CloudSlang CLI 档案。
1wget https://github.com/CloudSlang/cloud-slang/releases/download/cloudslang-0.7.29/cslang-cli-with-content.zip
解开档案。
1unzip cslang-cli-with-content.zip
这将创建一个cslang
目录. 如果你列出该目录的内容,
1ls ~/cslang
你会注意到其中三个目录:
- `python-lib',用于外部Python图书馆。
cslang',其中载有CloudSlang CLI文件。
cslang/bin'文件夹中有一个名为`cslang'的文件,用来启动CLI。 " cslang/lib " 包含申请的必要依赖性。- " 内容 " ,包含现成的CloudSlang内容。 我们将运行的流量位于
content/io/cloudslang/coreos',称为
croup_docker_images_维护.sl'。 这个流线在集群中的所有机器上延后并删除未使用的多克图像. .
第3步:添加私钥
CloudSlang 需要 SSH 密钥访问您的 CoreOS 集群. 在此步骤中,我们将通过在 CloudSlang 服务器上创建一个新的密钥对并将公共密钥添加到 CoreOS 集群中来添加。
首先,按照 [本教程] 的步骤 1 和 2 创建一个没有密钥的密钥对(https://andsky.com/tech/tutorials/how-to-set-up-ssh-keys--2)。
首先,在您的 CloudSlang 服务器上获取公共密钥。
1cat ~/.ssh/id_rsa.pub
您将看到一个长的输出,从ssh-rsa
开始,并以username@hostname
结束。
SSH 进入您的 CoreOS 服务器之一(默认用户名为),然后运行以下命令来添加您的公共密钥。
1echo "your_public_key" >> ~/.ssh/authorized_keys
您需要为您的 CoreOS 集群中的每个服务器完成此操作。
第4步:运行流量
在本节中,我们将运行流程并验证其行为。
为了运行流程,在CloudSlang服务器上,首先切换到‘/cslang/bin’目录。
1cd ~/cslang/cslang/bin/
运行名为cslang
的可执行程序以启动 CLI。
1./cslang
过了一会儿,你会看到CloudSlang的欢迎屏幕。
10.7.26-SNAPSHOT
2Welcome to CloudSlang. For assistance type help.
在 CLI 中输入以下命令,将your_coreos_server_ip
代替为群集中的 CoreOS 服务器之一的 IP 地址。
1custom_prefix(cslang>)
2run --f ../../content/io/cloudslang/coreos/cluster_docker_images_maintenance.sl --i coreos_host=your_coreos_server_ip,coreos_username=core,private_key_file=~/.ssh/id_rsa --cp ../../content/
运行
命令触发流程. --f’指定流程的路径.
--i’指定流程输入:CoreOS主机和用户名,以及相关的私人SSH密钥. `--cp'指定类路径,当流程取决于其他操作和流程。
流程逻辑首先从集群中获取机器的IP地址,然后在机器上迭代并清除未使用的图像. 首先,它获得所有图像,仅通过检查运行/停止容器来留下未使用的图像。
当流程运行时,CLI 会显示正在执行的任务名称.一旦流程完成,CLI 会输出一些有用的信息,例如流程输出和流程结果。
在我们的情况下,流结果将是SUCCESS(意味着未使用的Docker图像在集群中被清除)或 FAILURE(意味着出现了问题)。
如果一切顺利,你应该看到一个类似于此的输出:
1...
2
3Flow : cluster_docker_images_maintenance finished with result : SUCCESS
4Execution id: 101600001, duration: 0:02:06.180
如果您想要有关执行的更多信息,请查看由CLI在bin
文件夹中创建的execution.log
文件。
结论
现在,所有未使用的 Docker 图像都将在您的 CoreOS 集群中删除!
在本教程中,您已经看到如何在 Ubuntu 机器上运行 CloudSlang,以及如何使用 CloudSlang CLI 来触发流程。
_版权 2015 年 6 月 9 日, Hewlett-Packard Development Company, L.P. 经许可复制。