Report abuse

class mycompany::aptrepo inherits apache2 {
   apache2::site {
      "packages":
         ensure  => "present",
         require => File["/etc/apache2/sites-available/packages"]
   }

   exec {
      "make_pkgconf_dir":
         command => "/bin/mkdir -p /var/packages/ubuntu/conf",
         unless  => "/usr/bin/test -e /var/packages/ubuntu/conf";
      "make_pkgoverride_dir":
         command => "/bin/mkdir -p /var/packages/ubuntu/override",
         unless  => "/usr/bin/test -e /var/packages/ubuntu/override";
      "touch_override_rules":
         command => "/usr/bin/touch /var/packages/ubuntu/override/override.hardy",
         require => Exec["make_pkgoverride_dir"],
         unless  => "/usr/bin/test -e /var/packages/ubuntu/override/override.hardy";
   }

   file {
      "/etc/apache2/sites-available/packages":
         ensure  => "present",
         group   => "root",
         mode    => "644",
         owner   => "root",
         require => Package["apache2"],
         source  => "puppet://$server/modules/mycompany/aptrepo/packages";
      "/etc/approx/approx.conf":
         ensure  => "present",
         group   => "root",
         mode    => "644",
         notify  => Service["approx"],
         owner   => "root",
         require => Package["approx"],
         source  => "puppet://$server/modules/mycompany/aptrepo/approx.conf";
      "/root/infrastructure.priv.gpg":
         ensure  => "present",
         group   => "root",
         mode    => "600",
         owner   => "root",
         source  => "puppet://$server/modules/mycompany/aptrepo/infrastructure.gpg";
      "/usr/local/bin/newr7debs.sh":
         ensure  => "present",
         group   => "root",
         mode    => "755",
         owner   => "root",
         source  => "puppet://$server/modules/mycompany/aptrepo/newr7debs.sh";
      "/var/packages/infrastructure.gpg":
         ensure  => "present",
         group   => "root",
         mode    => "644",
         owner   => "root",
         source  => "puppet://$server/modules/apt/infrastructure.gpg";
      "/var/packages/ubuntu/conf/distributions":
         ensure  => "present",
         group   => "root",
         mode    => "644",
         owner   => "root",
         require => Exec["make_pkgconf_dir"],
         source  => "puppet://$server/modules/mycompany/aptrepo/distributions";
      "/var/packages/ubuntu/conf/incoming":
         ensure  => "present",
         group   => "root",
         mode    => "644",
         owner   => "root",
         require => File["/var/packages/incoming"],
         source  => "puppet://$server/modules/mycompany/aptrepo/incoming";
      "/var/packages/incoming":
         ensure  => "directory",
         group   => "infrastructure",
         mode    => "770",
         owner   => "root",
         require => [ Exec["make_pkgconf_dir"], Group["infrastructure"] ];
      "/var/packages/ubuntu/conf/options":
         ensure  => "present",
         group   => "root",
         mode    => "644",
         owner   => "root",
         require => Exec["make_pkgconf_dir"],
         source  => "puppet://$server/modules/mycompany/aptrepo/options";
   }

   package {
      "approx":   ensure => "present";
      "reprepro": ensure => "present";
   }

   service {
      "approx":
         before  => Class["apt"],
         ensure  => "running",
         require => Package["approx"];
   }
}