Commit 823047e3 authored by Adam Lewenberg's avatar Adam Lewenberg
Browse files

add sudo cowbuilder file (take 3)

parent 42671382
Loading
Loading
Loading
Loading
+27 −26
Original line number Diff line number Diff line
@@ -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
@@ -20,7 +20,6 @@ class package_docker (
  Enum['present', 'absent'] $ensure          = 'present',
  Boolean                   $use_docker_repo = true,
){

  if ($::osfamily == 'Debian') {
    if ($use_docker_repo) {

@@ -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,
@@ -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':
@@ -87,4 +87,5 @@ class package_docker (
  } else {
    crit("do not yet know how to handle ${::osfamily}")
  }

}