Make refactoring. Fixed some bugs and rewrote bootstrap module

This commit is contained in:
Vladimir Kozhukalov 2013-01-24 19:47:15 +04:00
parent d8f0b44869
commit f9b8af014b
22 changed files with 225 additions and 221 deletions

View File

@ -3,49 +3,44 @@ PWD:=$(shell pwd -P)
SOURCE_DIR:=$(PWD)
BUILD_DIR:=$(PWD)/build
# Common configuration file.
include $(SOURCE_DIR)/config.mk
# Sandbox macroses.
include $(SOURCE_DIR)/sandbox.mk
# Modules
include $(SOURCE_DIR)/mirror/module.mk
include $(SOURCE_DIR)/packages/module.mk
include $(SOURCE_DIR)/bootstrap/module.mk
include $(SOURCE_DIR)/iso/module.mk
# MODULES=gnupg bootstrap nailgun test mirror iso packages/rpm naily astute
include $(SOURCE_DIR)/test/module.mk
.PHONY:
.PHONY: all clean test help deep_clean
# .PHONY: all clean test test-unit help mirror FORCE deep_clean
help:
@echo 'Available targets:'
@echo ' all - build product'
@echo ' bootstrap - build bootstrap'
@echo ' iso - build iso image'
@echo ' img - build flash stick image'
@echo ' test - run all tests'
@echo ' test-unit - run unit tests'
@echo ' test-integration - run integration tests'
@echo ' clean-integration-test - clean integration test environment'
@echo ' clean - remove build directory and resetting .done flags'
@echo ' deep_clean - clean + removing $(LOCAL_MIRROR) directory'
all: iso
# help:
# @echo 'Available targets:'
# @echo ' all - build product'
# @echo ' bootstrap - build nailgun bootstrap'
# @echo ' iso - build nailgun iso'
# @echo ' sdist-nailgun - build nailgun sdist'
# @echo ' test - run all tests'
# @echo ' test-unit - run unit tests'
# @echo ' test-integration - run integration tests'
# @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'
test: test-unit test-integration
# all:
clean:
rm -rf $(BUILD_DIR)
deep_clean: clean
rm -rf $(LOCAL_MIRROR)
# test: test-unit
# test-unit:
# # target to force rebuild of other targets
# FORCE:
# clean:
# rm -rf $(BUILD_DIR)
# test -d $(LOCAL_MIRROR) && find $(LOCAL_MIRROR) -name "*.done" -delete
# deep_clean: clean
# rm -rf $(LOCAL_MIRROR)
# distclean: deep_clean clean-integration-test
distclean: deep_clean clean-integration-test
include $(SOURCE_DIR)/rules.mk

View File

