Add mirror_update.openstack.org
This is a machine that will drive centralized mirror updates for mirrors that are in AFS. Change-Id: I33eed90c21a2e57a26349be83ee69e968b18d2f8 Depends-On: I56bb3ce2237be1179724f7a2bdcf9d5b04bdecd2 Depends-On: I704c8bf395d83adea0f9a0db6fd3d3814ad7660a
This commit is contained in:
parent
9487104b92
commit
dc4f086eef
@ -525,6 +525,16 @@ node /^git\d+\.openstack\.org$/ {
|
||||
}
|
||||
}
|
||||
|
||||
# A machine to drive AFS mirror updates.
|
||||
# Node-OS: trusty
|
||||
node 'mirror-update.openstack.org' {
|
||||
class { 'openstack_project::mirror_update':
|
||||
bandersnatch_keytab => hiera('bandersnatch_keytab'),
|
||||
admin_keytab => hiera('afsadmin_keytab'),
|
||||
sysadmins => hiera('sysadmins', []),
|
||||
}
|
||||
}
|
||||
|
||||
# Machines in each region to run PyPI mirrors.
|
||||
# Node-OS: precise
|
||||
node /^pypi\..*\.openstack\.org$/ {
|
||||
|
@ -90,6 +90,7 @@ INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/openstack-infra/puppet-ansible"]="origi
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/openstack-infra/puppet-apps_site"]="origin/master"
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/openstack-infra/puppet-askbot"]="origin/master"
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/openstack-infra/puppet-asterisk"]="origin/master"
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/openstack-infra/puppet-bandersnatch"]="origin/master"
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/openstack-infra/puppet-bugdaystats"]="origin/master"
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/openstack-infra/puppet-bup"]="origin/master"
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/openstack-infra/puppet-cgit"]="origin/master"
|
||||
|
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2016 IBM Corp.
|
||||
#
|
||||
# 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.
|
||||
|
||||
echo "Obtaining bandersnatch tokens and running bandersnatch."
|
||||
k5start -t -f /etc/bandersnatch.keytab service/bandersnatch -- timeout -k 2m 30m run-bandersnatch
|
||||
|
||||
RET=$?
|
||||
|
||||
if [ $RET ]; then
|
||||
echo "Bandersnatch completed successfully, running vos release."
|
||||
k5start -t -f /etc/afsadmin.keytab service/afsafdmin -- vos release mirror.pypi
|
||||
fi
|
||||
|
||||
echo "Done."
|
59
modules/openstack_project/manifests/mirror_update.pp
Normal file
59
modules/openstack_project/manifests/mirror_update.pp
Normal file
@ -0,0 +1,59 @@
|
||||
# == Class: openstack_project::mirror_update
|
||||
#
|
||||
class openstack_project::mirror_update (
|
||||
$sysadmins = [],
|
||||
$bandersnatch_keytab = '',
|
||||
$admin_keytab = '',
|
||||
) {
|
||||
|
||||
class { 'openstack_project::server':
|
||||
sysadmins => $sysadmins,
|
||||
afs => true,
|
||||
}
|
||||
|
||||
class { 'bandersnatch':
|
||||
bandersnatch_source => 'https://bitbucket.org/jeblair/bandersnatch',
|
||||
}
|
||||
|
||||
class { 'bandersnatch::mirror':
|
||||
mirror_root => '/afs/.openstack.org/mirror/pypi',
|
||||
static_root => '/afs/.openstack.org/mirror',
|
||||
hash_index => true,
|
||||
require => Class['bandersnatch'],
|
||||
}
|
||||
|
||||
file { '/etc/bandersnatch.keytab':
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0400',
|
||||
content => $bandersnatch_keytab,
|
||||
}
|
||||
|
||||
file { '/etc/afsadmin.keytab':
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0400',
|
||||
content => $bandersnatch_keytab,
|
||||
}
|
||||
|
||||
file { '/usr/local/bin/bandersnatch-mirror-update':
|
||||
ensure => present,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
source => 'puppet:///modules/openstack_project/bandersnatch-mirror-update.sh',
|
||||
}
|
||||
|
||||
cron { 'bandersnatch':
|
||||
user => $user,
|
||||
minute => '*/5',
|
||||
command => 'flock -n /var/run/bandersnatch/mirror.lock bandersnatch-mirror-update >>/var/log/bandersnatch/mirror.log 2>&1',
|
||||
environment => 'PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin',
|
||||
require => [
|
||||
File['/usr/local/bin/bandersnatch-mirror-update'],
|
||||
File['/etc/afsadmin.keytab'],
|
||||
File['/etc/bandersnatch.keytab'],
|
||||
Class['bandersnatch::mirror']
|
||||
]
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user