diff --git a/manifests/site.pp b/manifests/site.pp index 3c324082ce..5c2c3cf65a 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -393,3 +393,9 @@ node /^debuild(-\d+)?\.slave\.openstack\.org$/ { include openstack_jenkins_slave include cowbuilder } + +node /^packages\.openstack\.org$/ { + include openstack_jenkins_slave + + class { "apt_server": } +} diff --git a/modules/apt_server/files/distributions b/modules/apt_server/files/distributions new file mode 100644 index 0000000000..e0bbe9b04e --- /dev/null +++ b/modules/apt_server/files/distributions @@ -0,0 +1,48 @@ +Origin: OpenStack +Label: OpenStack +Codename: lucid +Architectures: i386 amd64 source +Components: main +Description: OpenStack APT Repository +SignWith: yes + +Origin: OpenStack +Label: OpenStack +Codename: maverick +Architectures: i386 amd64 source +Components: main +Description: OpenStack APT Repository +SignWith: yes + +Origin: OpenStack +Label: OpenStack +Codename: natty +Architectures: i386 amd64 source +Components: main +Description: OpenStack APT Repository +SignWith: yes + +Origin: OpenStack +Label: OpenStack +Codename: oneiric +Architectures: i386 amd64 source +Components: main +Description: OpenStack APT Repository +SignWith: yes + +Origin: OpenStack +Label: OpenStack +Codename: wheezy +Architectures: i386 amd64 source +Components: main +Description: OpenStack APT Repository +SignWith: yes + +Origin: OpenStack +Label: OpenStack +Codename: squeeze +Architectures: i386 amd64 source +Components: main +Description: OpenStack APT Repository +SignWith: yes + diff --git a/modules/apt_server/files/packages b/modules/apt_server/files/packages new file mode 100644 index 0000000000..f8e5bbfe1d --- /dev/null +++ b/modules/apt_server/files/packages @@ -0,0 +1,6 @@ +server { + listen 80; + server_name packages.openstack.org; + root /srv/packages; + autoindex on; +} diff --git a/modules/apt_server/manifests/init.pp b/modules/apt_server/manifests/init.pp new file mode 100644 index 0000000000..aa72e1e7fd --- /dev/null +++ b/modules/apt_server/manifests/init.pp @@ -0,0 +1,63 @@ +class apt_server { + + $packages = ["reprepro", + "nginx"] + + package { $packages: ensure => "latest" } + + file { "/etc/nginx/sites-available/default": + owner => 'root', + group => 'root', + mode => 444, + ensure => 'present', + source => "puppet:///modules/apt_server/packages", + replace => 'true', + require => Package[nginx], + } + + file { "/etc/nginx/sites-enabled/default": + ensure => link, + target => "/etc/nginx/sites-available/default", + require => Package[nginx], + } + + file { "/srv": + owner => 'root', + group => 'root', + mode => 555, + ensure => directory, + } + + file {"/srv/packages": + owner => 'root', + group => 'root', + mode => 755, + ensure => directory, + require => File["/srv"], + } + + file {"/srv/packages/conf": + owner => 'root', + group => 'root', + mode => 555, + ensure => directory, + require => File["/srv/packages"], + } + + file {"/srv/packages/conf/distributions": + owner => 'root', + group => 'root', + mode => 444, + ensure => 'present', + source => "puppet:///modules/apt_server/distributions", + } + + service { 'nginx': + name => 'nginx', + ensure => running, + enable => true, + hasrestart => true, + require => Package['nginx'], + } + +}