首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Puppet(引擎) | Using Puppet (Engine)

请注意,这是社区提供的安装路径。唯一official安装使用乌本图安装路径。这个版本有时可能过时了。

所需

要使用本指南,您将需要从木偶实验室...

该模块目前也使用正式的PPA,因此只适用于Ubuntu。

安装

模块可在木偶锻造并可使用内置模块工具安装。

代码语言:javascript
复制
$ puppet module install garethr/docker

它也可以在GitHub如果你想下载源代码的话。

使用

该模块提供了一个用于安装Docker的傀儡类和两个用于管理映像和容器的定义类型。

安装

代码语言:javascript
复制
include 'docker'

图像

下一步可能是安装Docker映像。为此,我们有一个定义的类型,可以这样使用:

代码语言:javascript
复制
docker::image { 'ubuntu': }

这相当于运行:

代码语言:javascript
复制
$ docker pull ubuntu

请注意,只有当该名称的图像不存在时才会下载。这是下载一个大的二进制文件,所以在第一次运行可能需要一段时间。由于这个原因,这个定义关闭了EXEC类型的默认5分钟超时。请注意,您还可以删除不再需要的图像:

代码语言:javascript
复制
docker::image { 'ubuntu':
  ensure => 'absent',
}

集装箱

现在,您可以在由Docker管理的容器中运行命令。

代码语言:javascript
复制
docker::run { 'helloworld':
  image   => 'ubuntu',
  command => '/bin/sh -c "while true; do echo hello world; sleep 1; done"',
}

这相当于运行以下命令,但在upstart下:

代码语言:javascript
复制
$ docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

Run还包含一些可选参数:

代码语言:javascript
复制
docker::run { 'helloworld':
  image        => 'ubuntu',
  command      => '/bin/sh -c "while true; do echo hello world; sleep 1; done"',
  ports        => ['4444', '4555'],
  volumes      => ['/var/lib/couchdb', '/var/log'],
  volumes_from => '6446ea52fbc9',
  memory_limit => 10485760, # bytes
  username     => 'example',
  hostname     => 'example.com',
  env          => ['FOO=BAR', 'FOO2=BAR2'],
  dns          => ['8.8.8.8', '8.8.4.4'],
}

*ports,,,env,,,dns,和volumes属性可以用单个字符串设置,也可以像上面那样使用一个值数组来设置。

扫码关注腾讯云开发者

领取腾讯云代金券