要求 apt::source 作为依赖项会产生语法错误
Requiring apt::source as a dependency gives a syntax error
我需要在安装 docker 之前将 docker 源列表添加到 apt。
我有
apt::source { 'debian-jessie':
comment => 'This is the docker Debian jessie mirror',
location => 'http://apt.dockerproject.org/repo',
release => 'debian-jessie',
repos => 'main',
key_content => '58118E89F3A912897C070ADBF76221572C52609D',
key_server => 'keyserver.ubuntu.com',
ensure => present,
include_src => false,
include_deb => true,
}
哪个有用,还有
package {'docker-engine':
ensure => present,
before => Class['docker'],
}
仅在 运行 秒后才起作用(我使用 vagrant provision
,但这与问题无关)。
我想要的是通过指示 puppet 在 docker-engine
之前执行 apt::source
让整个事情在第一次配置时工作,但是在 require
中添加它不是一个有效的语法:
package {'docker-engine':
ensure => present,
before => Class['docker'],
require => [
Apt::source['debian-jessie'],
]
}
如何指定这个依赖?
文件的其余部分如下所示:
class { 'docker':
dns => '192.168.1.1',
manage_package => false,
use_upstream_package_source=> false,
# service_name => 'docker',
docker_command => 'docker',
package_name => 'docker-engine',
service_enable => true,
service_state => 'running',
extra_parameters => ["--insecure-registry=192.168.1.0/24"],
}
include 'docker'
file { "/lib/systemd/system/docker.service":
notify => Service["docker"],
ensure => present,
owner => "root",
group => "root",
mode => 0600,
source =>"puppet:///modules/docker/etc/systemd/system/docker.service"
} ~> Exec['systemctl-daemon-reload']
大写单词source
require => Apt::Source['debian-jessie']
The general form of a resource reference is:
- The resource type, capitalized (every segment must be capitalized if
the resource type includes a namespace separator [::])
- An opening square bracket
- The title of the resource as a string, or a comma-separated list of titles
- A closing square bracket
我需要在安装 docker 之前将 docker 源列表添加到 apt。
我有
apt::source { 'debian-jessie':
comment => 'This is the docker Debian jessie mirror',
location => 'http://apt.dockerproject.org/repo',
release => 'debian-jessie',
repos => 'main',
key_content => '58118E89F3A912897C070ADBF76221572C52609D',
key_server => 'keyserver.ubuntu.com',
ensure => present,
include_src => false,
include_deb => true,
}
哪个有用,还有
package {'docker-engine':
ensure => present,
before => Class['docker'],
}
仅在 运行 秒后才起作用(我使用 vagrant provision
,但这与问题无关)。
我想要的是通过指示 puppet 在 docker-engine
之前执行 apt::source
让整个事情在第一次配置时工作,但是在 require
中添加它不是一个有效的语法:
package {'docker-engine':
ensure => present,
before => Class['docker'],
require => [
Apt::source['debian-jessie'],
]
}
如何指定这个依赖?
文件的其余部分如下所示:
class { 'docker':
dns => '192.168.1.1',
manage_package => false,
use_upstream_package_source=> false,
# service_name => 'docker',
docker_command => 'docker',
package_name => 'docker-engine',
service_enable => true,
service_state => 'running',
extra_parameters => ["--insecure-registry=192.168.1.0/24"],
}
include 'docker'
file { "/lib/systemd/system/docker.service":
notify => Service["docker"],
ensure => present,
owner => "root",
group => "root",
mode => 0600,
source =>"puppet:///modules/docker/etc/systemd/system/docker.service"
} ~> Exec['systemctl-daemon-reload']
大写单词source
require => Apt::Source['debian-jessie']
The general form of a resource reference is:
- The resource type, capitalized (every segment must be capitalized if the resource type includes a namespace separator [::])
- An opening square bracket
- The title of the resource as a string, or a comma-separated list of titles
- A closing square bracket