2017-03-27 92 views
1

我试图通过木偶安装docker-ce,我有几个问题。通过木偶安装docker-ce

1:apt :: key会在事后自动做一个'apt-get update'吗?

2:如何使用apt:ppa模块添加docker-ce repository? 这是用做:

sudo add-apt-repository \ 
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ 
    $(lsb_release -cs) \ 
    stable" 

但我怎么使用apt :: PPA包括分配和释放?

这是整个木偶块:

class docker { 

    $prerequisites = ['apt-transport-https', 'ca-certificates', 'curl'] 
    package { $prerequisites: ensure => installed} 

    apt::key { 'docker-ce': 
    ensure => present, 
    id  => '9DC858229FC7DD38854AE2D88D81803C0EBFCD88', 
    options => 'https://download.docker.com/linux/ubuntu/gpg', 
    } 

    apt::ppa {''} 

    package {'docker-ce': ensure => installed} 
} 

编辑:

结束了使用的容易模块APT ::源,硬编码的版本,因为我知道我的所有的系统将运行它。

class docker { 
    include apt 

    $prerequisites = ['apt-transport-https', 'ca-certificates'] 
    package { $prerequisites: ensure => installed} -> 

    apt::key { 'docker-ce': 
    ensure => present, 
    id  => '9DC858229FC7DD38854AE2D88D81803C0EBFCD88', 
    options => 'https://download.docker.com/linux/ubuntu/gpg', 
    } -> 

    apt::source {'docker-ce': 
    location => 'https://download.docker.com/linux/ubuntu', 
    release => 'xenial' 
    } -> 

    exec { 'apt-get-update': 
    command => '/usr/bin/apt-get update' 
    } -> 

    package {'docker-ce': ensure => installed} 
} 
+0

有一个使用木偶安装搬运工[ “批准” 模块(https://forge.puppet.com/garethr/docker) 。可能首先值得尝试。如果没有,它是开源的,你可以在Github上看到[他们是如何做到的](https://github.com/garethr/garethr-docker/blob/master/manifests/install.pp)。 – R0MANARMY

+0

不看起来像安装docker-ce,但我会看他们是如何做的,看看我是否可以从中提取一些信息。谢谢@ R0MANARMY –

+0

它肯定会安装docker-ce。 –

回答

0

这里是我如何安装此:

apt::key { '9DC858229FC7DD38854AE2D88D81803C0EBFCD88': 
    source => 'https://download.docker.com/linux/ubuntu/gpg', 
    } -> 
    apt::source { 'docker-ce': 
    architecture => 'amd64', 
    location  => 'https://download.docker.com/linux/ubuntu', 
    release  => "${::lsbdistcodename} stable", 
    } -> 
    package { 'docker-ce': 
    ensure => 'latest', 
    require => Exec['apt_update'], 
    }