Make refactoring. Fixed some bugs and rewrote bootstrap module
This commit is contained in:
parent
d8f0b44869
commit
f9b8af014b
59
Makefile
59
Makefile
@ -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
|
||||
|
@ -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)
|
||||
|
@ -1,4 +0,0 @@
|
||||
{
|
||||
"recipes": [ "agent::default" ]
|
||||
}
|
||||
|
@ -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
|
1
bootstrap/sync/etc/nailgun_systemtype
Normal file
1
bootstrap/sync/etc/nailgun_systemtype
Normal file
@ -0,0 +1 @@
|
||||
bootstrap
|
50
config.mk
50
config.mk
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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: \
|
||||
|
@ -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
|
@ -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) \
|
||||
|
@ -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
|
@ -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
|
@ -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 $@))
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -12,6 +12,7 @@ bind-utils
|
||||
byacc
|
||||
centos-release
|
||||
cirros-testvm
|
||||
cronie-noanacron
|
||||
cman
|
||||
cobbler
|
||||
cobbler-web
|
||||
|
5
rules.mk
5
rules.mk
@ -8,6 +8,11 @@ define ACTION.TOUCH
|
||||
touch $@
|
||||
endef
|
||||
|
||||
define NEWLINE
|
||||
|
||||
|
||||
endef
|
||||
|
||||
$(BUILD_DIR)/%/.dir:
|
||||
mkdir -p $(@D)
|
||||
@touch $@
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user