Loading manifests/init.pp +27 −26 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ # Note that the name of the package in the official Debian repository is # "docker.io" to avoid conflicting with an existing package that already # has the name "docker". The name of the package from docker.com is # "docker-engine". # "docker-ce". # Default: true # https://apt.dockerproject.org/repo Loading @@ -20,7 +20,6 @@ class package_docker ( Enum['present', 'absent'] $ensure = 'present', Boolean $use_docker_repo = true, ){ if ($::osfamily == 'Debian') { if ($use_docker_repo) { Loading @@ -29,7 +28,7 @@ class package_docker ( if ($ensure == 'present') { package { 'docker.io': ensure => absent, before => Package['docker-engine'], before => Package['docker-ce'], } package { 'apt-transport-https': ensure => present, Loading @@ -40,38 +39,39 @@ class package_docker ( file {'/etc/apt/sources.list.d/docker.list': ensure => $ensure, content => template('package_docker/etc/apt/sources.list.d/docker.list.erb'), notify => Exec['dockerproject.org apt-key'], } # Install/un-install dockerproject.org's public GPG key $keyserver = 'hkp://p80.pool.sks-keyservers.net:80' $pubkey = '58118E89F3A912897C070ADBF76221572C52609D' $keyid = '2C52609D' if ($ensure == 'present') { $command = "apt-key adv --keyserver ${keyserver} --recv-keys ${pubkey}" } else { $command = "apt-key del ${keyid}" } exec { 'dockerproject.org apt-key': path => '/usr/bin:/bin', command => $command, refreshonly => true, notify => Exec['aptitude update after dockerproject change'], file {'/usr/local/bin/docker_apt_key_add': ensure => $ensure, mode => '0755', group => 'root', owner => 'root', content => template('package_docker/usr/local/bin/docker_apt_key_add.erb'), before => Exec['docker_apt_key_add'], } # Do an aptitude update exec { 'aptitude update after dockerproject change': path => '/usr/bin', command => 'aptitude update', refreshonly => true, exec { 'docker_apt_key_add': path => '/bin:/usr/local/bin:/usr/bin:/usr/sbin', command => 'docker_apt_key_add', onlyif => 'test ! -f /etc/apt/trusted.gpg.d/docker.gpg', require => [ File['/usr/local/bin/docker_apt_key_add'], File['/etc/apt/sources.list.d/docker.list'], ], before => Package['docker-ce'], } } else { file { '/etc/apt/trusted.gpg.d/docker.gpg': ensure => absent, } } # Install or uninstall the package package { 'docker-engine': package { 'docker-ce': ensure => $ensure, require => Exec['aptitude update after dockerproject change'], } } else { # Using official Debian packages package { 'docker.io': Loading @@ -87,4 +87,5 @@ class package_docker ( } else { crit("do not yet know how to handle ${::osfamily}") } } Loading
manifests/init.pp +27 −26 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ # Note that the name of the package in the official Debian repository is # "docker.io" to avoid conflicting with an existing package that already # has the name "docker". The name of the package from docker.com is # "docker-engine". # "docker-ce". # Default: true # https://apt.dockerproject.org/repo Loading @@ -20,7 +20,6 @@ class package_docker ( Enum['present', 'absent'] $ensure = 'present', Boolean $use_docker_repo = true, ){ if ($::osfamily == 'Debian') { if ($use_docker_repo) { Loading @@ -29,7 +28,7 @@ class package_docker ( if ($ensure == 'present') { package { 'docker.io': ensure => absent, before => Package['docker-engine'], before => Package['docker-ce'], } package { 'apt-transport-https': ensure => present, Loading @@ -40,38 +39,39 @@ class package_docker ( file {'/etc/apt/sources.list.d/docker.list': ensure => $ensure, content => template('package_docker/etc/apt/sources.list.d/docker.list.erb'), notify => Exec['dockerproject.org apt-key'], } # Install/un-install dockerproject.org's public GPG key $keyserver = 'hkp://p80.pool.sks-keyservers.net:80' $pubkey = '58118E89F3A912897C070ADBF76221572C52609D' $keyid = '2C52609D' if ($ensure == 'present') { $command = "apt-key adv --keyserver ${keyserver} --recv-keys ${pubkey}" } else { $command = "apt-key del ${keyid}" } exec { 'dockerproject.org apt-key': path => '/usr/bin:/bin', command => $command, refreshonly => true, notify => Exec['aptitude update after dockerproject change'], file {'/usr/local/bin/docker_apt_key_add': ensure => $ensure, mode => '0755', group => 'root', owner => 'root', content => template('package_docker/usr/local/bin/docker_apt_key_add.erb'), before => Exec['docker_apt_key_add'], } # Do an aptitude update exec { 'aptitude update after dockerproject change': path => '/usr/bin', command => 'aptitude update', refreshonly => true, exec { 'docker_apt_key_add': path => '/bin:/usr/local/bin:/usr/bin:/usr/sbin', command => 'docker_apt_key_add', onlyif => 'test ! -f /etc/apt/trusted.gpg.d/docker.gpg', require => [ File['/usr/local/bin/docker_apt_key_add'], File['/etc/apt/sources.list.d/docker.list'], ], before => Package['docker-ce'], } } else { file { '/etc/apt/trusted.gpg.d/docker.gpg': ensure => absent, } } # Install or uninstall the package package { 'docker-engine': package { 'docker-ce': ensure => $ensure, require => Exec['aptitude update after dockerproject change'], } } else { # Using official Debian packages package { 'docker.io': Loading @@ -87,4 +87,5 @@ class package_docker ( } else { crit("do not yet know how to handle ${::osfamily}") } }