diff --git a/manifests/repo.pp b/manifests/repo.pp index ea1c315..0acf994 100644 --- a/manifests/repo.pp +++ b/manifests/repo.pp @@ -55,27 +55,35 @@ case $osname { 'debian', 'ubuntu': { + #include puppetlabs-apt module + include apt + $component = 'main' $repo_url = "${base_url}/${repo_name}/${osname}" $distribution = $::lsbdistcodename - file { "${normalized_name}": - path => "/etc/apt/sources.list.d/${normalized_name}.list", - ensure => file, - mode => 0644, - content => template('packagecloud/apt.erb'), - } - - exec { "apt_key_add_${normalized_name}": - command => "wget -qO - ${server_address}/gpg.key | apt-key add -", - path => "/usr/bin/:/bin/", - require => File["${normalized_name}"], - } - - exec { "apt_get_update_${normalized_name}": - command => "apt-get update -o Dir::Etc::sourcelist=\"sources.list.d/${normalized_name}.list\" -o Dir::Etc::sourceparts=\"-\" -o APT::Get::List-Cleanup=\"0\"", - path => "/usr/bin/:/bin/", - require => Exec["apt_key_add_${normalized_name}"], + #Create the repository resource + apt::source { "${normalized_name}": + comment => "${normalized_name}", + ensure => 'present', + location => "${repo_url}", + release => "${distribution}", + repos => "${component}", + include => { + 'deb' => true, + 'src' => true, + }, + key => { + 'server' => "${server_address}", + 'source' => "${server_address}/gpg.key", + }, + } + + #Set apt update frequency + class { 'apt': + update => { + frequency => 'daily', + }, } } @@ -128,27 +136,23 @@ $gpg_key_filename = get_gpg_key_filename($server_address) $gpg_file_path = "/etc/pki/rpm-gpg/RPM-GPG-KEY-${gpg_key_filename}" - exec { "import_gpg_${normalized_name}": - command => "wget -qO ${gpg_file_path} ${gpg_url}", - path => "/usr/bin", - creates => $gpg_file_path, - } - - file { "${normalized_name}": - path => "/etc/yum.repos.d/${normalized_name}.repo", - ensure => file, - mode => 0644, - content => template('packagecloud/yum.erb'), - require => Exec["import_gpg_${normalized_name}"], - } - - exec { "yum_make_cache_${repo_name}": - command => "yum -q makecache -y --disablerepo='*' --enablerepo='${normalized_name}'", - path => "/usr/bin", - require => File["${normalized_name}"], + #create the repository resource + yumrepo { "${normalized_name}": + baseurl => "${repo_url}", + descr => "${description}", + enabled => 1, + ensure => 'present', + gpgcheck => 0, + gpgkey => "${gpg_url}", + priority => ${priority}, + repo_gpgcheck => ${repo_gpgcheck}, + sslcacert => '/etc/pki/tls/certs/ca-bundle.crt', + sslverify => 1, } + } + default: { fail("Sorry, $::operatingsystem isn't supported for yum repos at this time. Email support@packagecloud.io") } diff --git a/metadata.json b/metadata.json index 6187d34..1271212 100644 --- a/metadata.json +++ b/metadata.json @@ -9,8 +9,12 @@ "issues_url": "https://github.com/computology/computology-packagecloud/issues", "dependencies": [ { - "version_range": ">= 1.0.0", + "version_range": ">= 1.0.0", "name": "puppetlabs-stdlib" + }, + { + "version_range": ">=2.0.1", + "name": "puppetlabs-apt" } ] } diff --git a/templates/apt.erb b/templates/apt.erb deleted file mode 100644 index 9b01004..0000000 --- a/templates/apt.erb +++ /dev/null @@ -1,5 +0,0 @@ -# This file is managed by puppet -# module 'packagecloud' - -deb <%= @repo_url %> <%= @distribution %> <%= @component %> -deb-src <%= @repo_url %> <%= @distribution %> <%= @component %> diff --git a/templates/yum.erb b/templates/yum.erb deleted file mode 100644 index 66a3c44..0000000 --- a/templates/yum.erb +++ /dev/null @@ -1,15 +0,0 @@ -# This file is managed by puppet -# module 'packagecloud' - -[<%= @normalized_name %>] -name=<%= @description %> -baseurl=<%= @repo_url %> -repo_gpgcheck=<%= @repo_gpgcheck %> -<% if @priority -%> -priority=<%=@priority %> -<% end -%> -gpgcheck=0 -enabled=1 -gpgkey=file://<%= @gpg_file_path %> -sslverify=1 -sslcacert=/etc/pki/tls/certs/ca-bundle.crt