@ -1,23 +1,55 @@
.PHONY: bootstrap clean
all: bootstrap
YUM_PACKAGES:=openssh-server wget cronie-noanacron crontabs ntp \
bash net-tools dhclient rsyslog iputils openssh-clients vim-minimal\
rubygems mcollective vconfig tcpdump scapy mingetty ntp nailgun-net-check dmidecode
INITRAMROOT:=$(BUILD_DIR)/bootstrap/initram-root
YUM_BUILD_PACKAGES:=ruby-devel.x86_64 make gcc flex byacc
BOOTSTRAP_RPMS:=\
bash \
byacc \
cronie-noanacron \
crontabs \
dhclient \
dmidecode \
flex \
gcc \
iputils \
make \
mcollective \
mingetty \
net-tools \
ntp \
openssh-clients \
openssh-server \
rsyslog \
ruby-devel.x86_64 \
rubygems \
scapy \
tcpdump \
vconfig \
vim-minimal \
wget \
NAILGUN_DIR:=$(BUILD_DIR)/bootstrap/initram-root/opt/nailgun
RPM:=sudo rpm --root=`readlink -f $(BUILD_DIR)/bootstrap/initram-root`
YUM:=sudo yum --installroot=`readlink -f $(BUILD_DIR)/bootstrap/initram-root` -y --nogpgcheck
RPM_DIR:=$(CENTOS_REPO_DIR)
CHROOT_CMD:=sudo chroot $(BUILD_DIR)/bootstrap/initram-root
BOOTSTRAP_RPMS_GARBAGE:=\
byacc \
flex \
gcc \
make \
ruby-devel.x86_64 \
BOOTSTRAP_RPMS_CUSTOM:=\
nailgun-agent \
nailgun-mcagents \
nailgun-net-check \
YUM:=sudo yum --installroot=`readlink -f $(INITRAMROOT)` -y --nogpgcheck
clean: clean-bootstrap
clean-bootstrap:
sudo rm -rf $(BUILD_DIR)/bootstrap/initram-root
sudo rm -rf $(INITRAMROOT)
bootstrap: $(BUILD_DIR)/bootstrap/bootstrap.done
@ -26,73 +58,58 @@ $(BUILD_DIR)/bootstrap/bootstrap.done: \
$(BUILD_DIR)/bootstrap/initramfs.img
$(ACTION.TOUCH)
$(BUILD_DIR)/bootstrap/initramfs.img: $(BUILD_DIR)/bootstrap/initram-root/etc/nailgun_systemtype
sudo cp -f $(BUILD_DIR)/bootstrap/initram-root/etc/skel/.bash* $(BUILD_DIR)/bootstrap/initram-root/root/
sudo rm -rf $(BUILD_DIR)/bootstrap/initram-root/var/cache/yum $(BUILD_DIR)/bootstrap/initram-root/var/lib/yum $(BUILD_DIR)/bootstrap/initram-root/usr/share/doc \
$(BUILD_DIR)/bootstrap/initram-root/usr/share/locale $(BUILD_DIR)/bootstrap/initram-root/src
sudo sh -c "cd $(BUILD_DIR)/bootstrap/initram-root && find . -xdev | cpio --create \
$(BUILD_DIR)/bootstrap/initramfs.img: \
$(BUILD_DIR)/bootstrap/customize-initram-root.done
sudo sh -c "cd $(INITRAMROOT) && find . -xdev | cpio --create \
--format='newc' | gzip -9 > `readlink -f $(BUILD_DIR)/bootstrap/initramfs.img`"
$(BUILD_DIR)/bootstrap/linux: $(BUILD_DIR)/mirror/build.done
mkdir -p $(BUILD_DIR)/bootstrap
find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name 'kernel-2.*' | xargs rpm2cpio | (cd $(BUILD_DIR)/bootstrap/; cpio -imd './boot/vmlinuz*')
find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name 'kernel-2.*' | xargs rpm2cpio | \
(cd $(BUILD_DIR)/bootstrap/; cpio -imd './boot/vmlinuz*')
mv $(BUILD_DIR)/bootstrap/boot/vmlinuz* $(BUILD_DIR)/bootstrap/linux
rmdir $(BUILD_DIR)/bootstrap/boot
rm -r $(BUILD_DIR)/bootstrap/boot
touch $(BUILD_DIR)/bootstrap/linux
$(BUILD_DIR)/bootstrap/initram-root/etc/nailgun_systemtype: \
$(BUILD_DIR)/bootstrap/init.done \
$(call find-files,bootstrap/sync) \
$(SOURCE_DIR)/bin/agent \
$(SOURCE_DIR)/bin/send2syslog.py \
$(SOURCE_DIR)/bootstrap/ssh/id_rsa.pub \
$(call find-files,$(SOURCE_DIR)/mcagent)
sudo sed -i -e '/^root/c\root:$$6$$oC7haQNQ$$LtVf6AI.QKn9Jb89r83PtQN9fBqpHT9bAFLzy.YVxTLiFgsoqlPY3awKvbuSgtxYHx4RUcpUqMotp.WZ0Hwoj.:15441:0:99999:7:::' $(BUILD_DIR)/bootstrap/initram-root/etc/shadow
sudo cp -r bootstrap/sync/* $(BUILD_DIR)/bootstrap/initram-root
sudo cp -r bin/send2syslog.py $(BUILD_DIR)/bootstrap/initram-root/usr/bin
sudo mkdir -p $(BUILD_DIR)/bootstrap/initram-root/root/.ssh
sudo cp bootstrap/ssh/id_rsa.pub $(BUILD_DIR)/bootstrap/initram-root/root/.ssh/authorized_keys
sudo chmod 700 $(BUILD_DIR)/bootstrap/initram-root/root/.ssh
sudo chmod 600 $(BUILD_DIR)/bootstrap/initram-root/root/.ssh/authorized_keys
sudo mkdir -p $(NAILGUN_DIR)/bin
sudo cp -r bin/agent $(NAILGUN_DIR)/bin
sudo mkdir -p $(BUILD_DIR)/bootstrap/initram-root/usr/libexec/mcollective/mcollective/agent/
sudo cp mcagent/* $(BUILD_DIR)/bootstrap/initram-root/usr/libexec/mcollective/mcollective/agent/
sudo sh -c "echo bootstrap > $(BUILD_DIR)/bootstrap/initram-root/etc/nailgun_systemtype"
sudo rm -rf $(BUILD_DIR)/bootstrap/initram-root/home/*
$(BUILD_DIR)/bootstrap/init.done: \
$(BUILD_DIR)/bootstrap/customize-initram-root.done: \
$(BUILD_DIR)/mirror/build.done \
$(BUILD_DIR)/packages/build.done \
$(BUILD_DIR)/bootstrap/initram-root/etc/yum.repos.d/mirror.repo
sudo mkdir -p $(BUILD_DIR)/bootstrap/initram-root/proc $(BUILD_DIR)/bootstrap/initram-root/dev
sudo mkdir -p $(BUILD_DIR)/bootstrap/initram-root/var/lib/rpm
$(RPM) --rebuilddb
$(YUM) install $(YUM_PACKAGES) $(YUM_BUILD_PACKAGES)
sudo touch $(BUILD_DIR)/bootstrap/initram-root/etc/fstab
$(BUILD_DIR)/bootstrap/prepare-initram-root.done \
$(call find-files,$(SOURCE_DIR)/bootstrap/sync) \
$(SOURCE_DIR)/bin/send2syslog.py \
$(SOURCE_DIR)/bootstrap/ssh/id_rsa.pub
find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name 'kernel-2.*' | xargs rpm2cpio | \
( cd $(BUILD_DIR)/bootstrap/initram-root; sudo cpio -idm './lib/modules/*' './boot/vmlinuz*' )
find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name 'kernel-firmware-2.*' | xargs rpm2cpio | \
( cd $(BUILD_DIR)/bootstrap/initram-root; sudo cpio -idm './lib/firmware/*' )
for version in `ls -1 $(BUILD_DIR)/bootstrap/initram-root/lib/modules`; do \
sudo depmod -b $(BUILD_DIR)/bootstrap/initram-root $$version; \
done
# Installing custom rpms
$(YUM) install $(BOOTSTRAP_RPMS_CUSTOM)
sudo mkdir -p $(BUILD_DIR)/bootstrap/initram-root/tmp/gems
sudo rsync -a --delete $(LOCAL_MIRROR_GEMS)/ $(BUILD_DIR)/bootstrap/initram-root/tmp/gems
$(CHROOT_CMD) gem install --no-rdoc --no-ri --source file:///tmp/gems \
httpclient ohai json_pure
sudo rm -rf $(BUILD_DIR)/bootstrap/initram-root/tmp/gems $(BUILD_DIR)/bootstrap/initram-root/usr/lib/ruby/gems/1.8/cache/*
# Copying custom files
sudo rsync -a $(SOURCE_DIR)/bootstrap/sync/ $(INITRAMROOT)
sudo cp -r $(SOURCE_DIR)/bin/send2syslog.py $(INITRAMROOT)/usr/bin
# Setting root password into r00tme
sudo sed -i -e '/^root/c\root:$$6$$oC7haQNQ$$LtVf6AI.QKn9Jb89r83PtQN9fBqpHT9bAFLzy.YVxTLiFgsoqlPY3awKvbuSgtxYHx4RUcpUqMotp.WZ0Hwoj.:15441:0:99999:7:::' $(INITRAMROOT)/etc/shadow
# Copying rsa key.
sudo mkdir -p $(INITRAMROOT)/root/.ssh
sudo cp $(SOURCE_DIR)/bootstrap/ssh/id_rsa.pub $(INITRAMROOT)/root/.ssh/authorized_keys
sudo chmod 700 $(INITRAMROOT)/root/.ssh
sudo chmod 600 $(INITRAMROOT)/root/.ssh/authorized_keys
# Copying bash init files
sudo cp -f $(INITRAMROOT)/etc/skel/.bash* $(INITRAMROOT)/root/
# Removing garbage
sudo rm -rf $(INITRAMROOT)/home/*
sudo rm -f $(INITRAMROOT)/etc/yum.repos.d/mirror.repo
sudo rm -rf \
$(INITRAMROOT)/var/cache/yum \
$(INITRAMROOT)/var/lib/yum \
$(INITRAMROOT)/usr/share/doc \
$(INITRAMROOT)/usr/share/locale \
sudo mkdir -p $(BUILD_DIR)/bootstrap/initram-root/src
$(YUM) erase $(YUM_BUILD_PACKAGES)
sudo rm -f $(BUILD_DIR)/bootstrap/initram-root/etc/yum.repos.d/Cent*
sudo cp $(BUILD_DIR)/bootstrap/initram-root/sbin/init $(BUILD_DIR)/bootstrap/initram-root/init
$(CHROOT_CMD) chkconfig exim off
$(ACTION.TOUCH)
define yum_local_repo
[mirror]
name=Mirantis mirror
@ -101,7 +118,54 @@ gpgcheck=0
enabled=1
endef
$(BUILD_DIR)/bootstrap/initram-root/etc/yum.repos.d/mirror.repo: export contents:=$(yum_local_repo)
$(BUILD_DIR)/bootstrap/initram-root/etc/yum.repos.d/mirror.repo: bootstrap/module.mk
$(BUILD_DIR)/bootstrap/prepare-initram-root.done: export yum_local_repo:=$(yum_local_repo)
$(BUILD_DIR)/bootstrap/prepare-initram-root.done: \
$(BUILD_DIR)/mirror/build.done \
$(BUILD_DIR)/packages/build.done
# Creating some necessary directories
sudo mkdir -p $(INITRAMROOT)/proc
sudo mkdir -p $(INITRAMROOT)/dev
sudo mkdir -p $(INITRAMROOT)/var/lib/rpm
# Defining local repository in order to install rpms
sudo mkdir -p $(@D)
sudo sh -c "echo \"$${contents}\" > $@"
sudo sh -c "echo \"$${yum_local_repo}\" > $(INITRAMROOT)/etc/yum.repos.d/mirror.repo"
# Removing default repositories and rebuilding rpm database
sudo rm -f $(INITRAMROOT)/etc/yum.repos.d/Cent*
sudo rpm --root=`readlink -f $(INITRAMROOT)` --rebuilddb
# Installing rpms
$(YUM) install $(BOOTSTRAP_RPMS) $(BOOTSTRAP_RPMS_TEMPORARY)
# Installing gems
sudo mkdir -p $(INITRAMROOT)/tmp/gems
sudo rsync -a --delete $(LOCAL_MIRROR_GEMS)/ $(INITRAMROOT)/tmp/gems
sudo chroot $(INITRAMROOT) gem install --no-rdoc --no-ri --source file:///tmp/gems \
httpclient ohai json_pure
sudo rm -rf \
$(INITRAMROOT)/tmp/gems \
$(INITRAMROOT)/usr/lib/ruby/gems/1.8/cache/*
# Removing temporary rpms (devel packages, they were needed to install gems)
$(YUM) erase $(BOOTSTRAP_RPMS_GARBAGE)
# Disabling exim (it have been installed as a dependency)
sudo chroot $(INITRAMROOT) chkconfig exim off
# Installing kernel modules
find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name 'kernel-2.*' | xargs rpm2cpio | \
( cd $(INITRAMROOT); sudo cpio -idm './lib/modules/*' './boot/vmlinuz*' )
find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name 'kernel-firmware-2.*' | xargs rpm2cpio | \
( cd $(INITRAMROOT); sudo cpio -idm './lib/firmware/*' )
for version in `ls -1 $(INITRAMROOT)/lib/modules`; do \
sudo depmod -b $(INITRAMROOT) $$version; \
done
# Some extra actions
sudo touch $(INITRAMROOT)/etc/fstab
sudo cp $(INITRAMROOT)/sbin/init $(INITRAMROOT)/init
$(ACTION.TOUCH)

View File

@ -1,4 +0,0 @@
{
"recipes": [ "agent::default" ]
}

View File

@ -1,8 +0,0 @@
# To run chef-solo from this folder use the following command:
# sudo chef-solo -l debug -c solo.rb -j solo.json
log_location "/var/log/chef/solo.log"
file_cache_path "/tmp/chef"
cookbook_path File.expand_path('/opt/nailgun/cookbooks')
log_level :debug
verbose_logging true

View File

@ -0,0 +1 @@
bootstrap

View File

@ -1,26 +1,46 @@
ifndef LOCAL_MIRROR
LOCAL_MIRROR:=$(BUILD_DIR)/local_mirror
PWD:=$(shell pwd -P)
SOURCE_DIR:=$(PWD)
ifndef BUILD_DIR
BUILD_DIR:=$(PWD)/build
endif
ifndef LOCAL_MIRROR
LOCAL_MIRROR:=local_mirror
endif
# iso.path:=$(BUILD_DIR)/iso/nailgun-centos-6.3-amd64.iso
LOCAL_MIRROR_SRC:=$(LOCAL_MIRROR)/src
LOCAL_MIRROR_EGGS:=$(LOCAL_MIRROR)/eggs
LOCAL_MIRROR_GEMS:=$(LOCAL_MIRROR)/gems
# bootstrap.linux:=$(BUILD_DIR)/bootstrap/linux
# bootstrap.initrd:=$(BUILD_DIR)/bootstrap/initrd.gz
CENTOS_MAJOR:=6
CENTOS_MINOR:=3
CENTOS_RELEASE:=$(CENTOS_MAJOR).$(CENTOS_MINOR)
CENTOS_ARCH:=x86_64
LOCAL_MIRROR_CENTOS:=$(LOCAL_MIRROR)/centos
LOCAL_MIRROR_CENTOS_OS_BASEURL:=$(LOCAL_MIRROR_CENTOS)/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)
# # 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
REQUIRED_PACKAGES:=$(shell grep -v "^\\s*\#" $(SOURCE_DIR)/requirements-rpm.txt)
RPMFORGE_PACKAGES:=qemu
# CENTOS_REPO_DIR:=$(LOCAL_MIRROR)/centos/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)/
# CENTOS_ISO_DIR:=$(LOCAL_MIRROR)/centos/$(CENTOS_RELEASE)/isos/$(CENTOS_ARCH)/
REQUIRED_EGGS:=$(shell grep -v "^\\s*\#" $(SOURCE_DIR)/requirements-eggs.txt)
SRC_URLS:=$(shell grep -v ^\\s*\# $(SOURCE_DIR)/requirements-src.txt)
# It can be any a list of links (--find-links) or a pip index (--index-url).
MIRROR_EGGS:=http://pypi.python.org/simple
CENTOS_MIRROR:=http://mirror.yandex.ru/centos
CENTOS_MIRROR_OS_BASEURL:=$(CENTOS_MIRROR)/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)
# 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:=centos epel => yum_repo_centos and yum_repo_epel
# will be used.
YUM_REPOS:=centos epel fuel_folsom puppetlabs rpmforge
BOOTSTRAP_FILES:=initramfs.img linux
NETINSTALL_ISO:=CentOS-$(CENTOS_RELEASE)-$(CENTOS_ARCH)-minimal-EFI.iso

View File

@ -1,6 +0,0 @@
gnupg.home:=gnupg
gnupg.default-key:=Mirantis Product <product@mirantis.com>
gnupg.default-key-id:=F8AF89DD
gnupg.keyphrase-file:=gnupg/keyphrase

View File

@ -14,6 +14,8 @@ $(BUILD_DIR)/iso/isoroot-centos.done: \
$(BUILD_DIR)/packages/build.done
mkdir -p $(ISOROOT)
rsync -a --delete $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/ $(ISOROOT)
createrepo -g `readlink -f "$(ISOROOT)/repodata/comps.xml"` \
-u media://`head -1 $(ISOROOT)/.discinfo` $(ISOROOT)
$(ACTION.TOUCH)
$(BUILD_DIR)/iso/isoroot-eggs.done: \
@ -60,27 +62,10 @@ $(ISOROOT)/puppet-slave.tgz: \
$(call find-files,$(SOURCE_DIR)/puppet/nailytest) \
$(call find-files,$(SOURCE_DIR)/puppet/osnailyfacter) \
$(call find-files,$(SOURCE_DIR)/fuel/deployment/puppet)
(cd $(SOURCE_DIR)/puppet && tar cf $(BUILD_DIR)/puppet-slave.tar nailytest osnailyfacter)
(cd $(SOURCE_DIR)/fuel/deployment/puppet && tar rf $(BUILD_DIR)/puppet-slave.tar ./*)
gzip -c -9 $(BUILD_DIR)/puppet-slave.tar > $@
########################
# Ugly hacking. Hope it is temporary.
########################
FUEL_PACKAGES=http://download.mirantis.com/epel-fuel/x86_64
$(BUILD_DIR)/iso/isoroot-morerpm.done: \
$(BUILD_DIR)/iso/isoroot-centos.done \
$(ISOROOT)/.discinfo
mkdir -p $(ISOROOT)/more_rpm
cd $(ISOROOT)/more_rpm && wget -c \
$(FUEL_PACKAGES)/MySQL-shared-5.5.28-1.el6.x86_64.rpm \
$(FUEL_PACKAGES)/MySQL-client-5.5.28-1.el6.x86_64.rpm \
$(FUEL_PACKAGES)/MySQL-server-5.5.28_wsrep_23.7-1.rhel5.x86_64.rpm \
$(FUEL_PACKAGES)/galera-23.2.2-1.rhel5.x86_64.rpm
createrepo -x 'more_rpm/*' -g `readlink -f "$(ISOROOT)/repodata/comps.xml"` -u media://`head -1 $(ISOROOT)/.discinfo` $(ISOROOT)
$(ACTION.TOUCH)
(cd $(SOURCE_DIR)/puppet && tar cf $(ISOROOT)/puppet-slave.tar nailytest osnailyfacter)
(cd $(SOURCE_DIR)/fuel/deployment/puppet && tar rf $(ISOROOT)/puppet-slave.tar ./*)
gzip -c -9 $(ISOROOT)/puppet-slave.tar > $@ && \
rm $(ISOROOT)/puppet-slave.tar
########################
@ -111,7 +96,6 @@ $(BUILD_DIR)/iso/isoroot.done: \
$(BUILD_DIR)/iso/isoroot-eggs.done \
$(BUILD_DIR)/iso/isoroot-gems.done \
$(BUILD_DIR)/iso/isoroot-files.done \
$(BUILD_DIR)/iso/isoroot-morerpm.done \
$(BUILD_DIR)/iso/isoroot-bootstrap.done
$(ACTION.TOUCH)

View File

@ -1,5 +1,3 @@
include $(SOURCE_DIR)/mirror/centos/config.mk
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

View File

@ -1,21 +0,0 @@
CENTOS_MAJOR:=6
CENTOS_MINOR:=3
CENTOS_RELEASE:=$(CENTOS_MAJOR).$(CENTOS_MINOR)
CENTOS_ARCH:=x86_64
ifeq ($(LOCAL_MIRROR),)
$(error It seems that variable LOCAL_MIRROR was not set correctly)
endif
LOCAL_MIRROR_CENTOS:=$(LOCAL_MIRROR)/centos
LOCAL_MIRROR_CENTOS_OS_BASEURL:=$(LOCAL_MIRROR_CENTOS)/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)
REQUIRED_PACKAGES:=$(shell grep -v "^\\s*\#" $(SOURCE_DIR)/requirements-rpm.txt)
RPMFORGE_PACKAGES:=qemu
CENTOS_MIRROR:=http://mirror.yandex.ru/centos
CENTOS_MIRROR_OS_BASEURL:=$(CENTOS_MIRROR)/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)
YUM_REPOS:=centos epel fuel_folsom puppetlabs rpmforge
include $(SOURCE_DIR)/mirror/centos/config_yum.mk

View File

@ -1,5 +1,4 @@
include $(SOURCE_DIR)/mirror/centos/config.mk
include $(SOURCE_DIR)/mirror/centos/config_yum.mk
include $(SOURCE_DIR)/mirror/centos/yum_repos.mk
$(BUILD_DIR)/mirror/centos/etc/yum.conf: export contents:=$(yum_conf)
$(BUILD_DIR)/mirror/centos/etc/yum.conf: \

View File

@ -1,13 +0,0 @@
ifeq ($(LOCAL_MIRROR),)
$(error It seems that variable LOCAL_MIRROR was not set correctly)
endif
ifeq ($(LOCAL_MIRROR_CENTOS_OS_BASEURL),)
$(error It seems that variable LOCAL_MIRROR_CENTOS_OS_BASEURL was not set correctly)
endif
LOCAL_MIRROR_EGGS:=$(LOCAL_MIRROR)/eggs
REQUIRED_EGGS:=$(shell grep -v "^\\s*\#" $(SOURCE_DIR)/requirements-eggs.txt)
# It can be any a list of links (--find-links) or a pip index (--index-url).
MIRROR_EGGS:=http://pypi.python.org/simple

View File

@ -1,8 +1,4 @@
include $(SOURCE_DIR)/mirror/eggs/config.mk
SANDBOX:=$(BUILD_DIR)/mirror/eggs/SANDBOX
include $(SOURCE_DIR)/sandbox/module.mk
$(BUILD_DIR)/mirror/eggs/build.done: SANDBOX:=$(BUILD_DIR)/mirror/eggs/SANDBOX
$(BUILD_DIR)/mirror/eggs/build.done: export SANDBOX_UP:=$(SANDBOX_UP)
$(BUILD_DIR)/mirror/eggs/build.done: export SANDBOX_DOWN:=$(SANDBOX_DOWN)
$(BUILD_DIR)/mirror/eggs/build.done: \
@ -23,7 +19,7 @@ $(BUILD_DIR)/mirror/eggs/build.done: \
# for the same url.
# Installing new version of pip.
sudo chroot $(SANDBOX) pip --version | awk '{if ($$2 != "1.2.1"){exit 1}}' || \
sudo chroot $(SANDBOX) pip --version 2>/dev/null | grep -qE "^1.2.1$$" || \
sudo chroot $(SANDBOX) pip-python install \
--index-url $(MIRROR_EGGS) \
--find-links $(MIRROR_EGGS) \

View File

@ -1,5 +0,0 @@
ifeq ($(LOCAL_MIRROR),)
$(error It seems that variable LOCAL_MIRROR was not set correctly)
endif
LOCAL_MIRROR_GEMS:=$(LOCAL_MIRROR)/gems

View File

@ -1,7 +0,0 @@
SRC_URLS:=$(shell grep -v ^\\s*\# $(SOURCE_DIR)/requirements-src.txt)
ifeq ($(LOCAL_MIRROR),)
$(error It seems that variable LOCAL_MIRROR was not set correctly)
endif
LOCAL_MIRROR_SRC:=$(LOCAL_MIRROR)/src

View File

@ -1,5 +1,3 @@
include $(SOURCE_DIR)/mirror/src/config.mk
$(addprefix $(LOCAL_MIRROR_SRC)/, $(notdir $(SRC_URLS))):
@mkdir -p $(LOCAL_MIRROR_SRC)
wget --no-use-server-timestamps -c -P $(LOCAL_MIRROR_SRC) $(shell echo $(SRC_URLS) | grep $(notdir $@))

View File

@ -7,6 +7,6 @@ $(BUILD_DIR)/packages/eggs/Nailgun-$(NAILGUN_VERSION).tar.gz: \
test-unit: test-unit-nailgun
.PHONY: test-unit-nailgun
.PHONY: test-unit test-unit-nailgun
test-unit-nailgun:
cd $(SOURCE_DIR)/nailgun && ./run_tests.sh

View File

@ -5,9 +5,6 @@ clean: clean_rpm
clean_rpm:
sudo rm -rf $(BUILD_DIR)/packages/rpm
SANDBOX:=$(BUILD_DIR)/packages/rpm/SANDBOX
include $(SOURCE_DIR)/sandbox/module.mk
RPM_SOURCES:=$(BUILD_DIR)/packages/rpm/SOURCES
$(BUILD_DIR)/packages/rpm/prep.done: $(BUILD_DIR)/mirror/build.done
@ -42,6 +39,7 @@ $(BUILD_DIR)/packages/rpm/rpm-nailgun-mcagents.done: \
$(ACTION.TOUCH)
$(BUILD_DIR)/packages/rpm/rpm-nailgun-net-check.done: SANDBOX:=$(BUILD_DIR)/packages/rpm/SANDBOX
$(BUILD_DIR)/packages/rpm/rpm-nailgun-net-check.done: export SANDBOX_UP:=$(SANDBOX_UP)
$(BUILD_DIR)/packages/rpm/rpm-nailgun-net-check.done: export SANDBOX_DOWN:=$(SANDBOX_DOWN)
$(BUILD_DIR)/packages/rpm/rpm-nailgun-net-check.done: \
@ -51,12 +49,10 @@ $(BUILD_DIR)/packages/rpm/rpm-nailgun-net-check.done: \
sudo sh -c "$${SANDBOX_UP}"
echo 000
cp -f $(SOURCE_DIR)/packages/rpm/patches/* $(RPM_SOURCES)
sudo mkdir -p $(SANDBOX)/tmp/SOURCES
sudo cp $(SOURCE_DIR)/packages/rpm/nailgun-net-check/net_probe.py $(SANDBOX)/tmp/SOURCES
sudo cp $(SOURCE_DIR)/packages/rpm/specs/nailgun-net-check.spec $(SANDBOX)/tmp
echo 111
sudo cp $(SOURCE_DIR)/packages/rpm/patches/* $(SANDBOX)/tmp/SOURCES
sudo cp $(LOCAL_MIRROR_SRC)/* $(SANDBOX)/tmp/SOURCES
sudo chroot $(SANDBOX) rpmbuild -vv --define "_topdir /tmp" -ba /tmp/nailgun-net-check.spec

View File

@ -12,6 +12,7 @@ bind-utils
byacc
centos-release
cirros-testvm
cronie-noanacron
cman
cobbler
cobbler-web

View File

@ -8,6 +8,11 @@ define ACTION.TOUCH
touch $@
endef
define NEWLINE
endef
$(BUILD_DIR)/%/.dir:
mkdir -p $(@D)
@touch $@

View File

@ -6,6 +6,20 @@ gpgcheck=0
enabled=1
endef
SANDBOX_PACKAGES:=\
byacc \
flex \
gcc \
glibc-devel \
glibc-headers \
kernel-headers \
make \
python-devel.x86_64 \
python-pip \
rpm-build \
tar \
define SANDBOX_UP
mkdir -p $(SANDBOX)/etc/yum.repos.d
cp /etc/resolv.conf $(SANDBOX)/etc/resolv.conf
@ -15,9 +29,7 @@ EOF
rpm -i --root=$(SANDBOX) `find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name "centos-release*rpm" | head -1`
rm -f $(SANDBOX)/etc/yum.repos.d/Cent*
rpm --root=$(SANDBOX) --rebuilddb
yum --installroot=$(SANDBOX) -y --nogpgcheck install \
rpm-build tar gcc flex make byacc python-devel.x86_64 \
glibc-devel glibc-headers kernel-headers python-pip
yum --installroot=$(SANDBOX) -y --nogpgcheck install $(SANDBOX_PACKAGES)
mount | grep -q $(SANDBOX)/proc || sudo mount --bind /proc $(SANDBOX)/proc
mount | grep -q $(SANDBOX)/dev || sudo mount --bind /dev $(SANDBOX)/dev
endef
@ -27,4 +39,3 @@ sync
umount $(SANDBOX)/proc
umount $(SANDBOX)/dev
endef