Influx Vagrant Boxes

导航到

InfluxDB及其整体TICK Stack最令人赞叹的特点之一是其易用性。InfluxData为各种操作系统和架构提供下载,甚至还有官方的Docker镜像。但假设我只是想快速启动一个TICK Stack来测试一些东西,比如我正在构建的TICKscript或新的Telegraf插件(暗示未来的博客文章),那么Vagrant就是解决方案。对于那些从未使用过Vagrant的人来说,它是一个用于在单一工作流程中构建和管理虚拟机环境的一种工具。它由HashiCorp创建,更多关于它的信息可以在https://www.vagrantup.com上阅读。

为了启动一个Vagrant TICK Stack,您需要以下内容

  1. Vagrantfile
  2. 引导脚本
  3. 您想测试的任何文件,例如配置文件或您的新插件。

Vagrantfile

Vagrantfile 定义了我们 VM 的参数,如内存、挂载点、网络等。以下链接指向一个 Github 项目,可以完全在 Vagrant 上部署 TICK。虽然这篇博客文章不是 Vagrant 教程,但有一些需要注意的事项。我们使用 Centos7 作为 Vagrantbox 的操作系统。如果您喜欢,可以通过更改以下代码:将 config.vm.box = "centos/7" 改为 config.vm.box = "ubuntu/xenial64"。我们还为 VM 定义了一个私有网络:config.vm.network "private_network", ip: "192.168.70.101",以及一个共享/同步文件夹,这将允许我们从主机共享文件到 VM。在这种情况下,我们共享本地机器上的数据文件夹,该文件夹将挂载在 VM 上的 /vagrant。代码如下:config.vm.synced_folder "data/", "/vagrant", type: "virtualbox" 最后,我们分配了 4GB 的内存。这可以通过更改以下行进行修改:vb.memory = "4096"

引导脚本

我们的引导脚本只是一个 bash 脚本,用于安装 TICK Stack 并设置我们的环境。您需要更改的是要安装的 TICK Stack 版本。在文件顶部设置此值

TELEGRAF_VERSION=telegraf-1.3.5-1.x86_64.rpm
INFLUX_VERSION=influxdb-1.3.2.x86_64.rpm
CHRONO_VERSION=chronograf-1.3.6.1.x86_64.rpm
KAPACITOR_VERSION=kapacitor-1.3.1.x86_64.rpm

其余的脚本会为您下载、安装并启动每个组件。它还会将您可能在数据目录中可能有的任何配置文件移动到 /etc/[component]。这样,您可以使用自定义配置文件。以 Telegraf 为例,我们有以下内容

# Install Telegraf
wget -nv -O $TELEGRAF_VERSION https://dl.influxdata.com/telegraf/releases/$TELEGRAF_VERSION
yum localinstall -y $TELEGRAF_VERSION
if [ ! -f /vagrant/telegraf/telegraf.conf ]; then
    echo "Found telegraf.conf.  Installing."
	mv /vagrant/telegraf/telegraf.conf /etc/telegraf
fi
systemctl start telegraf

最后,我们还安装了 NodeJS。我经常使用 Node 快速开发我可能需要的其他工具,例如 Telegraf 流量生成器或 HTTPListener。如果您不喜欢 Node,请随意将其注释掉。

使用方法

一旦您将 Vagrantfile 和引导脚本调整为所需的方式,有两种方法可以启动您的 VM。第一种是简单地使用:$ vagrant up 第二种方法是使用项目中的包装脚本:$ ./up.sh 这将启动盒子并创建一个名为“initial”的 VM 初始快照。如果您在执行某些操作后想将 VM 重置为其初始状态,请使用:$ ./restore.sh 一旦 VM 启动,您就可以开始使用和测试您的 TICK Stack。Chronograf 应该已经运行,所以打开浏览器开始使用它,或者您可以使用:$ vagrant ssh 登录到 VM。

结论

如您所见,使用 Vagrant 在单个 VM 上启动完整的 TICK Stack 非常简单。我认为一旦开始使用,您会发现它对任何开发或测试目的都非常有用。本文中提到的所有脚本和文件都可以在 Github 上找到:https://github.com/dp1140a/InfluxSandbox

现在开始编码。