From 83e0374dfa4d2b8876ad6b4f3540dee713dcf4d0 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Wed, 24 Jan 2018 20:03:42 +0000 Subject: [PATCH] Revert "Revert "Add Puppetlabs mirror for CentOS7"" This reverts commit 9595c560a3d8360c61a14a2427af4342ed81fbb9. Change-Id: I804b9ae0505b5f6088ec9cb9a9cb44fcd2c10da3 --- manifests/site.pp | 19 ++++---- .../mirror/yum-puppetlabs-mirror-update.sh | 43 +++++++++++++++++++ modules/openstack_project/manifests/mirror.pp | 11 +++++ .../manifests/mirror_update.pp | 30 +++++++++++++ 4 files changed, 94 insertions(+), 9 deletions(-) create mode 100755 modules/openstack_project/files/mirror/yum-puppetlabs-mirror-update.sh diff --git a/manifests/site.pp b/manifests/site.pp index d0ca09fbd2..8b1d00fbf1 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -606,15 +606,16 @@ node /^mirror-update\d*\.openstack\.org$/ { $group = "afsadmin" class { 'openstack_project::mirror_update': - bandersnatch_keytab => hiera('bandersnatch_keytab'), - admin_keytab => hiera('afsadmin_keytab'), - fedora_keytab => hiera('fedora_keytab'), - opensuse_keytab => hiera('opensuse_keytab'), - reprepro_keytab => hiera('reprepro_keytab'), - gem_keytab => hiera('gem_keytab'), - centos_keytab => hiera('centos_keytab'), - epel_keytab => hiera('epel_keytab'), - sysadmins => hiera('sysadmins', []), + bandersnatch_keytab => hiera('bandersnatch_keytab'), + admin_keytab => hiera('afsadmin_keytab'), + fedora_keytab => hiera('fedora_keytab'), + opensuse_keytab => hiera('opensuse_keytab'), + reprepro_keytab => hiera('reprepro_keytab'), + gem_keytab => hiera('gem_keytab'), + centos_keytab => hiera('centos_keytab'), + epel_keytab => hiera('epel_keytab'), + yum_puppetlabs_keytab => hiera('yum_puppetlabs_keytab'), + sysadmins => hiera('sysadmins', []), } } diff --git a/modules/openstack_project/files/mirror/yum-puppetlabs-mirror-update.sh b/modules/openstack_project/files/mirror/yum-puppetlabs-mirror-update.sh new file mode 100755 index 0000000000..4a832313b1 --- /dev/null +++ b/modules/openstack_project/files/mirror/yum-puppetlabs-mirror-update.sh @@ -0,0 +1,43 @@ +#!/bin/bash -xe +# Copyright 2018 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +MIRROR_VOLUME=$1 + +BASE="/afs/.openstack.org/mirror/yum-puppetlabs" +MIRROR="rsync://rsync.puppet.com/packages" +K5START="k5start -t -f /etc/yum-puppetlabs.keytab service/yum-puppetlabs-mirror -- timeout -k 2m 30m" + +if ! [ -f $BASE ]; then + $K5START mkdir -p $BASE +fi + +date --iso-8601=ns +echo "Running rsync..." + +# We don't need cisco-wrlinux arch in OpenStack Infra. +$K5START rsync -rlptDvz \ + --delete \ + --delete-excluded \ + --exclude="cisco-wrlinux" \ + $MIRROR/yum/ $BASE + +# TODO(pabelanger): Validate rsync process + +date --iso-8601=ns | $K5START tee $BASE/timestamp.txt +echo "rsync completed successfully, running vos release." +k5start -t -f /etc/afsadmin.keytab service/afsadmin -- vos release -v $MIRROR_VOLUME + +date --iso-8601=ns +echo "Done." diff --git a/modules/openstack_project/manifests/mirror.pp b/modules/openstack_project/manifests/mirror.pp index fcd494c30c..309f6b022a 100644 --- a/modules/openstack_project/manifests/mirror.pp +++ b/modules/openstack_project/manifests/mirror.pp @@ -113,6 +113,17 @@ class openstack_project::mirror ( ] } + # Create the symlink to yum-puppetlabs + file { "${www_root}/yum-puppetlabs": + ensure => link, + target => "${mirror_root}/yum-puppetlabs", + owner => root, + group => root, + require => [ + File["${www_root}"], + ] + } + # Create the symlink to fedora file { "${www_root}/fedora": ensure => link, diff --git a/modules/openstack_project/manifests/mirror_update.pp b/modules/openstack_project/manifests/mirror_update.pp index 96a245cbd6..1f9544556d 100644 --- a/modules/openstack_project/manifests/mirror_update.pp +++ b/modules/openstack_project/manifests/mirror_update.pp @@ -8,6 +8,7 @@ class openstack_project::mirror_update ( $gem_keytab = '', $centos_keytab = '', $epel_keytab = '', + $yum_puppetlabs_keytab = '', $fedora_keytab = '', $opensuse_keytab = '', ) { @@ -368,6 +369,35 @@ class openstack_project::mirror_update ( ] } + ### Puppetlabs / CentOS mirror ### + file { '/etc/yum-puppetlabs.keytab': + owner => 'root', + group => 'root', + mode => '0400', + content => $yum_puppetlabs_keytab, + } + + file { '/usr/local/bin/yum-puppetlabs-mirror-update': + ensure => present, + owner => 'root', + group => 'root', + mode => '0755', + source => 'puppet:///modules/openstack_project/mirror/yum-puppetlabs-mirror-update.sh', + } + + cron { 'yum-puppetlabs mirror': + user => $user, + minute => '0', + hour => '*/2', + command => 'flock -n /var/run/yum-puppetlabs-mirror.lock yum-puppetlabs-mirror-update mirror.yum-puppetlabs >>/var/log/yum-puppetlabs-mirror.log 2>&1', + environment => 'PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin', + require => [ + File['/usr/local/bin/yum-puppetlabs-mirror-update'], + File['/etc/afsadmin.keytab'], + File['/etc/yum-puppetlabs.keytab'], + ] + } + ### Fedora mirror ### file { '/etc/fedora.keytab': owner => 'root',