Refactored procedure of local mirror creation.
This commit is contained in:
parent
9ab15380db
commit
3cd6c38470
3
.gitignore
vendored
3
.gitignore
vendored
@ -14,8 +14,7 @@
|
||||
/.vagrant
|
||||
|
||||
/build
|
||||
/mirror/eggs
|
||||
/mirror/gems
|
||||
/local_mirror
|
||||
nosetests.xml
|
||||
nailgun.log
|
||||
lock
|
||||
|
8
Makefile
8
Makefile
@ -3,7 +3,7 @@ BUILD_DIR:=build
|
||||
|
||||
MODULES=gnupg bootstrap nailgun test mirror iso packages/rpm naily astute
|
||||
|
||||
.PHONY: all clean test test-unit help mirror FORCE
|
||||
.PHONY: all clean test test-unit help mirror FORCE deep_clean
|
||||
|
||||
help:
|
||||
@echo 'Available targets:'
|
||||
@ -17,6 +17,8 @@ help:
|
||||
@echo ' test-cookbooks - run cookbooks tests'
|
||||
@echo ' clean-integration-test - clean integration test environment'
|
||||
@echo ' clean-cookbooks-test - clean cookbooks test environment'
|
||||
@echo ' clean - remove build directory and resetting .done flags'
|
||||
@echo ' deep_clean - clean + removing $(LOCAL_MIRROR) directory'
|
||||
|
||||
all:
|
||||
|
||||
@ -29,11 +31,15 @@ FORCE:
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILD_DIR)
|
||||
find $(LOCAL_MIRROR) -name *.done -exec rm {} \;
|
||||
deep_clean: clean
|
||||
rm -rf $(LOCAL_MIRROR)
|
||||
|
||||
assert-variable=$(if $($1),,$(error Variable $1 need to be defined))
|
||||
find-files=$(shell test -d $1 && cd $1 && find * -type f 2> /dev/null)
|
||||
|
||||
include config.mk
|
||||
include repo.mk
|
||||
|
||||
define include-module-template
|
||||
MODULE_SOURCE_DIR:=$1
|
||||
|
@ -17,7 +17,7 @@ NAILGUN_DIR:=$(INITRAM_DIR)/opt/nailgun
|
||||
|
||||
RPM:=sudo rpm --root=`readlink -f $(INITRAM_DIR)`
|
||||
YUM:=sudo yum --installroot=`readlink -f $(INITRAM_DIR)` -y --nogpgcheck
|
||||
RPM_DIR=$(CENTOS_REPO_DIR)Packages
|
||||
RPM_DIR=$(CENTOS_REPO_DIR)
|
||||
CHROOT_CMD:=sudo chroot $(INITRAM_DIR)
|
||||
|
||||
clean: clean-bootstrap
|
||||
@ -25,10 +25,8 @@ clean: clean-bootstrap
|
||||
clean-bootstrap:
|
||||
sudo rm -rf $(INITRAM_DIR)
|
||||
|
||||
|
||||
bootstrap: $(LINUX) $(INITRAM_FS)
|
||||
|
||||
|
||||
chroot-bootstrap: $(NAILGUN_DIR)/system_type $(INITRAM_DIR)/init
|
||||
sudo mkdir -p $(INITRAM_DIR)/proc $(INITRAM_DIR)/dev
|
||||
mount | grep $(INITRAM_DIR)/proc || sudo mount --bind /proc $(INITRAM_DIR)/proc
|
||||
@ -45,7 +43,7 @@ $(INITRAM_FS): $(NAILGUN_DIR)/system_type
|
||||
--format='newc' | gzip -9 > `readlink -f $(INITRAM_FS)`"
|
||||
|
||||
|
||||
$(LINUX): $(BUILD_DIR)/packages/centos/cache.done
|
||||
$(LINUX): $(LOCAL_MIRROR)/cache.done
|
||||
mkdir -p $(BS_DIR)
|
||||
find $(RPM_DIR) -name 'kernel-2.*' | xargs rpm2cpio | (cd $(BS_DIR)/; cpio -imd './boot/vmlinuz*')
|
||||
mv $(BS_DIR)/boot/vmlinuz* $(LINUX)
|
||||
@ -65,7 +63,7 @@ $(NAILGUN_DIR)/system_type: $(INITRAM_DIR)/init
|
||||
sudo sh -c "echo bootstrap > $(NAILGUN_DIR)/system_type"
|
||||
|
||||
|
||||
$(INITRAM_DIR)/init: $(BUILD_DIR)/packages/centos/repo.done $(INITRAM_DIR)/etc/yum.repos.d/mirror.repo
|
||||
$(INITRAM_DIR)/init: $(LOCAL_MIRROR)/repo.done $(INITRAM_DIR)/etc/yum.repos.d/mirror.repo
|
||||
sudo mkdir -p $(INITRAM_DIR)/var/lib/rpm
|
||||
$(RPM) --rebuilddb
|
||||
$(YUM) install $(YUM_PACKAGES) $(YUM_BUILD_PACKAGES)
|
||||
@ -100,7 +98,7 @@ $(INITRAM_DIR)/init: $(BUILD_DIR)/packages/centos/repo.done $(INITRAM_DIR)/etc/y
|
||||
define yum_local_repo
|
||||
[mirror]
|
||||
name=Mirantis mirror
|
||||
baseurl=file://$(shell readlink -f $(BUILD_DIR))/packages/centos/Packages
|
||||
baseurl=file://$(shell readlink -f $(RPM_DIR))/Packages
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
endef
|
||||
|
11
config.mk
11
config.mk
@ -1,5 +1,5 @@
|
||||
ifndef BOOTSTRAP_REBUILD
|
||||
BOOTSTRAP_REBUILD:=0
|
||||
BOOTSTRAP_REBUILD:=1
|
||||
endif
|
||||
|
||||
MIRROR_URL:=http://srv08-srt.srt.mirantis.net/mirror
|
||||
@ -8,17 +8,10 @@ IGNORE_MIRROR:=0
|
||||
endif
|
||||
|
||||
ifndef LOCAL_MIRROR
|
||||
LOCAL_MIRROR:=mirror
|
||||
endif
|
||||
|
||||
ifndef GOLDEN_MIRROR
|
||||
GOLDEN_MIRROR:=srv08-srt.srt.mirantis.net:/var/lib/jenkins/mirror
|
||||
LOCAL_MIRROR:=local_mirror
|
||||
endif
|
||||
|
||||
iso.path:=$(BUILD_DIR)/iso/nailgun-centos-6.3-amd64.iso
|
||||
image.centos.url=http://mc0n1-srt.srt.mirantis.net/centos63.qcow2
|
||||
|
||||
centos.packages=$(BUILD_DIR)/packages/centos
|
||||
|
||||
bootstrap.linux:=$(BUILD_DIR)/bootstrap/linux
|
||||
bootstrap.initrd:=$(BUILD_DIR)/bootstrap/initrd.gz
|
||||
|
@ -6,6 +6,7 @@ lang en_US.UTF-8
|
||||
keyboard us
|
||||
rootpw r00tme
|
||||
timezone --utc America/New_York
|
||||
zerombr
|
||||
bootloader --location=mbr
|
||||
clearpart --all --initlabel
|
||||
autopart
|
||||
|
@ -1,21 +1,9 @@
|
||||
/:=$(BUILD_DIR)/iso/
|
||||
|
||||
CENTOS_63_RELEASE:=6.3
|
||||
CENTOS_63_ARCH:=x86_64
|
||||
CENTOS_63_MIRROR:=http://mirror.yandex.ru/centos/$(CENTOS_63_RELEASE)/os/$(CENTOS_63_ARCH)
|
||||
CENTOS_63_NETINSTALL:=http://mirror.yandex.ru/centos/$(CENTOS_63_RELEASE)/isos/$(CENTOS_63_ARCH)
|
||||
CENTOS_63_GPG:=http://mirror.yandex.ru/centos
|
||||
|
||||
.PHONY: iso
|
||||
all: iso
|
||||
|
||||
ISOROOT:=$/isoroot
|
||||
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
|
||||
BOOTSTRAP_FILES:=initramfs.img linux
|
||||
GPGFILES:=RPM-GPG-KEY-CentOS-6 RPM-GPG-KEY-CentOS-Debug-6 RPM-GPG-KEY-CentOS-Security-6 RPM-GPG-KEY-CentOS-Testing-6
|
||||
NETINSTALL_ISO:=CentOS-6.3-x86_64-netinstall-EFI.iso
|
||||
|
||||
RABBITMQ_VERSION:=2.6.1
|
||||
RABBITMQ_PLUGINS:=amqp_client-$(RABBITMQ_VERSION).ez rabbitmq_stomp-$(RABBITMQ_VERSION).ez
|
||||
@ -28,28 +16,28 @@ ASTUTE_VERSION:=0.1
|
||||
iso: $/nailgun-centos-6.3-amd64.iso
|
||||
|
||||
$/isoroot-centos.done: \
|
||||
$(BUILD_DIR)/packages/rpm/rpm.done \
|
||||
$(centos.packages)/cache.done \
|
||||
$(BUILD_DIR)/rpm/rpm.done \
|
||||
$(LOCAL_MIRROR)/cache.done \
|
||||
$(ISOROOT)/repodata/comps.xml \
|
||||
$(ISOROOT)/.discinfo \
|
||||
$(ISOROOT)/.treeinfo
|
||||
mkdir -p $(ISOROOT)/Packages
|
||||
find $(centos.packages)/Packages -name '*.rpm' -exec cp -n {} $(ISOROOT)/Packages \;
|
||||
find $(BUILD_DIR)/packages/rpm/RPMS -name '*.rpm' -exec cp -n {} $(ISOROOT)/Packages \;
|
||||
find $(CENTOS_REPO_DIR)Packages -name '*.rpm' -exec cp -n {} $(ISOROOT)/Packages \;
|
||||
find $(BUILD_DIR)/rpm/RPMS -name '*.rpm' -exec cp -n {} $(ISOROOT)/Packages \;
|
||||
createrepo -g `readlink -f "$(ISOROOT)/repodata/comps.xml"` -u media://`head -1 $(ISOROOT)/.discinfo` $(ISOROOT)
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(ISOROOT)/repodata/comps.xml: $(CENTOS_REPO_DIR)comps.xml ; $(ACTION.COPY)
|
||||
$(ISOROOT)/repodata/comps.xml: $(CENTOS_REPO_DIR)/repodata/comps.xml ; $(ACTION.COPY)
|
||||
|
||||
$(addprefix $(ISOROOT)/isolinux/,$(ISOLINUX_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(CENTOS_63_MIRROR)/isolinux/$(@F)
|
||||
cp $(CENTOS_REPO_DIR)/isolinux/$(@F) $(@D)
|
||||
|
||||
$(ISOROOT)/isolinux/isolinux.cfg: iso/isolinux/isolinux.cfg ; $(ACTION.COPY)
|
||||
|
||||
$(ISOROOT)/netinstall/centos.iso:
|
||||
$(ISOROOT)/netinstall/$(NETINSTALL_ISO): $(CENTOS_ISO_DIR)/$(NETINSTALL_ISO)
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(CENTOS_63_NETINSTALL)/$(NETINSTALL_ISO)
|
||||
cp $(CENTOS_ISO_DIR)/$(@F) $(@D)
|
||||
|
||||
$/isoroot-isolinux.done: \
|
||||
$(addprefix $(ISOROOT)/isolinux/,$(ISOLINUX_FILES)) \
|
||||
@ -58,18 +46,18 @@ $/isoroot-isolinux.done: \
|
||||
|
||||
$(addprefix $(ISOROOT)/images/,$(IMAGES_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(CENTOS_63_MIRROR)/images/$(@F)
|
||||
cp $(CENTOS_REPO_DIR)images/$(@F) $(@D)
|
||||
|
||||
$(addprefix $(ISOROOT)/EFI/BOOT/,$(EFI_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(CENTOS_63_MIRROR)/EFI/BOOT/$(@F)
|
||||
cp $(CENTOS_REPO_DIR)EFI/BOOT/$(@F) $(@D)
|
||||
|
||||
$(addprefix $(ISOROOT)/rabbitmq-plugins/,$(RABBITMQ_PLUGINS)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(RABBITMQ_PLUGINS_URL)/$(@F)
|
||||
|
||||
$/isoroot-prepare.done:\
|
||||
$(ISOROOT)/netinstall/centos.iso \
|
||||
$(ISOROOT)/netinstall/$(NETINSTALL_ISO) \
|
||||
$(addprefix $(ISOROOT)/images/,$(IMAGES_FILES)) \
|
||||
$(addprefix $(ISOROOT)/EFI/BOOT/,$(EFI_FILES)) \
|
||||
$(addprefix $(ISOROOT)/,$(GPGFILES)) \
|
||||
@ -77,7 +65,7 @@ $/isoroot-prepare.done:\
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(addprefix $(ISOROOT)/,$(GPGFILES)):
|
||||
wget -O $@ $(CENTOS_63_GPG)/$(@F)
|
||||
wget -O $@ $(CENTOS_GPG)/$(@F)
|
||||
|
||||
$/isoroot-bootstrap.done: \
|
||||
$(ISOROOT)/bootstrap/bootstrap.rsa \
|
||||
@ -105,13 +93,13 @@ $(ISOROOT)/eggs/%: $(LOCAL_MIRROR)/eggs/% ; $(ACTION.COPY)
|
||||
$(ISOROOT)/gems/gems/%: $(LOCAL_MIRROR)/gems/% ; $(ACTION.COPY)
|
||||
|
||||
$/isoroot-eggs.done: \
|
||||
$(CENTOS_REPO_DIR)eggs-gems.done \
|
||||
$(LOCAL_MIRROR)/eggs-gems.done \
|
||||
$(addprefix $(ISOROOT)/eggs/,$(call find-files,$(LOCAL_MIRROR)/eggs)) \
|
||||
$(ISOROOT)/eggs/Nailgun-$(NAILGUN_VERSION).tar.gz
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$/isoroot-gems.done: \
|
||||
$(CENTOS_REPO_DIR)eggs-gems.done \
|
||||
$(LOCAL_MIRROR)/eggs-gems.done \
|
||||
$(BUILD_DIR)/gems/naily-$(NAILY_VERSION).gem \
|
||||
$(ISOROOT)/gems/gems/naily-$(NAILY_VERSION).gem \
|
||||
$(ISOROOT)/gems/gems/astute-$(ASTUTE_VERSION).gem \
|
||||
|
142
mirror/module.mk
142
mirror/module.mk
@ -1,17 +1,8 @@
|
||||
/:=$(BUILD_DIR)/packages/centos/
|
||||
/:=$(LOCAL_MIRROR)/
|
||||
|
||||
$/%: /:=$/
|
||||
|
||||
REPOMIRROR:=$(MIRROR_URL)/centos
|
||||
CENTOSMIRROR:=http://mirror.yandex.ru/centos
|
||||
EPELMIRROR:=http://mirror.yandex.ru/epel
|
||||
RPMFORGEMIRROR:=http://apt.sw.be/redhat
|
||||
|
||||
ifdef MIRROR_DIR
|
||||
CENTOS_REPO_DIR:=$(MIRROR_DIR)/centos/
|
||||
else
|
||||
CENTOS_REPO_DIR:=$/
|
||||
endif
|
||||
METADATA_FILES:=repomd.xml comps.xml filelists.xml.gz primary.xml.gz other.xml.gz
|
||||
|
||||
CENTOSEXTRA_PACKAGES:=$(shell grep -v ^\\s*\# requirements-rpm.txt)
|
||||
CENTOSRPMFORGE_PACKAGES:=qemu
|
||||
@ -44,7 +35,7 @@ $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf:
|
||||
|
||||
define yum_mirror_repo
|
||||
[mirror]
|
||||
name=CentOS $(CENTOS_63_RELEASE) - Base
|
||||
name=CentOS $(CENTOS_RELEASE) - Base
|
||||
baseurl=$(REPOMIRROR)/Packages
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
@ -52,44 +43,44 @@ endef
|
||||
|
||||
define yum_real_repo
|
||||
[base]
|
||||
name=CentOS-$(CENTOS_63_RELEASE) - Base
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_63_RELEASE)&arch=$(CENTOS_63_ARCH)&repo=os
|
||||
baseurl=$(CENTOSMIRROR)/$(CENTOS_63_RELEASE)/os/$(CENTOS_63_ARCH)
|
||||
name=CentOS-$(CENTOS_RELEASE) - Base
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_RELEASE)&arch=$(CENTOS_ARCH)&repo=os
|
||||
baseurl=$(CENTOSMIRROR)/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
|
||||
[updates]
|
||||
name=CentOS-$(CENTOS_63_RELEASE) - Updates
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_63_RELEASE)&arch=$(CENTOS_63_ARCH)&repo=updates
|
||||
baseurl=$(CENTOSMIRROR)/$(CENTOS_63_RELEASE)/updates/$(CENTOS_63_ARCH)
|
||||
name=CentOS-$(CENTOS_RELEASE) - Updates
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_RELEASE)&arch=$(CENTOS_ARCH)&repo=updates
|
||||
baseurl=$(CENTOSMIRROR)/$(CENTOS_RELEASE)/updates/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
|
||||
[extras]
|
||||
name=CentOS-$(CENTOS_63_RELEASE) - Extras
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_63_RELEASE)&arch=$(CENTOS_63_ARCH)&repo=extras
|
||||
baseurl=$(CENTOSMIRROR)/$(CENTOS_63_RELEASE)/extras/$(CENTOS_63_ARCH)
|
||||
name=CentOS-$(CENTOS_RELEASE) - Extras
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_RELEASE)&arch=$(CENTOS_ARCH)&repo=extras
|
||||
baseurl=$(CENTOSMIRROR)/$(CENTOS_RELEASE)/extras/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
|
||||
[centosplus]
|
||||
name=CentOS-$(CENTOS_63_RELEASE) - Plus
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_63_RELEASE)&arch=$(CENTOS_63_ARCH)&repo=centosplus
|
||||
baseurl=$(CENTOSMIRROR)/$(CENTOS_63_RELEASE)/centosplus/$(CENTOS_63_ARCH)
|
||||
name=CentOS-$(CENTOS_RELEASE) - Plus
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_RELEASE)&arch=$(CENTOS_ARCH)&repo=centosplus
|
||||
baseurl=$(CENTOSMIRROR)/$(CENTOS_RELEASE)/centosplus/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
|
||||
[contrib]
|
||||
name=CentOS-$(CENTOS_63_RELEASE) - Contrib
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_63_RELEASE)&arch=$(CENTOS_63_ARCH)&repo=contrib
|
||||
baseurl=$(CENTOSMIRROR)/$(CENTOS_63_RELEASE)/contrib/$(CENTOS_63_ARCH)
|
||||
name=CentOS-$(CENTOS_RELEASE) - Contrib
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_RELEASE)&arch=$(CENTOS_ARCH)&repo=contrib
|
||||
baseurl=$(CENTOSMIRROR)/$(CENTOS_RELEASE)/contrib/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
|
||||
[epel]
|
||||
name=Extra Packages for Enterprise Linux $(CENTOS_63_MAJOR) - $(CENTOS_63_ARCH)
|
||||
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-$(CENTOS_63_MAJOR)&arch=$(CENTOS_63_ARCH)
|
||||
baseurl=$(EPELMIRROR)/$(CENTOS_63_MAJOR)/$(CENTOS_63_ARCH)
|
||||
name=Extra Packages for Enterprise Linux $(CENTOS_MAJOR) - $(CENTOS_ARCH)
|
||||
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-$(CENTOS_MAJOR)&arch=$(CENTOS_ARCH)
|
||||
baseurl=$(EPELMIRROR)/$(CENTOS_MAJOR)/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
|
||||
@ -100,22 +91,22 @@ gpgcheck=0
|
||||
enabled=0
|
||||
|
||||
[rpmforge]
|
||||
name=RHEL $(CENTOS_63_RELEASE) - RPMforge.net - dag
|
||||
#mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge
|
||||
baseurl=$(RPMFORGEMIRROR)/el$(CENTOS_63_MAJOR)/en/$(CENTOS_63_ARCH)/rpmforge
|
||||
name=RHEL $(CENTOS_RELEASE) - RPMforge.net - dag
|
||||
#mirrorlist = http://apt.sw.be/redhat/el$(CENTOS_MAJOR)/en/mirrors-rpmforge
|
||||
baseurl=$(RPMFORGEMIRROR)/el$(CENTOS_MAJOR)/en/$(CENTOS_ARCH)/rpmforge
|
||||
gpgcheck=0
|
||||
enabled=0
|
||||
|
||||
[rpmforge-extras]
|
||||
name = RHEL $(CENTOS_63_RELEASE) - RPMforge.net - extras
|
||||
#mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge-extras
|
||||
baseurl = $(RPMFORGEMIRROR)/el$(CENTOS_63_MAJOR)/en/$(CENTOS_63_ARCH)/extras
|
||||
name = RHEL $(CENTOS_RELEASE) - RPMforge.net - extras
|
||||
#mirrorlist = http://apt.sw.be/redhat/el$(CENTOS_MAJOR)/en/mirrors-rpmforge-extras
|
||||
baseurl = $(RPMFORGEMIRROR)/el$(CENTOS_MAJOR)/en/$(CENTOS_ARCH)/extras
|
||||
gpgcheck = 0
|
||||
enabled = 0
|
||||
|
||||
[puppetlabs]
|
||||
name=Puppet Labs Packages
|
||||
baseurl=http://yum.puppetlabs.com/el/$(CENTOS_63_MAJOR)/products/$(CENTOS_63_ARCH)/
|
||||
baseurl=http://yum.puppetlabs.com/el/$(CENTOS_MAJOR)/products/$(CENTOS_ARCH)/
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=http://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs
|
||||
@ -127,49 +118,82 @@ $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).repos.d/base.repo:
|
||||
@mkdir -p $(@D)
|
||||
echo "$${contents}" > $@
|
||||
|
||||
$(CENTOS_REPO_DIR)comps.xml.gz:
|
||||
@mkdir -p $(CENTOS_REPO_DIR)
|
||||
wget -O $@ $(CENTOS_63_MIRROR)/`wget -qO- $(CENTOS_63_MIRROR)/repodata/repomd.xml | grep 'comps\.xml\.gz' | awk -F'"' '{ print $$2 }'`
|
||||
$(CENTOS_REPO_DIR)repodata/comps.xml.gz:
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(CENTOS_MIRROR)/`wget -qO- $(CENTOS_MIRROR)/repodata/repomd.xml | \
|
||||
xml2 | grep 'comps\.xml\.gz' | awk -F'=' '{ print $$2 }'`
|
||||
|
||||
$(CENTOS_REPO_DIR)comps.xml: $(CENTOS_REPO_DIR)comps.xml.gz
|
||||
gunzip -c $(CENTOS_REPO_DIR)comps.xml.gz > $@
|
||||
$(CENTOS_REPO_DIR)repodata/comps.xml: $(CENTOS_REPO_DIR)repodata/comps.xml.gz
|
||||
gunzip -c $(CENTOS_REPO_DIR)repodata/comps.xml.gz > $@
|
||||
|
||||
$(CENTOS_REPO_DIR)cache-infra.done: \
|
||||
$/cache-boot.done: \
|
||||
$(addprefix $(CENTOS_REPO_DIR)/images/,$(IMAGES_FILES)) \
|
||||
$(addprefix $(CENTOS_REPO_DIR)/EFI/BOOT/,$(EFI_FILES)) \
|
||||
$(addprefix $(CENTOS_REPO_DIR)/isolinux/,$(ISOLINUX_FILES))
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$/cache-infra.done: \
|
||||
$(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf \
|
||||
$(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).repos.d/base.repo
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(CENTOS_REPO_DIR)cache-extra.done: \
|
||||
$(CENTOS_REPO_DIR)comps.xml \
|
||||
$(CENTOS_REPO_DIR)cache-infra.done
|
||||
$/cache-extra.done: \
|
||||
$(CENTOS_REPO_DIR)repodata/comps.xml \
|
||||
$/cache-infra.done
|
||||
CENTOSMIN_PACKAGES=$(shell grep "<packagereq type='mandatory'>" $(CENTOS_REPO_DIR)comps.xml | sed -e "s/^\s*<packagereq type='mandatory'>\(.*\)<\/packagereq>\s*$$/\\1/")
|
||||
yum -c $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf clean all
|
||||
rm -rf /var/tmp/yum-$$USER-*/
|
||||
ifeq ($(IGNORE_MIRROR),1)
|
||||
repotrack -c $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf -p $(CENTOS_REPO_DIR)Packages -a $(CENTOS_63_ARCH) $(CENTOSMIN_PACKAGES) $(CENTOSEXTRA_PACKAGES)
|
||||
repotrack -r base -r updates -r extras -r contrib -r centosplus -r epel -r rpmforge-extras -c $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf -p $(CENTOS_REPO_DIR)Packages -a $(CENTOS_63_ARCH) $(CENTOSRPMFORGE_PACKAGES)
|
||||
### NOTE: qemu-img-0.15 conflicts with packages in epel repos
|
||||
-rm $(CENTOS_REPO_DIR)Packages/qemu-img-0.15*
|
||||
repotrack -c $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf -p $(CENTOS_REPO_DIR)Packages -a $(CENTOS_ARCH) $(CENTOSMIN_PACKAGES) $(CENTOSEXTRA_PACKAGES)
|
||||
repotrack -r base -r updates -r extras -r contrib -r centosplus -r epel -r rpmforge-extras -c $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf -p $(CENTOS_REPO_DIR)Packages -a $(CENTOS_ARCH) $(CENTOSRPMFORGE_PACKAGES)
|
||||
else
|
||||
repotrack -c $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf -p $(CENTOS_REPO_DIR)Packages -a $(CENTOS_63_ARCH) $(CENTOSMIN_PACKAGES) $(CENTOSEXTRA_PACKAGES) $(CENTOSRPMFORGE_PACKAGES)
|
||||
repotrack -c $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf -p $(CENTOS_REPO_DIR)Packages -a $(CENTOS_ARCH) $(CENTOSMIN_PACKAGES) $(CENTOSEXTRA_PACKAGES) $(CENTOSRPMFORGE_PACKAGES)
|
||||
endif
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(CENTOS_REPO_DIR)cache.done: $(CENTOS_REPO_DIR)cache-extra.done $(CENTOS_REPO_DIR)comps.xml $/eggs-gems.done
|
||||
$/cache.done: $/cache-extra.done $/eggs-gems.done $/cache-boot.done
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
METADATA_FILES=repomd.xml comps.xml filelists.xml.gz primary.xml.gz other.xml.gz
|
||||
$(addprefix $(CENTOS_REPO_DIR)Packages/repodata/,$(METADATA_FILES)): $(CENTOS_REPO_DIR)cache.done $(CENTOS_REPO_DIR)comps.xml
|
||||
createrepo -g `readlink -f "$(CENTOS_REPO_DIR)comps.xml"` -o $(CENTOS_REPO_DIR)Packages $(CENTOS_REPO_DIR)Packages
|
||||
$(addprefix $(CENTOS_REPO_DIR)Packages/repodata/,$(METADATA_FILES)): $/cache.done $(CENTOS_REPO_DIR)repodata/comps.xml
|
||||
createrepo -g `readlink -f "$(CENTOS_REPO_DIR)repodata/comps.xml"` -o $(CENTOS_REPO_DIR)Packages $(CENTOS_REPO_DIR)Packages
|
||||
|
||||
$(CENTOS_REPO_DIR)repo.done: $(addprefix $(CENTOS_REPO_DIR)Packages/repodata/,$(METADATA_FILES))
|
||||
$/repo.done: $(addprefix $(CENTOS_REPO_DIR)Packages/repodata/,$(METADATA_FILES))
|
||||
touch $@
|
||||
|
||||
# centos isolinux files
|
||||
|
||||
$(addprefix $(CENTOS_REPO_DIR)/isolinux/,$(ISOLINUX_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(CENTOS_MIRROR)/isolinux/$(@F)
|
||||
|
||||
# centos EFI boot images
|
||||
|
||||
$(addprefix $(CENTOS_REPO_DIR)/EFI/BOOT/,$(EFI_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(CENTOS_MIRROR)/EFI/BOOT/$(@F)
|
||||
|
||||
# centos boot images
|
||||
|
||||
$(addprefix $(CENTOS_REPO_DIR)/images/,$(IMAGES_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(CENTOS_MIRROR)/images/$(@F)
|
||||
|
||||
# centos netinstall iso
|
||||
|
||||
$(CENTOS_ISO_DIR)/$(NETINSTALL_ISO):
|
||||
mkdir -p $(@D)
|
||||
wget -O $@ $(CENTOS_NETINSTALL)/$(NETINSTALL_ISO)
|
||||
|
||||
# EGGS AND GEMS
|
||||
|
||||
$(CENTOS_REPO_DIR)eggs-gems.done:
|
||||
scripts/mirror.sh $(GOLDEN_MIRROR) $(LOCAL_MIRROR)
|
||||
$/eggs-gems.done: requirements-gems.txt requirements-eggs.txt
|
||||
@mkdir -p $/eggs
|
||||
@mkdir -p $/gems
|
||||
@awk -v mirror=$/eggs '{system ("[ `find " mirror " -name " $$1 "-"$$2 "* ` ] || pip install -d " mirror " " $$1 "=="$$2 )}' ./requirements-eggs.txt
|
||||
@awk -v mirror=$/gems '{system ("[ `find " mirror " -name " $$1 "-"$$2 "*` ] || ( cd "mirror" && gem fetch "$$1" -v "$$2")")}' ./requirements-gems.txt
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
mirror: $(addprefix $(CENTOS_REPO_DIR)Packages/repodata/,$(METADATA_FILES))
|
||||
mirror: $(addprefix $(CENTOS_REPO_DIR)Packages/repodata/,$(METADATA_FILES)) \
|
||||
$(CENTOS_ISO_DIR)/$(NETINSTALL_ISO) \
|
||||
$/cache-boot.done \
|
||||
$/eggs-gems.done
|
||||
|
@ -1,4 +1,4 @@
|
||||
/:=$(BUILD_DIR)/packages/rpm/
|
||||
/:=$(BUILD_DIR)/rpm/
|
||||
|
||||
$/%: /:=$/
|
||||
|
||||
@ -22,7 +22,7 @@ endif
|
||||
$/RPMS/x86_64/cirros-uec-0.3.0-1.x86_64.rpm: $/SOURCES/cirros-0.3.0-x86_64-uec.tar.gz packages/rpm/specs/cirros-0.3.0.spec
|
||||
rpmbuild -vv --define "_topdir `readlink -f $/`" -ba packages/rpm/specs/cirros-0.3.0.spec
|
||||
|
||||
$(BUILD_DIR)/packages/rpm/rpm.done: $/RPMS/x86_64/cirros-uec-0.3.0-1.x86_64.rpm
|
||||
$(BUILD_DIR)/rpm/rpm.done: $/RPMS/x86_64/cirros-uec-0.3.0-1.x86_64.rpm
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(addprefix $(SRC_DIR),$(SRC_FILES)):
|
||||
|
23
repo.mk
Normal file
23
repo.mk
Normal file
@ -0,0 +1,23 @@
|
||||
# CENTOS REPOSITORIES SETTINGS
|
||||
|
||||
CENTOS_MAJOR:=6
|
||||
CENTOS_MINOR:=3
|
||||
CENTOS_RELEASE:=$(CENTOS_MAJOR).$(CENTOS_MINOR)
|
||||
CENTOS_ARCH:=x86_64
|
||||
CENTOS_MIRROR:=http://mirror.yandex.ru/centos/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)
|
||||
CENTOS_NETINSTALL:=http://mirror.yandex.ru/centos/$(CENTOS_RELEASE)/isos/$(CENTOS_ARCH)
|
||||
CENTOS_GPG:=http://mirror.yandex.ru/centos
|
||||
|
||||
REPOMIRROR:=$(MIRROR_URL)/centos
|
||||
CENTOSMIRROR:=http://mirror.yandex.ru/centos
|
||||
EPELMIRROR:=http://mirror.yandex.ru/epel
|
||||
RPMFORGEMIRROR:=http://apt.sw.be/redhat
|
||||
|
||||
CENTOS_REPO_DIR:=$(LOCAL_MIRROR)/centos/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)/
|
||||
CENTOS_ISO_DIR:=$(LOCAL_MIRROR)/centos/$(CENTOS_RELEASE)/isos/$(CENTOS_ARCH)/
|
||||
|
||||
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
|
||||
BOOTSTRAP_FILES:=initramfs.img linux
|
||||
NETINSTALL_ISO:=CentOS-$(CENTOS_RELEASE)-$(CENTOS_ARCH)-netinstall-EFI.iso
|
@ -1,38 +0,0 @@
|
||||
apache2
|
||||
apt-utils
|
||||
chef
|
||||
cloud-init
|
||||
cobbler
|
||||
cobbler-web
|
||||
createrepo
|
||||
debconf-utils
|
||||
dnsmasq
|
||||
libapache2-mod-wsgi
|
||||
libapache2-svn
|
||||
libhttpclient-ruby
|
||||
libjson-ruby
|
||||
libstomp-ruby
|
||||
libxml2-dev
|
||||
mcollective
|
||||
mcollective-client
|
||||
ntp
|
||||
ohai
|
||||
puppetmaster
|
||||
puppet
|
||||
python-dev
|
||||
python-django
|
||||
python-ipaddr
|
||||
python-paramiko
|
||||
python-pip
|
||||
python-pypcap
|
||||
python-scapy
|
||||
python-virtualenv
|
||||
redis-server
|
||||
rsync
|
||||
rubygems
|
||||
ruby-json
|
||||
runit
|
||||
tftpd-hpa
|
||||
vlan
|
||||
yum
|
||||
yum-utils
|
@ -1,12 +1,16 @@
|
||||
autoconf
|
||||
automake
|
||||
byacc
|
||||
cronie
|
||||
crontabs
|
||||
curl
|
||||
dhclient
|
||||
dmidecode
|
||||
flex
|
||||
gcc
|
||||
gcc-c++
|
||||
make
|
||||
mcollective
|
||||
mysql
|
||||
mysql-server
|
||||
ntp
|
||||
@ -18,6 +22,7 @@ openstack-keystone
|
||||
openstack-nova
|
||||
openstack-nova-novncproxy
|
||||
puppet-2.7.19
|
||||
python-devel
|
||||
novnc
|
||||
rabbitmq-server
|
||||
ruby
|
||||
@ -27,11 +32,7 @@ ruby-mysql
|
||||
ruby-rdoc
|
||||
ruby-ri
|
||||
ruby-shadow
|
||||
wget
|
||||
dhclient
|
||||
mcollective
|
||||
tcpdump
|
||||
scapy
|
||||
flex
|
||||
byacc
|
||||
python-devel
|
||||
tcpdump
|
||||
wget
|
||||
yum
|
||||
|
@ -1,39 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script should be run from directory that contains requirements files
|
||||
[ -z $1 -a -z $2 ] && echo "Use: mirror.sh remote_mirror_path local_mirror_directory" && exit 1
|
||||
|
||||
MIRROR_SERVER=$1
|
||||
HOSTNAME=`hostname`
|
||||
LOCAL_MIRROR=$2
|
||||
|
||||
# checking is server trying to sync from itself or not
|
||||
if [[ $MIRROR_SERVER =~ $HOSTNAME.*:(.*) ]]
|
||||
then
|
||||
|
||||
LOCAL_PATH=${BASH_REMATCH[1]}
|
||||
MIRROR_DIR_EGGS=$LOCAL_PATH/eggs
|
||||
MIRROR_DIR_GEMS=$LOCAL_PATH/gems
|
||||
|
||||
[ -f ./requirements-eggs.txt -a -f ./requirements-gems.txt ] || ( echo "Couldn't find requirements-eggs.txt/requirement-gems.txt file(s)\nTry to run this script from project root directory" && exit 1 )
|
||||
|
||||
# creating/updating repo for eggs
|
||||
[ -d $MIRROR_DIR_EGGS ] || mkdir -p $MIRROR_DIR_EGGS
|
||||
awk -v mirror=$MIRROR_DIR_EGGS '{system ("[ `find " mirror " -name " $1 "-" $2 "* ` ] || pip install -d " mirror " " $1 "=="$2 )}' ./requirements-eggs.txt
|
||||
|
||||
# creating/updating repo for gems
|
||||
[ -d $MIRROR_DIR_GEMS ] || mkdir -p $MIRROR_DIR_GEMS
|
||||
awk -v mirror=$MIRROR_DIR_GEMS '{system ("[ `find " mirror " -name " $1 "-" $2 "*` ] || ( cd "mirror" && gem fetch "$1" -v "$2")")}' ./requirements-gems.txt
|
||||
|
||||
[ -h $LOCAL_MIRROR ] || ln -s ${BASH_REMATCH[1]} $LOCAL_MIRROR
|
||||
echo "Local golden mirror is updated from the internet."
|
||||
echo "Symlink to ${BASH_REMATCH[1]} created at the build dir"
|
||||
|
||||
else
|
||||
|
||||
# rsyncing from the golden mirror and
|
||||
# assuming that current user have access to the root user of golden mirror using public keys
|
||||
rsync -e 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' --size-only -r root@$MIRROR_SERVER/* $LOCAL_MIRROR || (echo "Couldn't Rsync with Golden Mirror" && exit 1)
|
||||
echo "Local mirror updated from the golden mirror"
|
||||
|
||||
fi
|
Loading…
Reference in New Issue
Block a user