[RHEL] Manual support of backend RHEL intergation.
Modify makefiles: * to create local mirror of RHEL repo; * to include RHEL repo to ISO. Add support of RHEL packages download to master node via puppet. Add RHEL profile to cobbler. Add minimal RHEL support to deployment procedure.
This commit is contained in:
parent
3cd642d2f1
commit
06fe3f1c43
1
Makefile
1
Makefile
@ -8,6 +8,7 @@ help:
|
||||
@echo ' LOCAL_MIRROR: $(LOCAL_MIRROR)'
|
||||
@echo ' YUM_REPOS: $(YUM_REPOS)'
|
||||
@echo ' MIRROR_CENTOS: $(MIRROR_CENTOS)'
|
||||
@echo ' MIRROR_RHEL: $(MIRROR_RHEL)'
|
||||
@echo ' MIRROR_EGGS: $(MIRROR_EGGS)'
|
||||
@echo ' MIRROR_GEMS: $(MIRROR_GEMS)'
|
||||
@echo ' MIRROR_SRC: $(MIRROR_SRC)'
|
||||
|
19
config.mk
19
config.mk
@ -31,11 +31,15 @@ IMG_PATH:=$(ISO_DIR)/$(ISO_NAME).img
|
||||
# Do not compress javascript and css files
|
||||
NO_UI_OPTIMIZE:=0
|
||||
|
||||
# Do not copy RHEL repo to the iso
|
||||
CACHE_RHEL:=0
|
||||
|
||||
LOCAL_MIRROR_SRC:=$(LOCAL_MIRROR)/src
|
||||
LOCAL_MIRROR_EGGS:=$(LOCAL_MIRROR)/eggs
|
||||
LOCAL_MIRROR_GEMS:=$(LOCAL_MIRROR)/gems
|
||||
LOCAL_MIRROR_CENTOS:=$(LOCAL_MIRROR)/centos
|
||||
LOCAL_MIRROR_CENTOS_OS_BASEURL:=$(LOCAL_MIRROR_CENTOS)/os/$(CENTOS_ARCH)
|
||||
LOCAL_MIRROR_RHEL:=$(LOCAL_MIRROR)/rhel
|
||||
|
||||
BUILD_MIRROR_GEMS:=$(BUILD_DIR)/packages/gems
|
||||
|
||||
@ -44,7 +48,7 @@ BUILD_MIRROR_GEMS:=$(BUILD_DIR)/packages/gems
|
||||
# download of all the packages directly from internet
|
||||
USE_MIRROR?=srt
|
||||
ifeq ($(USE_MIRROR),srt)
|
||||
YUM_REPOS?=proprietary
|
||||
YUM_REPOS?=proprietary subscr_manager
|
||||
MIRROR_BASE?=http://srv08-srt.srt.mirantis.net/fwm/$(PRODUCT_VERSION)
|
||||
MIRROR_CENTOS?=$(MIRROR_BASE)/centos
|
||||
MIRROR_EGGS?=$(MIRROR_BASE)/eggs
|
||||
@ -52,7 +56,7 @@ MIRROR_GEMS?=$(MIRROR_BASE)/gems
|
||||
MIRROR_SRC?=$(MIRROR_BASE)/src
|
||||
endif
|
||||
ifeq ($(USE_MIRROR),msk)
|
||||
YUM_REPOS?=proprietary
|
||||
YUM_REPOS?=proprietary subscr_manager
|
||||
MIRROR_BASE?=http://srv11-msk.msk.mirantis.net/fwm/$(PRODUCT_VERSION)
|
||||
MIRROR_CENTOS?=$(MIRROR_BASE)/centos
|
||||
MIRROR_EGGS?=$(MIRROR_BASE)/eggs
|
||||
@ -60,7 +64,7 @@ MIRROR_GEMS?=$(MIRROR_BASE)/gems
|
||||
MIRROR_SRC?=$(MIRROR_BASE)/src
|
||||
endif
|
||||
ifeq ($(USE_MIRROR),usa)
|
||||
YUM_REPOS?=proprietary
|
||||
YUM_REPOS?=proprietary subscr_manager
|
||||
MIRROR_BASE?=http://product-vm.vm.mirantis.net/fwm/$(PRODUCT_VERSION)
|
||||
MIRROR_CENTOS?=$(MIRROR_BASE)/centos
|
||||
MIRROR_EGGS?=$(MIRROR_BASE)/eggs
|
||||
@ -70,6 +74,8 @@ endif
|
||||
|
||||
MIRROR_CENTOS?=http://mirror.yandex.ru/centos/$(CENTOS_RELEASE)
|
||||
MIRROR_CENTOS_OS_BASEURL:=$(MIRROR_CENTOS)/os/$(CENTOS_ARCH)
|
||||
MIRROR_RHEL?=http://srv11-msk.msk.mirantis.net/rhel6/rhel-6-server-rpms
|
||||
MIRROR_RHEL_BOOT?=http://srv11-msk.msk.mirantis.net/rhel6/rhel-server-6.4-x86_64
|
||||
# It can be any a list of links (--find-links) or a pip index (--index-url).
|
||||
MIRROR_EGGS?=http://pypi.python.org/simple
|
||||
# NOTE(mihgen): removed gemcutter - it redirects to rubygems.org and has issues w/certificate now
|
||||
@ -78,13 +84,18 @@ MIRROR_GEMS?=http://rubygems.org
|
||||
REQUIRED_RPMS:=$(shell grep -v "^\\s*\#" $(SOURCE_DIR)/requirements-rpm.txt)
|
||||
REQUIRED_EGGS:=$(shell grep -v "^\\s*\#" $(SOURCE_DIR)/requirements-eggs.txt)
|
||||
REQUIRED_SRCS:=$(shell grep -v ^\\s*\# $(SOURCE_DIR)/requirements-src.txt)
|
||||
REQ_RHEL_RPMS:=$(shell grep -v "^\\s*\#" $(SOURCE_DIR)/puppet/rpmcache/files/required-rpms.txt)
|
||||
REQ_FUEL_RHEL_RPMS:=$(shell grep -v "^\\s*\#" $(SOURCE_DIR)/puppet/rpmcache/files/req-fuel-rhel.txt)
|
||||
|
||||
# Which repositories to use for making local centos mirror.
|
||||
# Possible values you can find out from mirror/centos/yum_repos.mk file.
|
||||
# The actual name will be constracted wich prepending "yum_repo_" prefix.
|
||||
# Example: YUM_REPOS?=official epel => yum_repo_official and yum_repo_epel
|
||||
# will be used.
|
||||
YUM_REPOS?=official fuel
|
||||
YUM_REPOS?=official fuel subscr_manager
|
||||
ifeq ($(CACHE_RHEL),1)
|
||||
YUM_REPOS:=$(YUM_REPOS) rhel
|
||||
endif
|
||||
|
||||
# Mirror of source packages. Bareword 'internet' is used to download packages
|
||||
# directly from the internet
|
||||
|
@ -21,6 +21,7 @@ EMPTY_SNAPSHOT = os.environ.get('EMPTY_SNAPSHOT', 'empty')
|
||||
INTERFACE_ORDER = ('internal', 'public', 'private')
|
||||
|
||||
PUBLIC_FORWARD = os.environ.get('PUBLIC_FORWARD', None)
|
||||
PUBLIC_FORWARD = 'nat'
|
||||
|
||||
FORWARDING = {
|
||||
'public': PUBLIC_FORWARD,
|
||||
|
@ -233,6 +233,7 @@ cp -r ${SOURCE}/isolinux ${repodir}/centos/fuelweb/x86_64
|
||||
cp -r ${SOURCE}/repodata ${repodir}/centos/fuelweb/x86_64
|
||||
cp -r ${SOURCE}/Packages ${repodir}/centos/fuelweb/x86_64
|
||||
cp ${SOURCE}/.treeinfo ${repodir}/centos/fuelweb/x86_64
|
||||
cp -r ${SOURCE}/rhel ${repodir}
|
||||
|
||||
# Copying eggs/gems to the nailgun directory
|
||||
cp -r ${SOURCE}/eggs ${repodir}
|
||||
|
@ -12,10 +12,21 @@ $(BUILD_DIR)/iso/isoroot-centos.done: \
|
||||
$(BUILD_DIR)/iso/isoroot-dotfiles.done
|
||||
mkdir -p $(ISOROOT)
|
||||
rsync -rp $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/ $(ISOROOT)
|
||||
createrepo -g $(ISOROOT)/repodata/comps.xml \
|
||||
createrepo -g $(ISOROOT)/repodata/comps.xml -x 'rhel/*' \
|
||||
-u media://`head -1 $(ISOROOT)/.discinfo` $(ISOROOT)
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(BUILD_DIR)/iso/isoroot-rhel.done: $(call depv,CACHE_RHEL)
|
||||
$(BUILD_DIR)/iso/isoroot-rhel.done: \
|
||||
$(BUILD_DIR)/mirror/build.done \
|
||||
$(BUILD_DIR)/packages/build.done \
|
||||
$(BUILD_DIR)/iso/isoroot-dotfiles.done
|
||||
ifeq ($(CACHE_RHEL),1)
|
||||
mkdir -p $(ISOROOT)/rhel
|
||||
rsync -rp $(LOCAL_MIRROR_RHEL)/ $(ISOROOT)/rhel
|
||||
endif
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(BUILD_DIR)/iso/isoroot-eggs.done: \
|
||||
$(BUILD_DIR)/mirror/build.done \
|
||||
$(BUILD_DIR)/packages/build.done
|
||||
@ -110,6 +121,7 @@ $(BUILD_DIR)/iso/isoroot.done: \
|
||||
$(BUILD_DIR)/mirror/build.done \
|
||||
$(BUILD_DIR)/packages/build.done \
|
||||
$(BUILD_DIR)/iso/isoroot-centos.done \
|
||||
$(BUILD_DIR)/iso/isoroot-rhel.done \
|
||||
$(BUILD_DIR)/iso/isoroot-eggs.done \
|
||||
$(BUILD_DIR)/iso/isoroot-gems.done \
|
||||
$(BUILD_DIR)/iso/isoroot-files.done \
|
||||
|
@ -1,6 +1,6 @@
|
||||
include $(SOURCE_DIR)/mirror/centos/yum_repos.mk
|
||||
|
||||
.PHONY: show-yum-urls
|
||||
.PHONY: show-yum-urls-centos
|
||||
|
||||
$(BUILD_DIR)/mirror/centos/etc/yum.conf: $(call depv,yum_conf)
|
||||
$(BUILD_DIR)/mirror/centos/etc/yum.conf: export contents:=$(yum_conf)
|
||||
@ -42,7 +42,7 @@ $(BUILD_DIR)/mirror/centos/yum.done: \
|
||||
$(REQUIRED_RPMS)
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
show-yum-urls: \
|
||||
show-yum-urls-centos: \
|
||||
$(BUILD_DIR)/mirror/centos/yum-config.done \
|
||||
$(SOURCE_DIR)/requirements-rpm.txt
|
||||
yum -c $(BUILD_DIR)/mirror/centos/etc/yum.conf clean all
|
||||
|
@ -136,6 +136,14 @@ enabled = 1
|
||||
priority=95
|
||||
endef
|
||||
|
||||
define yum_repo_subscr_manager
|
||||
[rh-subscr-manager]
|
||||
name = RedHat subscription manager
|
||||
baseurl=http://repos.fedorapeople.org/repos/candlepin/subscription-manager/epel-6Server/x86_64/
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
endef
|
||||
|
||||
define yum_repo_proprietary
|
||||
[proprietary]
|
||||
name = RHEL $(CENTOS_RELEASE) - Proprietary
|
||||
|
@ -9,12 +9,14 @@ clean-mirror: clean-mirror-eggs
|
||||
|
||||
include $(SOURCE_DIR)/mirror/src/module.mk
|
||||
include $(SOURCE_DIR)/mirror/centos/module.mk
|
||||
include $(SOURCE_DIR)/mirror/rhel/module.mk
|
||||
include $(SOURCE_DIR)/mirror/eggs/module.mk
|
||||
include $(SOURCE_DIR)/mirror/gems/module.mk
|
||||
|
||||
$(BUILD_DIR)/mirror/build.done: \
|
||||
$(BUILD_DIR)/mirror/src/build.done \
|
||||
$(BUILD_DIR)/mirror/centos/build.done \
|
||||
$(BUILD_DIR)/mirror/rhel/build.done \
|
||||
$(BUILD_DIR)/mirror/eggs/build.done \
|
||||
$(BUILD_DIR)/mirror/gems/build.done
|
||||
$(ACTION.TOUCH)
|
||||
|
24
mirror/rhel/boot.mk
Normal file
24
mirror/rhel/boot.mk
Normal file
@ -0,0 +1,24 @@
|
||||
ISOLINUX_FILES:=boot.msg grub.conf initrd.img isolinux.bin memtest splash.jpg vesamenu.c32 vmlinuz
|
||||
IMAGES_FILES:=efiboot.img efidisk.img install.img
|
||||
EFI_FILES:=BOOTX64.conf BOOTX64.efi splash.xpm.gz
|
||||
|
||||
# isolinux files
|
||||
$(addprefix $(LOCAL_MIRROR_RHEL)/isolinux/,$(ISOLINUX_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(MIRROR_RHEL_BOOT)/isolinux/$(@F)
|
||||
|
||||
# EFI boot images
|
||||
$(addprefix $(LOCAL_MIRROR_RHEL)/EFI/BOOT/,$(EFI_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(MIRROR_RHEL_BOOT)/EFI/BOOT/$(@F)
|
||||
|
||||
# boot images
|
||||
$(addprefix $(LOCAL_MIRROR_RHEL)/images/,$(IMAGES_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(MIRROR_RHEL_BOOT)/images/$(@F)
|
||||
|
||||
$(BUILD_DIR)/mirror/rhel/boot.done: \
|
||||
$(addprefix $(LOCAL_MIRROR_RHEL)/images/,$(IMAGES_FILES)) \
|
||||
$(addprefix $(LOCAL_MIRROR_RHEL)/EFI/BOOT/,$(EFI_FILES)) \
|
||||
$(addprefix $(LOCAL_MIRROR_RHEL)/isolinux/,$(ISOLINUX_FILES))
|
||||
$(ACTION.TOUCH)
|
14
mirror/rhel/module.mk
Normal file
14
mirror/rhel/module.mk
Normal file
@ -0,0 +1,14 @@
|
||||
ifeq ($(CACHE_RHEL),1)
|
||||
# This module downloads required rpm packages and creates rpm repository.
|
||||
include $(SOURCE_DIR)/mirror/rhel/repo.mk
|
||||
# This module downloads installation images.
|
||||
include $(SOURCE_DIR)/mirror/rhel/boot.mk
|
||||
|
||||
$(BUILD_DIR)/mirror/rhel/build.done: \
|
||||
$(BUILD_DIR)/mirror/rhel/repo.done \
|
||||
$(BUILD_DIR)/mirror/rhel/boot.done
|
||||
$(ACTION.TOUCH)
|
||||
else
|
||||
$(BUILD_DIR)/mirror/rhel/build.done:
|
||||
$(ACTION.TOUCH)
|
||||
endif
|
87
mirror/rhel/repo.mk
Normal file
87
mirror/rhel/repo.mk
Normal file
@ -0,0 +1,87 @@
|
||||
include $(SOURCE_DIR)/mirror/rhel/yum_repos.mk
|
||||
|
||||
.PHONY: show-yum-urls-rhel
|
||||
|
||||
$(BUILD_DIR)/mirror/rhel/etc/yum.conf: $(call depv,rhel_yum_conf)
|
||||
$(BUILD_DIR)/mirror/rhel/etc/yum.conf: export contents:=$(rhel_yum_conf)
|
||||
$(BUILD_DIR)/mirror/rhel/etc/yum.conf:
|
||||
mkdir -p $(@D)
|
||||
/bin/echo -e "$${contents}" > $@
|
||||
|
||||
$(BUILD_DIR)/mirror/rhel/etc/yum-plugins/priorities.py: \
|
||||
$(SOURCE_DIR)/mirror/rhel/yum-priorities-plugin.py
|
||||
mkdir -p $(@D)
|
||||
cp $(SOURCE_DIR)/mirror/rhel/yum-priorities-plugin.py $@
|
||||
|
||||
$(BUILD_DIR)/mirror/rhel/etc/yum/pluginconf.d/priorities.conf:
|
||||
mkdir -p $(@D)
|
||||
/bin/echo -e "[main]\nenabled=1\ncheck_obsoletes=1\nfull_match=1" > $@
|
||||
|
||||
$(BUILD_DIR)/mirror/rhel/etc/yum.repos.d/base.repo: $(call depv,YUM_REPOS)
|
||||
$(BUILD_DIR)/mirror/rhel/etc/yum.repos.d/base.repo: \
|
||||
export contents:=$(foreach repo,$(YUM_REPOS),\n$(rhel_yum_repo_$(repo))\n)
|
||||
$(BUILD_DIR)/mirror/rhel/etc/yum.repos.d/base.repo:
|
||||
@mkdir -p $(@D)
|
||||
/bin/echo -e "$${contents}" > $@
|
||||
|
||||
$(BUILD_DIR)/mirror/rhel/yum-config.done: \
|
||||
$(BUILD_DIR)/mirror/rhel/etc/yum.conf \
|
||||
$(BUILD_DIR)/mirror/rhel/etc/yum.repos.d/base.repo \
|
||||
$(BUILD_DIR)/mirror/rhel/etc/yum-plugins/priorities.py \
|
||||
$(BUILD_DIR)/mirror/rhel/etc/yum/pluginconf.d/priorities.conf
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(BUILD_DIR)/mirror/rhel/yum.done: $(call depv,REQ_RHEL_RPMS)
|
||||
$(BUILD_DIR)/mirror/rhel/yum.done: \
|
||||
$(BUILD_DIR)/mirror/rhel/yum-config.done
|
||||
yum -c $(BUILD_DIR)/mirror/rhel/etc/yum.conf clean all
|
||||
rm -rf /var/tmp/yum-$$USER-*/
|
||||
yumdownloader -q --resolve --archlist=$(CENTOS_ARCH) \
|
||||
-c $(BUILD_DIR)/mirror/rhel/etc/yum.conf \
|
||||
--destdir=$(LOCAL_MIRROR_RHEL)/Packages \
|
||||
`echo $(REQ_RHEL_RPMS) | /bin/sed 's/-[0-9][0-9\.a-zA-Z_-]\+//g'`
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
show-yum-urls-rhel: $(call depv,REQ_RHEL_RPMS)
|
||||
show-yum-urls-rhel: \
|
||||
$(BUILD_DIR)/mirror/rhel/yum-config.done
|
||||
yum -c $(BUILD_DIR)/mirror/rhel/etc/yum.conf clean all
|
||||
rm -rf /var/tmp/yum-$$USER-*/
|
||||
yumdownloader --urls -q --resolve --archlist=$(CENTOS_ARCH) \
|
||||
-c $(BUILD_DIR)/mirror/rhel/etc/yum.conf \
|
||||
--destdir=$(LOCAL_MIRROR_RHEL)/Packages \
|
||||
`echo $(REQ_RHEL_RPMS) | /bin/sed 's/-[0-9][0-9\.a-zA-Z_-]\+//g'`
|
||||
|
||||
$(LOCAL_MIRROR_RHEL)/repodata/comps.xml: \
|
||||
export COMPSXML=$(shell wget -qO- $(MIRROR_RHEL)/repodata/repomd.xml | grep -m 1 '$(@F)' | awk -F'"' '{ print $$2 }')
|
||||
$(LOCAL_MIRROR_RHEL)/repodata/comps.xml:
|
||||
@mkdir -p $(@D)
|
||||
if ( echo $${COMPSXML} | grep -q '\.gz$$' ); then \
|
||||
wget -O $@.gz $(MIRROR_RHEL)/$${COMPSXML}; \
|
||||
gunzip $@.gz; \
|
||||
else \
|
||||
wget -O $@ $(MIRROR_RHEL)/$${COMPSXML}; \
|
||||
fi
|
||||
|
||||
# These packages are used by FUEL but RHEL repo doesn't contain them. So we
|
||||
# need to download them from some external repo and put into rhel/fuel repo.
|
||||
HACK_PACKAGES:=xinetd-2.3.14-38.el6.x86_64.rpm xfsprogs-3.1.1-10.el6.x86_64.rpm qpid-cpp-server-cluster-0.14-22.el6_3.x86_64.rpm \
|
||||
qpid-cpp-server-store-0.14-22.el6_3.x86_64.rpm qpid-tests-0.14-1.el6_2.noarch.rpm qpid-tools-0.14-6.el6_3.noarch.rpm \
|
||||
qpid-cpp-server-ssl-0.14-22.el6_3.x86_64.rpm
|
||||
HACK_URLS:=$(addprefix http://mirror.yandex.ru/centos/6.4/os/x86_64/Packages/,$(HACK_PACKAGES))
|
||||
|
||||
$(BUILD_DIR)/mirror/rhel/fuel.done:
|
||||
mkdir -p $(LOCAL_MIRROR)/mirror/rhel/fuel/Packages
|
||||
-wget -c -i $(SOURCE_DIR)/puppet/rpmcache/files/req-fuel-rhel.txt -B http://download.mirantis.com/epel-fuel-grizzly/x86_64/ -P $(LOCAL_MIRROR)/rhel/fuel/Packages
|
||||
-wget -c -i $(SOURCE_DIR)/puppet/rpmcache/files/req-fuel-rhel.txt -B http://download.mirantis.com/epel-fuel-grizzly/noarch/ -P $(LOCAL_MIRROR)/rhel/fuel/Packages
|
||||
-wget -c -i $(SOURCE_DIR)/puppet/rpmcache/files/req-fuel-rhel.txt -B http://srv11-msk.msk.mirantis.net/rhel6/fuel-rpms/x86_64/ -P $(LOCAL_MIRROR)/rhel/fuel/Packages
|
||||
-wget -c -P $(LOCAL_MIRROR)/rhel/fuel/Packages $(HACK_URLS)
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(BUILD_DIR)/mirror/rhel/repo.done: \
|
||||
$(BUILD_DIR)/mirror/rhel/yum.done \
|
||||
$(BUILD_DIR)/mirror/rhel/fuel.done \
|
||||
| $(LOCAL_MIRROR_RHEL)/repodata/comps.xml
|
||||
createrepo -g $(LOCAL_MIRROR_RHEL)/repodata/comps.xml \
|
||||
-o $(LOCAL_MIRROR_RHEL)/ $(LOCAL_MIRROR_RHEL)/
|
||||
$(ACTION.TOUCH)
|
209
mirror/rhel/yum-priorities-plugin.py
Normal file
209
mirror/rhel/yum-priorities-plugin.py
Normal file
@ -0,0 +1,209 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# yum-plugin-priorities 0.0.7
|
||||
#
|
||||
# Copyright (c) 2006-2007 Daniel de Kok
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# This plugins is inspired by the protectbase plugin, and enables/disables
|
||||
# packages based on a repository priority.
|
||||
#
|
||||
# You can install this plugin by copying it to /usr/lib/yum-plugins. To
|
||||
# enable this plugin, make sure that you have 'plugins=1' in /etc/yum.conf,
|
||||
# and create the file /etc/yum/pluginconf.d/priorities.conf with the
|
||||
# following content:
|
||||
#
|
||||
# [main]
|
||||
# enabled=1
|
||||
#
|
||||
# If you also want the plugin to protect high-priority repositories against
|
||||
# obsoletes in low-priority repositories, enable the 'check_obsoletes' bool:
|
||||
#
|
||||
# check_obsoletes=1
|
||||
#
|
||||
# By default, this plugin excludes packages from lower priority repositories
|
||||
# based on the package name. If you want to exclude packages based only the
|
||||
# package name and architecture, enable the 'only_samearch' bool:
|
||||
#
|
||||
# only_samearch=1
|
||||
#
|
||||
# If you want to be able to set package as the fully qualified package name
|
||||
# including architecture and package version, enable 'full_match' bool:
|
||||
#
|
||||
# full_match=1
|
||||
#
|
||||
# If full_match is enabled then check_obsoletes will be forced to disable
|
||||
#
|
||||
# You can add priorities to repositories, by adding the line:
|
||||
#
|
||||
# priority=N
|
||||
#
|
||||
# to the repository entry, where N is an integer number. The default
|
||||
# priority for repositories is 99. The repositories with the lowest
|
||||
# number have the highest priority.
|
||||
#
|
||||
# Please report errors to Daniel de Kok <danieldk@pobox.com>
|
||||
|
||||
from yum.constants import *
|
||||
from yum.plugins import TYPE_CORE
|
||||
from yum import config
|
||||
import yum
|
||||
|
||||
check_obsoletes = False
|
||||
only_samearch = False
|
||||
full_match = False
|
||||
|
||||
requires_api_version = '2.1'
|
||||
plugin_type = (TYPE_CORE,)
|
||||
|
||||
def config_hook(conduit):
|
||||
global check_obsoletes
|
||||
global only_samearch
|
||||
global full_match
|
||||
|
||||
# Plugin configuration
|
||||
check_obsoletes = conduit.confBool('main', 'check_obsoletes', default = False)
|
||||
only_samearch = conduit.confBool('main', 'only_samearch', default = False)
|
||||
full_match = conduit.confBool('main', 'full_match', default = False)
|
||||
|
||||
if full_match:
|
||||
check_obsoletes = False
|
||||
|
||||
# Repo priorities
|
||||
if yum.__version__ >= '2.5.0':
|
||||
# New style : yum >= 2.5
|
||||
config.RepoConf.priority = config.IntOption(99)
|
||||
else:
|
||||
# Old add extra options style
|
||||
conduit.registerOpt('priority', PLUG_OPT_INT, PLUG_OPT_WHERE_REPO, 99)
|
||||
|
||||
# Command-line options.
|
||||
parser = conduit.getOptParser()
|
||||
if parser:
|
||||
if hasattr(parser, 'plugin_option_group'):
|
||||
parser = parser.plugin_option_group
|
||||
parser.add_option('', '--samearch-priorities', dest='samearch',
|
||||
action='store_true', default = False,
|
||||
help="Priority-exclude packages based on name + arch")
|
||||
|
||||
def _all_repo_priorities_same(allrepos):
|
||||
""" Are all repos at the same priority """
|
||||
first = None
|
||||
for repo in allrepos:
|
||||
if first is None:
|
||||
first = repo.priority
|
||||
elif first != repo.priority:
|
||||
return False
|
||||
return True
|
||||
|
||||
def exclude_hook(conduit):
|
||||
global only_samearch
|
||||
global check_obsoletes
|
||||
global full_match
|
||||
|
||||
allrepos = conduit.getRepos().listEnabled()
|
||||
|
||||
# If they haven't done anything, don't do any work
|
||||
if _all_repo_priorities_same(allrepos):
|
||||
return
|
||||
|
||||
# Check whether the user specified the --samearch option.
|
||||
opts, commands = conduit.getCmdLine()
|
||||
if opts and opts.samearch:
|
||||
only_samearch = True
|
||||
|
||||
cnt = 0
|
||||
if check_obsoletes and not conduit._base.conf.obsoletes:
|
||||
check_obsoletes = False
|
||||
if check_obsoletes:
|
||||
obsoletes = conduit._base.up.rawobsoletes
|
||||
|
||||
# Build a dictionary with package priorities. Either with arch or
|
||||
# archless, based on the user's settings.
|
||||
if only_samearch:
|
||||
pkg_priorities = dict()
|
||||
if check_obsoletes or not only_samearch:
|
||||
pkg_priorities_archless = dict()
|
||||
for repo in allrepos:
|
||||
if repo.enabled:
|
||||
if only_samearch:
|
||||
repopkgs = _pkglist_to_dict(conduit.getPackages(repo), repo.priority, True)
|
||||
_mergeprioritydicts(pkg_priorities, repopkgs)
|
||||
|
||||
if check_obsoletes or not only_samearch:
|
||||
repopkgs_archless = _pkglist_to_dict(conduit.getPackages(repo), repo.priority)
|
||||
_mergeprioritydicts(pkg_priorities_archless, repopkgs_archless)
|
||||
|
||||
# Eliminate packages that have a low priority
|
||||
for repo in allrepos:
|
||||
if repo.enabled:
|
||||
for po in conduit.getPackages(repo):
|
||||
delPackage = False
|
||||
|
||||
if full_match:
|
||||
pname = str(po)
|
||||
else:
|
||||
pname = po.name
|
||||
|
||||
if only_samearch:
|
||||
key = "%s.%s" % (pname,po.arch)
|
||||
if key in pkg_priorities and pkg_priorities[key] < repo.priority:
|
||||
delPackage = True
|
||||
else:
|
||||
key = "%s" % pname
|
||||
if key in pkg_priorities_archless and pkg_priorities_archless[key] < repo.priority:
|
||||
delPackage = True
|
||||
|
||||
if delPackage:
|
||||
conduit.delPackage(po)
|
||||
cnt += 1
|
||||
conduit.info(3," --> %s from %s excluded (priority)" % (po,po.repoid))
|
||||
|
||||
# If this packages obsoletes other packages, check whether
|
||||
# one of the obsoleted packages is not available through
|
||||
# a repo with a higher priority. If so, remove this package.
|
||||
if check_obsoletes:
|
||||
if po.pkgtup in obsoletes:
|
||||
obsolete_pkgs = obsoletes[po.pkgtup]
|
||||
for obsolete_pkg in obsolete_pkgs:
|
||||
pkg_name = obsolete_pkg[0]
|
||||
if pkg_name in pkg_priorities_archless and pkg_priorities_archless[pkg_name] < repo.priority:
|
||||
conduit.delPackage(po)
|
||||
cnt += 1
|
||||
conduit.info(3," --> %s from %s excluded (priority)" % (po,po.repoid))
|
||||
break
|
||||
if cnt:
|
||||
conduit.info(2, '%d packages excluded due to repository priority protections' % cnt)
|
||||
if check_obsoletes:
|
||||
# Atm. the update object doesn't get updated when we manually exclude
|
||||
# things ... so delete it. This needs to be re-written.
|
||||
conduit._base.up = None
|
||||
|
||||
def _pkglist_to_dict(pl, priority, addArch = False):
|
||||
global full_match
|
||||
out = dict()
|
||||
for p in pl:
|
||||
if full_match:
|
||||
pname = str(p)
|
||||
else:
|
||||
pname = p.name
|
||||
if addArch:
|
||||
key = "%s.%s" % (pname,p.arch)
|
||||
out[key] = priority
|
||||
else:
|
||||
out[pname] = priority
|
||||
return out
|
||||
|
||||
def _mergeprioritydicts(dict1, dict2):
|
||||
for package in dict2.keys():
|
||||
if package not in dict1 or dict2[package] < dict1[package]:
|
||||
dict1[package] = dict2[package]
|
72
mirror/rhel/yum_repos.mk
Normal file
72
mirror/rhel/yum_repos.mk
Normal file
@ -0,0 +1,72 @@
|
||||
define rhel_yum_conf
|
||||
[main]
|
||||
cachedir=$(BUILD_DIR)/mirror/rhel/cache
|
||||
keepcache=0
|
||||
debuglevel=6
|
||||
logfile=$(BUILD_DIR)/mirror/rhel/yum.log
|
||||
exclude=*.i686.rpm
|
||||
exactarch=1
|
||||
obsoletes=1
|
||||
gpgcheck=0
|
||||
plugins=1
|
||||
pluginpath=$(BUILD_DIR)/mirror/rhel/etc/yum-plugins
|
||||
pluginconfpath=$(BUILD_DIR)/mirror/rhel/etc/yum/pluginconf.d
|
||||
reposdir=$(BUILD_DIR)/mirror/rhel/etc/yum.repos.d
|
||||
endef
|
||||
|
||||
define rhel_yum_repo_puppetlabs
|
||||
[puppetlabs]
|
||||
name=Puppet Labs Packages
|
||||
baseurl=http://yum.puppetlabs.com/el/$(CENTOS_MAJOR)/products/$(CENTOS_ARCH)/
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=http://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs
|
||||
priority=1
|
||||
endef
|
||||
|
||||
define rhel_yum_repo_proprietary
|
||||
[proprietary]
|
||||
name = RHEL $(CENTOS_RELEASE) - Proprietary
|
||||
baseurl = $(MIRROR_RHEL)
|
||||
gpgcheck = 0
|
||||
enabled = 1
|
||||
priority=1
|
||||
endef
|
||||
|
||||
define rhel_yum_repo_rhel
|
||||
[rhel-os-30-puddle]
|
||||
name=OpenStack-3.0-Puddle
|
||||
baseurl=http://srv11-msk.msk.mirantis.net/rhel6/OpenStack-3.0-Puddle
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
|
||||
[rhel-server-rpms]
|
||||
name=rhel-6-server-rpms
|
||||
baseurl=http://srv11-msk.msk.mirantis.net/rhel6/rhel-6-server-rpms
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
|
||||
[rhel-server-optional-rpms]
|
||||
name=rhel-6-server-optional-rpms
|
||||
baseurl=http://srv11-msk.msk.mirantis.net/rhel6/rhel-6-server-optional-rpms
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
|
||||
[rhel-ha-rpms]
|
||||
name=rhel-ha-for-rhel-6-server-rpms
|
||||
baseurl=http://srv11-msk.msk.mirantis.net/rhel6/rhel-ha-for-rhel-6-server-rpms
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
|
||||
[rhel-lb-rpms]
|
||||
name=rhel-lb-for-rhel-6-server-rpms
|
||||
baseurl=http://srv11-msk.msk.mirantis.net/rhel6/rhel-lb-for-rhel-6-server-rpms
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
|
||||
[rhel-rs-rpms]
|
||||
name=rhel-rs-for-rhel-6-server-rpms
|
||||
baseurl=http://srv11-msk.msk.mirantis.net/rhel6/rhel-rs-for-rhel-6-server-rpms
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
endef
|
@ -98,6 +98,33 @@
|
||||
},
|
||||
"attributes_metadata": {
|
||||
"editable": {
|
||||
"os": {
|
||||
"distro": {
|
||||
"value": "centos",
|
||||
"values": [
|
||||
{
|
||||
"data": "centos",
|
||||
"display_name": "CentOS",
|
||||
"description": "CentOS"
|
||||
},
|
||||
{
|
||||
"data": "rhel",
|
||||
"display_name": "RHEL",
|
||||
"description": "RHEL"
|
||||
}
|
||||
],
|
||||
"label": "Operation System",
|
||||
"weight": 10
|
||||
},
|
||||
"rh_username": {
|
||||
"label": "Red Hat user",
|
||||
"weight": 20
|
||||
},
|
||||
"rh_password": {
|
||||
"label": "Red Hat password",
|
||||
"weight": 30
|
||||
}
|
||||
},
|
||||
"access": {
|
||||
"user": {
|
||||
"value": "admin",
|
||||
|
@ -65,7 +65,8 @@ MASTER_IP: "127.0.0.1"
|
||||
COBBLER_URL: "http://localhost/cobbler_api"
|
||||
COBBLER_USER: "cobbler"
|
||||
COBBLER_PASSWORD: "cobbler"
|
||||
COBBLER_PROFILE: "centos-x86_64"
|
||||
COBBLER_CENTOS_PROFILE: "centos-x86_64"
|
||||
COBBLER_RHEL_PROFILE: "rhel-x86_64"
|
||||
|
||||
TRUNCATE_LOG_ENTRIES: 100
|
||||
UI_LOG_DATE_FORMAT: '%Y-%m-%d %H:%M:%S'
|
||||
|
@ -273,8 +273,13 @@ class ProvisionTask(object):
|
||||
(node.name, node.id)
|
||||
)
|
||||
|
||||
if cluster_attrs.get('os', dict()).get('distro', '') == 'rhel':
|
||||
cobbler_profile = settings.COBBLER_RHEL_PROFILE
|
||||
else:
|
||||
cobbler_profile = settings.COBBLER_CENTOS_PROFILE
|
||||
|
||||
node_data = {
|
||||
'profile': settings.COBBLER_PROFILE,
|
||||
'profile': cobbler_profile,
|
||||
'power_type': 'ssh',
|
||||
'power_user': 'root',
|
||||
'power_address': node.ip,
|
||||
|
@ -93,6 +93,11 @@ $(BUILD_DIR)/packages/rpm/repo.done: \
|
||||
find $(BUILD_DIR)/packages/rpm/RPMS -name '*.rpm' -exec cp -u {} $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/Packages \;
|
||||
createrepo -g $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/repodata/comps.xml \
|
||||
-o $(LOCAL_MIRROR_CENTOS_OS_BASEURL) $(LOCAL_MIRROR_CENTOS_OS_BASEURL)
|
||||
ifeq ($(CACHE_RHEL),1)
|
||||
find $(BUILD_DIR)/packages/rpm/RPMS -name '*.rpm' -exec cp -u {} $(LOCAL_MIRROR_RHEL)/Packages \;
|
||||
createrepo -g $(LOCAL_MIRROR_RHEL)/repodata/comps.xml \
|
||||
-o $(LOCAL_MIRROR_RHEL) $(LOCAL_MIRROR_RHEL)
|
||||
endif
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(BUILD_DIR)/packages/rpm/build.done: $(BUILD_DIR)/packages/rpm/repo.done
|
||||
|
@ -10,6 +10,14 @@ node default {
|
||||
"url" => "http://${ipaddress}:8080/centos/fuelweb/x86_64"
|
||||
},
|
||||
]
|
||||
$rhel_repos =
|
||||
[
|
||||
{
|
||||
"id" => "nailgun",
|
||||
"name" => "Nailgun",
|
||||
"url" => "http://${ipaddress}:8080/rhel"
|
||||
},
|
||||
]
|
||||
|
||||
$cobbler_user = "cobbler"
|
||||
$cobbler_password = "cobbler"
|
||||
|
@ -1,15 +1,10 @@
|
||||
class nailgun::cobbler(
|
||||
$cobbler_user = "cobbler",
|
||||
$cobbler_password = "cobbler",
|
||||
|
||||
$centos_repos,
|
||||
$gem_source,
|
||||
|
||||
$ks_system_timezone = "Etc/UTC",
|
||||
|
||||
# default password is 'r00tme'
|
||||
$ks_encrypted_root_password = "\$6\$tCD3X7ji\$1urw6qEMDkVxOkD33b4TpQAjRiCeDZx0jmgMhDYhfB9KuGfqO9OcMaKyUxnGGWslEDQ4HxTw7vcAMP85NxQe61",
|
||||
|
||||
){
|
||||
|
||||
anchor { "nailgun-cobbler-begin": }
|
||||
|
@ -137,7 +137,6 @@ class nailgun(
|
||||
class { "nailgun::cobbler":
|
||||
cobbler_user => "cobbler",
|
||||
cobbler_password => "cobbler",
|
||||
centos_repos => $centos_repos,
|
||||
gem_source => $gem_source,
|
||||
}
|
||||
|
||||
|
@ -4,11 +4,6 @@ install
|
||||
# INSTALLATION SOURCE (centos repository)
|
||||
url --url=$tree
|
||||
|
||||
# ALTERNATIVE REPOSITORIES
|
||||
<% ks_repo.each do |repo| %>
|
||||
repo --name=<%= repo['name'] %> --baseurl=<%= repo['url'] %>
|
||||
<% end %>
|
||||
|
||||
# KEYBOARD AND LANGUAGE CUSTOMIZATION
|
||||
lang en_US.UTF-8
|
||||
keyboard us
|
||||
@ -120,6 +115,9 @@ ruby-devel
|
||||
system-config-firewall-base
|
||||
wget
|
||||
yum
|
||||
#if $getVar("profile_name","") == "rhel-x86_64"
|
||||
subscription-manager
|
||||
#end if
|
||||
|
||||
# COBBLER EMBEDDED SNIPPET: 'puppet_install_if_enabled'
|
||||
# LISTS puppet PACKAGE IF puppet_auto_setup VARIABLE IS SET TO 1
|
||||
@ -210,6 +208,10 @@ $SNIPPET('target_logs_to_master')
|
||||
# Dhclient should ignore option 'routers' on all interfaces.
|
||||
$SNIPPET('dhclient_ignore_routers_opt')
|
||||
|
||||
# COBBLER EMBEDDED SNIPPETS AROUND RHEL REGISTRATION
|
||||
$SNIPPET('redhat_register')
|
||||
$SNIPPET('rhn_certificate_based_register')
|
||||
|
||||
# COBBLER EMBEDDED SNIPPET: 'kickstart_done'
|
||||
# DISABLES PXE BOOTING
|
||||
$SNIPPET('kickstart_done')
|
||||
|
@ -1,9 +1,7 @@
|
||||
rm /etc/yum.repos.d/*.repo
|
||||
cat > /etc/yum.repos.d/nailgun.repo << EOF
|
||||
<% ks_repo.each do |repo| %>
|
||||
[<%= repo['id'] %>]
|
||||
name=<%= repo['name'] %>
|
||||
baseurl=<%= repo['url'] %>
|
||||
[fuelweb]
|
||||
name=Fuelweb
|
||||
baseurl=$tree
|
||||
gpgcheck=0
|
||||
<% end %>
|
||||
EOF
|
||||
|
@ -54,7 +54,8 @@ MASTER_IP: "<%= ipaddress %>"
|
||||
COBBLER_URL: "<%= scope.lookupvar('nailgun::cobbler_url') %>"
|
||||
COBBLER_USER: "<%= cobbler_user %>"
|
||||
COBBLER_PASSWORD: "<%= cobbler_password %>"
|
||||
COBBLER_PROFILE: "centos-x86_64"
|
||||
COBBLER_CENTOS_PROFILE: "centos-x86_64"
|
||||
COBBLER_RHEL_PROFILE: "rhel-x86_64"
|
||||
|
||||
MCO_PSKEY: "<%= mco_pskey %>"
|
||||
MCO_VHOST: "<%= mco_vhost %>"
|
||||
|
14
puppet/rpmcache/examples/site.pp
Normal file
14
puppet/rpmcache/examples/site.pp
Normal file
@ -0,0 +1,14 @@
|
||||
node default {
|
||||
class { "rpmcache":
|
||||
releasever => "6Server",
|
||||
pkgdir => "/var/www/nailgun/rhel",
|
||||
rh_username => "your_rh_username",
|
||||
rh_password => "your_rh_password",
|
||||
rh_base_channels => "rhel-6-server-rpms rhel-6-server-optional-rpms rhel-lb-for-rhel-6-server-rpms rhel-rs-for-rhel-6-server-rpms rhel-ha-for-rhel-6-server-rpms rhel-server-ost-6-folsom-rpms",
|
||||
#rh_openstack_channel => "rhel-server-ost-6-folsom-rpms",
|
||||
rh_openstack_channel => "rhel-server-ost-6-3-rpms",
|
||||
use_satellite => false,
|
||||
sat_hostname => undef,
|
||||
activation_key => undef
|
||||
}
|
||||
}
|
34
puppet/rpmcache/files/191.pem
Normal file
34
puppet/rpmcache/files/191.pem
Normal file
@ -0,0 +1,34 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIF9DCCA9ygAwIBAgIJALDxRLt/tUrTMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
|
||||
VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTEyMTExNTIxNDQxNFoXDTMyMTEx
|
||||
MDIxNDQxNFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs4ZTE0NjJl
|
||||
Ni1kODQ3LTRiMWItYWIzZC0wYjk4OTNjNzk3MDFdMIICIjANBgkqhkiG9w0BAQEF
|
||||
AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
AwEAAaN+MHwwCQYDVR0TBAIwADAjBgwrBgEEAZIICQGBPwEEEwwRUmVkIEhhdCBP
|
||||
cGVuU3RhY2swGAYMKwYBBAGSCAkBgT8CBAgMBkZvbHNvbTAYBgwrBgEEAZIICQGB
|
||||
PwMECAwGeDg2XzY0MBYGDCsGAQQBkggJAYE/BAQGDAROb25lMA0GCSqGSIb3DQEB
|
||||
BQUAA4ICAQAd+Lgm8ORnaGPmwNmm8zzIqKJ8nW4fKgHnq+kmo9SI8HhYNKzSYKXZ
|
||||
24GbqTFJZsoD0/1h34o3jfgqQzSin7LJhvZ1Pc+N894IYKW9BvGMp8Ej8KuvERwt
|
||||
UsYRBgQ0Z0rEE5s0JeP3NqypqR4/vV6S7VKvGvwLuLyH+E4GmxE3GplAIJjHp162
|
||||
7bwj+eecLGxR8b6cOyqsv5F8nMD4/OiqsKOOrVaZEZr/ecdi/NfkQqvkS7qMpb58
|
||||
bl7ABqlF4BhG74OnbLMARZHt/fdJ4iH9CG+t3N9mhjoEQo63IZi/LUxKFdcRW+8o
|
||||
EK0KSqySzUhTpY1jNSlNnfS+VSCtVxnpVlY19ZcexG6xf68cLeAGntYWLBnGj4Df
|
||||
RX3lFXSm8cB4DC9GrtGm8cG2B4OD2tmlr3PxbP8yVX0lwb1d/5RU8VIft7Qb0E3i
|
||||
BtdF6mVTNXSUL7pXl2/LCXa8157rH/BJQ75QAv351cO9Vuq69zWcr3Fr+qzlrieN
|
||||
awyrf4i/9mgTgoqukGH1b2r0lxsT475YOexK4Rmi4Pi4Wqyn1rbr4+6JGit5twG3
|
||||
cND48SiI7zyU15Q0pphxhhNoxwlfdrKlEdIjF8ZaJjvAqDYEm2FqsKgG+CyugSPr
|
||||
bhvozM2XOEBnTT2PAjfhUsq9hSKjfsK4X1ZH3wQKoUqvFbIOtVeXmQ==
|
||||
-----END CERTIFICATE-----
|
35
puppet/rpmcache/files/69.pem
Normal file
35
puppet/rpmcache/files/69.pem
Normal file
@ -0,0 +1,35 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIGDTCCA/WgAwIBAgIJALDxRLt/tUtWMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
|
||||
VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
|
||||
YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
|
||||
IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
|
||||
ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTEyMDExMTE3Mjc1N1oXDTMyMDEw
|
||||
NjE3Mjc1N1owRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtmYTY5ZTA3
|
||||
OC1iNzEzLTQ5ODYtODI5YS0yM2QzNmYyNzZkNTddMIICIjANBgkqhkiG9w0BAQEF
|
||||
AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
|
||||
sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
|
||||
8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
|
||||
RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
|
||||
5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
|
||||
xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
|
||||
QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
|
||||
yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
|
||||
1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
|
||||
5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
|
||||
ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
|
||||
AwEAAaOBljCBkzAJBgNVHRMEAjAAMDAGCysGAQQBkggJAUUBBCEMH1JlZCBIYXQg
|
||||
RW50ZXJwcmlzZSBMaW51eCBTZXJ2ZXIwFAYLKwYBBAGSCAkBRQIEBQwDNi4zMBcG
|
||||
CysGAQQBkggJAUUDBAgMBng4Nl82NDAlBgsrBgEEAZIICQFFBAQWDBRyaGVsLTYs
|
||||
cmhlbC02LXNlcnZlcjANBgkqhkiG9w0BAQUFAAOCAgEAJ+rOO6CNRbi9A7ptsA2w
|
||||
YrMlz6Jzif9ISOtDZCjbnpzD7timxZpRNb7KOcIBTaOlPbqTpVUWC48Nrw86gcMT
|
||||
cluS4pK+TiDQDo3/OW19RLPN8PgneQReF0ybO7Fowgld1HbIkEgVYMEt0stskixZ
|
||||
bsPsB6BjBcNZIBhFhfsgzv57GNm6ebgk3e/TGxWKOtETKFt+nZYWcWVP1XFKbTW+
|
||||
FWqNNjbG02whBG/3QHNvctHW1uCV7YSLnRcIHcY9VLkR9T15YVs+0EjtAuxr9r5K
|
||||
vNfadIdPQ3KvOeLJU0lUb8P3lo9MZmjK2fbiNKu1VVRR0olWBQmWh0DBE9DBDmJb
|
||||
ol49/pZT+YLPwUwyQWr0pYwPfwwG4IE/g9qCKK4Sm2k1sSdvTw2Sv14Azlfs+A47
|
||||
X7NDOxWSzOqiDp/xDU7qDD2aVzQ03+88kjO/EcOX3C8DCSaWU0F68LMDT0AKLpze
|
||||
wmFtxV9/DRc8RYT2vBxHU0N1eIwx7sye8S4TfWUV+zuJc043OnMJmLSWCL9jnBnL
|
||||
4BDnRT3R428YpqDC+cG2q84jNNOwkNmsLBEqx9Bp9bwFgRUaIfhdMke2seqPqI4J
|
||||
H2RKHL2oy1piDmsAaSJfn8tfiCiWZ02t2dRo12LkdJzSvgNigsxhbsF7c6BeUfcN
|
||||
wy3R78nIwAGVOgjDRH8Tzbs=
|
||||
-----END CERTIFICATE-----
|
33
puppet/rpmcache/files/RPM-GPG-KEY-redhat-release
Normal file
33
puppet/rpmcache/files/RPM-GPG-KEY-redhat-release
Normal file
@ -0,0 +1,33 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.4.13 (GNU/Linux)
|
||||
|
||||
mQINBErgSTsBEACh2A4b0O9t+vzC9VrVtL1AKvUWi9OPCjkvR7Xd8DtJxeeMZ5eF
|
||||
0HtzIG58qDRybwUe89FZprB1ffuUKzdE+HcL3FbNWSSOXVjZIersdXyH3NvnLLLF
|
||||
0DNRB2ix3bXG9Rh/RXpFsNxDp2CEMdUvbYCzE79K1EnUTVh1L0Of023FtPSZXX0c
|
||||
u7Pb5DI5lX5YeoXO6RoodrIGYJsVBQWnrWw4xNTconUfNPk0EGZtEnzvH2zyPoJh
|
||||
XGF+Ncu9XwbalnYde10OCvSWAZ5zTCpoLMTvQjWpbCdWXJzCm6G+/hx9upke546H
|
||||
5IjtYm4dTIVTnc3wvDiODgBKRzOl9rEOCIgOuGtDxRxcQkjrC+xvg5Vkqn7vBUyW
|
||||
9pHedOU+PoF3DGOM+dqv+eNKBvh9YF9ugFAQBkcG7viZgvGEMGGUpzNgN7XnS1gj
|
||||
/DPo9mZESOYnKceve2tIC87p2hqjrxOHuI7fkZYeNIcAoa83rBltFXaBDYhWAKS1
|
||||
PcXS1/7JzP0ky7d0L6Xbu/If5kqWQpKwUInXtySRkuraVfuK3Bpa+X1XecWi24JY
|
||||
HVtlNX025xx1ewVzGNCTlWn1skQN2OOoQTV4C8/qFpTW6DTWYurd4+fE0OJFJZQF
|
||||
buhfXYwmRlVOgN5i77NTIJZJQfYFj38c/Iv5vZBPokO6mffrOTv3MHWVgQARAQAB
|
||||
tDNSZWQgSGF0LCBJbmMuIChyZWxlYXNlIGtleSAyKSA8c2VjdXJpdHlAcmVkaGF0
|
||||
LmNvbT6InAQQAQIABgUCTGEUZQAKCRDurUz9SaVj2aMPA/0fQlMqU+m+wSTUMs5P
|
||||
ocFo2/KF1U5D3rySCkWJQJB4HeNsYuyJVz6VVH7fEITqulNJJE4WS029BsxjrZlF
|
||||
KAGAdI0/Xu59oX9jmb7UkR9lzJF3EFF+NlsLMI9FVZJHgMA3l4kWr7udjdxGze9U
|
||||
jTt2emJvEexByfzxMvNcLEsLTIkCNgQTAQIAIAUCSuBJOwIbAwYLCQgHAwIEFQII
|
||||
AwQWAgMBAh4BAheAAAoJEBmeL5H9Qx1RbOkP/2zlIVH9kXfKNjlUtQUsxcgpTO00
|
||||
3ehzjl/It1Mjf5QKUoLa0Su7NiOo0eGoARdraw3V8yuy4p5zrUuXY1+8mOQsoO+B
|
||||
UiHuQztqyU1hU4/oFN8L8knv+5/PdRmbJWIf9YOX4Bh2CTcmoIg7nDmvKsL0jIHN
|
||||
i/abQephtZ+mFje4fDm6fed0sly7z4EY/kX441AQaX4NEfnwiX0mncfBtFrt2+Q+
|
||||
ASF8VH7WEj4G21rYLsTT/Y0rMLFnDsvHc8FFxT3ZgrJoSKF/L9pApkIC7J8qIy+y
|
||||
bOz7imghfsj01AImnIQgZ8g2hntXGofBGf93mbDYxlMmNvNJ/5Sb1gnIDSIQTIPq
|
||||
qOuJZBFu7GlBeaUAluHyiRniBtUW/UXwzMr7hHxW9YnRfGC2KRKjvZ8ePCFrswCO
|
||||
oWc6rp6jp8QL/vmDc0saG3lV2ka4eTS9t0Q0cwLzBL317mpcY0O553eGVNq8MyUQ
|
||||
AeXfirYf2dqRMZEXkqIlR82HcNVEaGDxwwi2LbWeOJGHuDIUjY5xwBNjtsFKvv0m
|
||||
G43B6Ue7EusIWljtXbk4WS2XXmNklozG5AGph0GBJrLYbRToPX7tWxa5+nN38BvH
|
||||
X9zeiL1lom9bbaQCCCp3N0DbtRRiNa/HjbD2Z6cnCH/SN5BxN5whR3R3SsVzD9zW
|
||||
m+AwyX9DvfLMqApj
|
||||
=SsXO
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
114
puppet/rpmcache/files/req-fuel-rhel.txt
Normal file
114
puppet/rpmcache/files/req-fuel-rhel.txt
Normal file
@ -0,0 +1,114 @@
|
||||
GeoIP-1.4.8-1.el6.x86_64.rpm
|
||||
MySQL-client-5.5.28-6.x86_64.rpm
|
||||
MySQL-client-wsrep-5.5.28_wsrep_23.7-12.x86_64.rpm
|
||||
MySQL-python-1.2.3-0.3.c1.2.el6.x86_64.rpm
|
||||
MySQL-server-5.5.28-6.x86_64.rpm
|
||||
MySQL-server-wsrep-5.5.28_wsrep_23.7-12.x86_64.rpm
|
||||
MySQL-shared-5.5.28-6.x86_64.rpm
|
||||
MySQL-shared-wsrep-5.5.28_wsrep_23.7-12.x86_64.rpm
|
||||
cirros-testvm-0.3.0-3.x86_64.rpm
|
||||
cobbler-2.2.3-2.el6.noarch.rpm
|
||||
cobbler-web-2.2.3-2.el6.noarch.rpm
|
||||
crmsh-1.2.5-55.2.x86_64.rpm
|
||||
erlang-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-appmon-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-asn1-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-common_test-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-compiler-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-cosEvent-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-cosEventDomain-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-cosFileTransfer-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-cosNotification-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-cosProperty-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-cosTime-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-cosTransactions-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-crypto-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-debugger-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-dialyzer-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-diameter-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-docbuilder-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-edoc-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-erl_docgen-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-erl_interface-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-erts-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-et-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-eunit-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-examples-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-gs-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-hipe-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-ic-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-inets-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-inviso-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-jinterface-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-kernel-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-megaco-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-mnesia-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-observer-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-odbc-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-orber-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-os_mon-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-otp_mibs-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-parsetools-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-percept-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-pman-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-public_key-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-reltool-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-runtime_tools-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-sasl-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-snmp-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-ssh-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-ssl-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-stdlib-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-syntax_tools-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-test_server-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-toolbar-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-tools-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-tv-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-typer-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-webtool-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-wx-R14B-04.8.el6.x86_64.rpm
|
||||
erlang-xmerl-R14B-04.8.el6.x86_64.rpm
|
||||
euca2ools-2.1.1-2.el6.noarch.rpm
|
||||
fence-agents-3.1.5-25.el6_4.2.x86_64.rpm
|
||||
fence-virt-0.2.3-13.el6.x86_64.rpm
|
||||
galera-23.2.2-1.rhel5.x86_64.rpm
|
||||
keepalived-1.2.7-3.el6.x86_64.rpm
|
||||
mcollective-2.3.1-2.el6.noarch.rpm
|
||||
mcollective-2.3.1-2.el6.src.rpm
|
||||
mcollective-client-2.3.1-2.el6.noarch.rpm
|
||||
mcollective-common-2.3.1-2.el6.noarch.rpm
|
||||
nailgun-agent-0.1.0-1.x86_64.rpm
|
||||
nailgun-mcagents-0.1.0-1.x86_64.rpm
|
||||
nailgun-net-check-0.0.2-1.x86_64.rpm
|
||||
nginx-1.0.15-4.el6.x86_64.rpm
|
||||
pssh-2.3.1-15.2.x86_64.rpm
|
||||
puppet-2.7.19-1.el6.noarch.rpm
|
||||
puppet-server-2.7.19-1.el6.noarch.rpm
|
||||
puppetdb-1.2.0-1.el6.noarch.rpm
|
||||
puppetdb-terminus-1.2.0-1.el6.noarch.rpm
|
||||
python-amqp-1.2.0-6.el6.noarch.rpm
|
||||
python-amqplib-1.0.2-1.el6.noarch.rpm
|
||||
python-anyjson-0.3.3-2.el6.noarch.rpm
|
||||
python-importlib-1.0.2-1.el6.noarch.rpm
|
||||
python-kombu-2.4.7-2.el6.noarch.rpm
|
||||
python-meld3-0.6.7-1.el6.x86_64.rpm
|
||||
python-ordereddict-1.1-2.el6.noarch.rpm
|
||||
python-pip-0.8-1.el6.noarch.rpm
|
||||
python-virtualenv-1.7.2-1.el6.noarch.rpm
|
||||
rabbitmq-server-2.8.7-2.el6.noarch.rpm
|
||||
ruby-ri-1.8.7.352-10.el6_4.x86_64.rpm
|
||||
rubygem-daemons-1.0.10-2.el6.noarch.rpm
|
||||
rubygem-fastthread-1.0.7-2.el6.x86_64.rpm
|
||||
rubygem-gem_plugin-0.2.3-3.el6.noarch.rpm
|
||||
rubygem-mongrel-1.1.5-3.el6.x86_64.rpm
|
||||
rubygem-rake-0.8.7-2.1.el6.noarch.rpm
|
||||
rubygem-stomp-1.2.8-1.el6.noarch.rpm
|
||||
rubygems-1.3.7-1.el6.noarch.rpm
|
||||
scapy-2.0.0.10-5.el6.noarch.rpm
|
||||
socat-1.7.2.1-1.el6.x86_64.rpm
|
||||
supervisor-3.0a12-0.12.el6.noarch.rpm
|
||||
wxBase-2.8.12-2.el6.x86_64.rpm
|
||||
wxGTK-2.8.12-2.el6.x86_64.rpm
|
||||
wxGTK-gl-2.8.12-2.el6.x86_64.rpm
|
||||
xfsprogs-3.1.1-10.el6.i686.rpm
|
||||
xfsprogs-3.1.1-10.el6.x86_64.rpm
|
147
puppet/rpmcache/files/required-rpms.txt
Normal file
147
puppet/rpmcache/files/required-rpms.txt
Normal file
@ -0,0 +1,147 @@
|
||||
Django14
|
||||
MySQL-python
|
||||
SDL
|
||||
atk
|
||||
authconfig
|
||||
avahi
|
||||
bind-utils
|
||||
bridge-utils
|
||||
btrfs-progs
|
||||
cairo
|
||||
cifs-utils
|
||||
cluster-glue-libs
|
||||
clusterlib
|
||||
cman
|
||||
cobbler
|
||||
cobbler-web
|
||||
corosync
|
||||
cpp
|
||||
crmsh
|
||||
cronie
|
||||
cronie-noanacron
|
||||
crontabs
|
||||
cups-libs
|
||||
curl
|
||||
device-mapper
|
||||
device-mapper-libs
|
||||
dhclient
|
||||
dmidecode
|
||||
dnsmasq-utils
|
||||
e2fsprogs
|
||||
euca2ools
|
||||
fence-agents
|
||||
fontconfig
|
||||
freetype
|
||||
gcc
|
||||
gcc-c++
|
||||
gtk2
|
||||
haproxy
|
||||
hicolor-icon-theme
|
||||
httpd
|
||||
iproute
|
||||
iproute-doc
|
||||
jasper-libs
|
||||
keepalived
|
||||
kernel-devel
|
||||
kernel-headers
|
||||
libXcomposite
|
||||
libXcursor
|
||||
libXdamage
|
||||
libXfixes
|
||||
libXft
|
||||
libXinerama
|
||||
libXrandr
|
||||
libXrender
|
||||
libXxf86vm
|
||||
libpng
|
||||
librelp
|
||||
libthai
|
||||
libtiff
|
||||
lokkit
|
||||
make
|
||||
man
|
||||
memcached
|
||||
mesa-libGL
|
||||
mesa-libGLU
|
||||
mlocate
|
||||
mpfr
|
||||
mysql
|
||||
mysql-libs
|
||||
mysql-server
|
||||
novnc
|
||||
ntp
|
||||
numpy
|
||||
openais
|
||||
openaislib
|
||||
openssh-clients
|
||||
openssh-server
|
||||
openssl-devel
|
||||
openssl098e
|
||||
openstack-cinder
|
||||
openstack-dashboard
|
||||
openstack-glance
|
||||
openstack-keystone
|
||||
openstack-nova
|
||||
openstack-nova-novncproxy
|
||||
openstack-quantum
|
||||
openstack-quantum-openvswitch
|
||||
openstack-selinux
|
||||
openstack-swift
|
||||
openstack-swift-account
|
||||
openstack-swift-container
|
||||
openstack-swift-object
|
||||
openstack-swift-proxy
|
||||
openstack-utils
|
||||
openvswitch
|
||||
openvswitch-controller
|
||||
pacemaker
|
||||
pango
|
||||
patch
|
||||
policycoreutils
|
||||
postgresql
|
||||
postgresql-devel
|
||||
postgresql-libs
|
||||
postgresql-server
|
||||
puppet
|
||||
python-amqp
|
||||
python-anyjson
|
||||
python-argparse
|
||||
python-cinder
|
||||
python-devel
|
||||
python-keystone
|
||||
python-novaclient
|
||||
python-oslo-config
|
||||
python-quantumclient
|
||||
python-rhsm
|
||||
python-setuptools
|
||||
python-six
|
||||
python-stevedore
|
||||
python-webob
|
||||
python-webob1.0
|
||||
python-webob1.2
|
||||
qpid-cpp-client
|
||||
qpid-cpp-server
|
||||
qpid-cpp-server-cluster
|
||||
redhat-release-server
|
||||
redhat-rpm-config
|
||||
resource-agents
|
||||
rhel-boot-image
|
||||
rhn_register
|
||||
rsyslog-relp
|
||||
ruby
|
||||
ruby-devel
|
||||
ruby-irb
|
||||
ruby-rdoc
|
||||
rubygems
|
||||
screen
|
||||
subscription-manager
|
||||
system-config-firewall-base
|
||||
tk
|
||||
unixODBC
|
||||
unzip
|
||||
usermode
|
||||
wget
|
||||
wxBase
|
||||
wxGTK
|
||||
wxGTK-gl
|
||||
yum-utils
|
125
puppet/rpmcache/manifests/init.pp
Normal file
125
puppet/rpmcache/manifests/init.pp
Normal file
@ -0,0 +1,125 @@
|
||||
class rpmcache ( $releasever, $pkgdir,
|
||||
$rh_username, $rh_password, $rh_base_channels, $rh_openstack_channel,
|
||||
$use_satellite = false, $sat_hostname = false, $activation_key = false) {
|
||||
|
||||
Exec {path => '/usr/bin:/bin:/usr/sbin:/sbin'}
|
||||
package { "yum-utils":
|
||||
ensure => "latest"
|
||||
} ->
|
||||
package { "subscription-manager":
|
||||
ensure => "latest"
|
||||
} ->
|
||||
|
||||
file { '/etc/pki/product':
|
||||
ensure => directory,
|
||||
} ->
|
||||
file { '/etc/pki/product/69.pem':
|
||||
ensure => present,
|
||||
source => 'puppet:///modules/rpmcache/69.pem',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => 0644,
|
||||
} ->
|
||||
|
||||
file { '/etc/pki/product/191.pem':
|
||||
ensure => present,
|
||||
source => 'puppet:///modules/rpmcache/191.pem',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => 0644,
|
||||
} ->
|
||||
|
||||
file { '/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release':
|
||||
ensure => present,
|
||||
source => 'puppet:///modules/rpmcache/RPM-GPG-KEY-redhat-release',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => 0644,
|
||||
} ->
|
||||
|
||||
file { '/etc/nailgun/':
|
||||
ensure => directory,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755'
|
||||
} ->
|
||||
file { '/etc/nailgun/required-rpms.txt':
|
||||
ensure => present,
|
||||
source => 'puppet:///modules/rpmcache/required-rpms.txt',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => 0644,
|
||||
require => File['/etc/nailgun/']
|
||||
} ->
|
||||
file { '/usr/sbin/build_rpm_cache':
|
||||
content => template('rpmcache/build_rpm_cache.erb'),
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => 0755,
|
||||
} ->
|
||||
exec { 'build_rpm_cache':
|
||||
command => '/usr/sbin/build_rpm_cache',
|
||||
require => File['/usr/sbin/build_rpm_cache'],
|
||||
logoutput => true,
|
||||
timeout => 0
|
||||
} ->
|
||||
cobbler_distro { "rhel-x86_64":
|
||||
kernel => "${pkgdir}/isolinux/vmlinuz",
|
||||
initrd => "${pkgdir}/isolinux/initrd.img",
|
||||
arch => "x86_64",
|
||||
breed => "redhat",
|
||||
osversion => "rhel6",
|
||||
ksmeta => "tree=http://@@server@@:8080/rhel",
|
||||
} ->
|
||||
|
||||
cobbler_profile { "rhel-x86_64":
|
||||
kickstart => "/var/lib/cobbler/kickstarts/centos-x86_64.ks",
|
||||
kopts => "",
|
||||
distro => "rhel-x86_64",
|
||||
ksmeta => "redhat_register_user=${rh_username} redhat_register_password=${rh_password} redhat_management_type=cert",
|
||||
menu => true,
|
||||
require => Cobbler_distro["rhel-x86_64"],
|
||||
} ->
|
||||
exec {'rebuild-fuel-repo':
|
||||
command => "/bin/cp /var/www/nailgun/centos/fuelweb/x86_64/repodata/comps.xml ${pkgdir}/repodata/comps.xml; /usr/bin/createrepo -g ${pkgdir}/repodata/comps.xml ${pkgdir}",
|
||||
}->
|
||||
exec {'check-rpm':
|
||||
command => "/bin/find ${pkgdir} -name '*.rpm' | /usr/bin/xargs /bin/rpm --checksig | grep 'MD5 NOT OK'",
|
||||
logoutput => true,
|
||||
returns => 1,
|
||||
}
|
||||
$hack_packages = [
|
||||
'xinetd-2.3.14-38.el6.x86_64.rpm',
|
||||
'xfsprogs-3.1.1-10.el6.x86_64.rpm',
|
||||
'qpid-cpp-server-cluster-0.14-22.el6_3.x86_64.rpm',
|
||||
'qpid-cpp-server-store-0.14-22.el6_3.x86_64.rpm',
|
||||
'qpid-tests-0.14-1.el6_2.noarch.rpm',
|
||||
'qpid-tools-0.14-6.el6_3.noarch.rpm',
|
||||
'qpid-cpp-server-ssl-0.14-22.el6_3.x86_64.rpm',
|
||||
]
|
||||
define get_hack_package (
|
||||
$base_url="http://mirror.yandex.ru/centos/6.4/os/x86_64/Packages/",
|
||||
$pkgdir=$pkgdir,
|
||||
) {
|
||||
exec {"Download_${name}":
|
||||
command => "/bin/mkdir -p ${pkgdir}/fuel/Packages; /usr/bin/wget -c -P ${pkgdir}/fuel/Packages ${base_url}/${name}",
|
||||
logoutput => true,
|
||||
before => Exec['rebuild-fuel-repo'],
|
||||
}
|
||||
}
|
||||
get_hack_package{$hack_packages:}
|
||||
|
||||
file { '/etc/nailgun/req-fuel-rhel.txt':
|
||||
ensure => present,
|
||||
source => 'puppet:///modules/rpmcache/req-fuel-rhel.txt',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => 0644,
|
||||
require => File['/etc/nailgun/']
|
||||
} ->
|
||||
exec {'fuel-rpms':
|
||||
command => "/bin/mkdir -p ${pkgdir}/fuel/Packages; /bin/cat /etc/nailgun/req-fuel-rhel.txt | /usr/bin/xargs -n 1 -I xxx /bin/cp /var/www/nailgun/centos/fuelweb/x86_64/Packages/xxx /var/www/nailgun/rhel/fuel/Packages/",
|
||||
logoutput => true,
|
||||
before => Exec['rebuild-fuel-repo'],
|
||||
}
|
||||
}
|
85
puppet/rpmcache/templates/build_rpm_cache.erb
Normal file
85
puppet/rpmcache/templates/build_rpm_cache.erb
Normal file
@ -0,0 +1,85 @@
|
||||
#!/bin/bash -x
|
||||
#Register
|
||||
subscription-manager register "--username=<%= rh_username %>" "--password=<%= rh_password %>" --autosubscribe --force
|
||||
|
||||
#Attach to RHOS product
|
||||
poolid="$(subscription-manager list --available | grep -A2 "Red Hat OpenStack" | tail -1 | cut -c15-)"
|
||||
subscription-manager attach "--pool=$poolid"
|
||||
|
||||
#Enable channels
|
||||
for channel in <%= rh_base_channels %> <%= rh_openstack_channel %>; do
|
||||
yum-config-manager --enable "$channel"
|
||||
done
|
||||
|
||||
#Tell RHSM to let CentOS accept packages from Red Hat
|
||||
|
||||
#Generate /etc/yum.repos.d/redhat.repo
|
||||
yum --releasever=<%= releasever %> repolist || :
|
||||
|
||||
<% if use_satellite %>
|
||||
#Save centos-release RPM so it can be reinstalled later
|
||||
mkdir -p /root/centos-release
|
||||
yumdownloader --destdir /root/centos-release --disablerepo='*rhel*' /root/centos-release/
|
||||
if ! [ -f /root/centos-release/centos-release*.rpm ];then
|
||||
echo "Unable to download centos-release RPM. Aborting."
|
||||
exit 1
|
||||
fi
|
||||
#Download RHN packages needed for RHN Satellite registration
|
||||
rhnpackages="m2crypto rhn-check rhn-client-tools rhnlib rhnsd rhn-setup yum-rhn-plugin redhat-release-sever"
|
||||
mkdir -p /root/rhnpackages
|
||||
yum-config-manager --enable rhel-6-server-rpms
|
||||
yumdownloader --releasever=<%= releasever %> --disablerepo='*' --enablerepo='*rhel*' --resolve --destdir /root/rhnpackages $rhnpackages
|
||||
rpm -ivh --force /root/rhnpackages/*.rpm
|
||||
|
||||
|
||||
#Download RHN Satellite GPG key
|
||||
mkdir -p /etc/sysconfig/rhn
|
||||
wget "<%= sat_hostname %>/pub/RHN-ORG-TRUSTED-SSL-CERT" -O /etc/sysconfig/rhn/RHNS-CA-CERT
|
||||
if [ "$(file -b /etc/sysconfig/rhn/RHNS-CA-CERT)" != "PGP public key block" ];then
|
||||
echo "GPG Key download failed. Looking for URL <%= sat_hostname %>/pub/RHN-ORG-TRUSTED-SSL-CERT. Cannot proceed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#Disable subscription-manager
|
||||
subscription-manager unregister
|
||||
rm -rf /etc/yum.repos.d/redhat.repo
|
||||
|
||||
#Run registration
|
||||
rhnreg_ks "--serverUrl=http://<%= sat_hostname %>/XMLRPC" --profilename=fuelweb "--activation-key=<%= activation_key %>" --sslCACert=/etc/sysconfig/rhn/RHNS-CA-CERT --nopackages --nohardware --novirtinfo --norhnsd --force
|
||||
|
||||
if [ $? -ne 0 ];then
|
||||
echo "Registration failed. Aborting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
<% end %>
|
||||
|
||||
#Download packages
|
||||
mkdir -p <%= pkgdir %>/repodata <%= pkgdir %>/Packages
|
||||
#yumdownloader --releasever=<%= releasever %> --disablerepo='*' --enablerepo='rhel*' --resolve --destdir "<%= pkgdir %>/Packages" $(cat /etc/nailgun/required-rpms.txt | xargs echo -en)
|
||||
|
||||
yum-config-manager --disable 'nailgun' &> /dev/null
|
||||
yum-config-manager --disable 'centos' &> /dev/null
|
||||
echo 6Server > /etc/yum/vars/releasever
|
||||
yum --releasever=<%= releasever %> makecache
|
||||
repotrack -a x86_64 -p "<%= pkgdir %>/Packages" $(cat /etc/nailgun/required-rpms.txt | xargs echo -en)
|
||||
rm -f /etc/yum/vars/releasever
|
||||
yum-config-manager --enable 'nailgun' &> /dev/null
|
||||
yum-config-manager --enable 'centos' &> /dev/null
|
||||
|
||||
#Run again just for good measure
|
||||
#yumdownloader --releasever=<%= releasever %> --disablerepo='*' --enablerepo='rhel*' --resolve --destdir "<%= pkgdir %>/Packages" $(cat /etc/nailgun/required-rpms.txt | xargs echo -en)
|
||||
|
||||
#Disable all RHEL repos so you don't accidentally update and break master node
|
||||
yum-config-manager --disable '*rhel*' &> /dev/null
|
||||
|
||||
#Purge Django 1.3 RPM
|
||||
rm -f <%= pkgdir %>/Packages/Django-1.3*
|
||||
|
||||
rpm -i /var/www/nailgun/rhel/Packages/rhel-boot-image-6.4-20130130.0.el6ost.noarch.rpm
|
||||
mkdir -p /mnt/rhel_iso
|
||||
mount -o loop /usr/share/rhel-boot-image/rhel-boot-image-6.4-20130130.0.el6ost.iso /mnt/rhel_iso
|
||||
cp -R /mnt/rhel_iso/* <%= pkgdir %>
|
||||
umount /mnt/rhel_iso
|
||||
rpm -e rhel-boot-image-6.4-20130130.0.el6ost.noarch
|
@ -111,3 +111,13 @@ xfsprogs-3.1.1-10.el6
|
||||
xinetd-2.3.14-38.el6
|
||||
yum-3.2.29-40.el6.centos
|
||||
zlib-devel-1.2.3-29.el6
|
||||
python-dmidecode
|
||||
dbus-python
|
||||
pygobject2
|
||||
usermode
|
||||
virt-what
|
||||
python-ethtool
|
||||
libuser
|
||||
passwd
|
||||
subscription-manager-1.8.9-1.el6
|
||||
qpid-cpp-server-cluster-0.14-22.el6_3
|
||||
|
Loading…
Reference in New Issue
Block a user