不知道如何使用 puppet apt 模块
Can't figure out how to use puppet apt module
我正在尝试使用 puppet 为 debian box 提供 vagrant。我想使用 puppetlabs/apt 模块将 postgresql 存储库添加到源列表。但是,无论我尝试什么,我都会不断收到此错误:
==> default: Syntax error at '{'; expected '}' at /etc/puppet/modules/apt/manifests/init.pp:18 on node packer-debian-7
这是我的 default.pp 文件中的内容:
include 'apt'
class { 'apt': }
apt::source { 'pgdg':
location => 'http://apt.postgresql.org',
repos => 'main',
key => {
source => 'https://www.postgresql.org/media/keys/ACCC4CF8.asc'
},
}
有人能告诉我我做错了什么吗?我是木偶新手,一般来说 ruby。
肯定是 apt
实例化有问题。使用 class
(不推荐)或 include
(我推荐这种方法:explanation)。如果您使用 include
,请删除引号。
总而言之,更改:
include 'apt'
class { 'apt': }
至:
include apt
您遇到的问题是 puppetlabs/apt 的最新版本与安装在您的 base box 中的 puppet 版本不兼容。 apt-module 需要 puppet 版本 >= 3.0。您可以使用以下命令检查当前安装的 puppet 的版本:
puppet --version
此处描述了一个可行的解决方案:http://blog.doismellburning.co.uk/2013/01/19/upgrading-puppet-in-vagrant-boxes/。
我正在尝试使用 puppet 为 debian box 提供 vagrant。我想使用 puppetlabs/apt 模块将 postgresql 存储库添加到源列表。但是,无论我尝试什么,我都会不断收到此错误:
==> default: Syntax error at '{'; expected '}' at /etc/puppet/modules/apt/manifests/init.pp:18 on node packer-debian-7
这是我的 default.pp 文件中的内容:
include 'apt'
class { 'apt': }
apt::source { 'pgdg':
location => 'http://apt.postgresql.org',
repos => 'main',
key => {
source => 'https://www.postgresql.org/media/keys/ACCC4CF8.asc'
},
}
有人能告诉我我做错了什么吗?我是木偶新手,一般来说 ruby。
肯定是 apt
实例化有问题。使用 class
(不推荐)或 include
(我推荐这种方法:explanation)。如果您使用 include
,请删除引号。
总而言之,更改:
include 'apt'
class { 'apt': }
至:
include apt
您遇到的问题是 puppetlabs/apt 的最新版本与安装在您的 base box 中的 puppet 版本不兼容。 apt-module 需要 puppet 版本 >= 3.0。您可以使用以下命令检查当前安装的 puppet 的版本:
puppet --version
此处描述了一个可行的解决方案:http://blog.doismellburning.co.uk/2013/01/19/upgrading-puppet-in-vagrant-boxes/。