diff --git a/Makefile b/Makefile index 4e4953025..4473f80c7 100644 --- a/Makefile +++ b/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 diff --git a/bootstrap/module.mk b/bootstrap/module.mk index 6654b696a..7fb99f8d4 100644 --- a/bootstrap/module.mk +++ b/bootstrap/module.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) diff --git a/bootstrap/solo/solo.json b/bootstrap/solo/solo.json deleted file mode 100644 index 6275605c4..000000000 --- a/bootstrap/solo/solo.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "recipes": [ "agent::default" ] -} - diff --git a/bootstrap/solo/solo.rb b/bootstrap/solo/solo.rb deleted file mode 100644 index b603fb734..000000000 --- a/bootstrap/solo/solo.rb +++ /dev/null @@ -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 diff --git a/bootstrap/sync/etc/nailgun_systemtype b/bootstrap/sync/etc/nailgun_systemtype new file mode 100644 index 000000000..b7c200acb --- /dev/null +++ b/bootstrap/sync/etc/nailgun_systemtype @@ -0,0 +1 @@ +bootstrap diff --git a/config.mk b/config.mk index 25dbc1912..e853aad52 100644 --- a/config.mk +++ b/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 diff --git a/gnupg/module.mk b/gnupg/module.mk deleted file mode 100644 index 3ef144cac..000000000 --- a/gnupg/module.mk +++ /dev/null @@ -1,6 +0,0 @@ - -gnupg.home:=gnupg -gnupg.default-key:=Mirantis Product -gnupg.default-key-id:=F8AF89DD -gnupg.keyphrase-file:=gnupg/keyphrase - diff --git a/iso/module.mk b/iso/module.mk index 4a8497186..eb23b6856 100644 --- a/iso/module.mk +++ b/iso/module.mk @@ -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) diff --git a/mirror/centos/boot.mk b/mirror/centos/boot.mk index 1a4e5d263..0293dfc8f 100644 --- a/mirror/centos/boot.mk +++ b/mirror/centos/boot.mk @@ -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 diff --git a/mirror/centos/config.mk b/mirror/centos/config.mk deleted file mode 100644 index f3f5060ee..000000000 --- a/mirror/centos/config.mk +++ /dev/null @@ -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 \ No newline at end of file diff --git a/mirror/centos/repo.mk b/mirror/centos/repo.mk index a306fa4f2..612df0e45 100644 --- a/mirror/centos/repo.mk +++ b/mirror/centos/repo.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: \ diff --git a/mirror/centos/config_yum.mk b/mirror/centos/yum_repos.mk similarity index 100% rename from mirror/centos/config_yum.mk rename to mirror/centos/yum_repos.mk diff --git a/mirror/eggs/config.mk b/mirror/eggs/config.mk deleted file mode 100644 index 16827ce0b..000000000 --- a/mirror/eggs/config.mk +++ /dev/null @@ -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 diff --git a/mirror/eggs/module.mk b/mirror/eggs/module.mk index ab40cefd3..97cb18966 100644 --- a/mirror/eggs/module.mk +++ b/mirror/eggs/module.mk @@ -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) \ diff --git a/mirror/gems/config.mk b/mirror/gems/config.mk deleted file mode 100644 index b5ac12efe..000000000 --- a/mirror/gems/config.mk +++ /dev/null @@ -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 \ No newline at end of file diff --git a/mirror/src/config.mk b/mirror/src/config.mk deleted file mode 100644 index 435360208..000000000 --- a/mirror/src/config.mk +++ /dev/null @@ -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 \ No newline at end of file diff --git a/mirror/src/module.mk b/mirror/src/module.mk index 63924e3e5..f8660a763 100644 --- a/mirror/src/module.mk +++ b/mirror/src/module.mk @@ -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 $@)) diff --git a/nailgun/module.mk b/nailgun/module.mk index 33cc32823..32a57d571 100644 --- a/nailgun/module.mk +++ b/nailgun/module.mk @@ -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 diff --git a/packages/rpm/module.mk b/packages/rpm/module.mk index e0cb8728a..b36f52ef6 100644 --- a/packages/rpm/module.mk +++ b/packages/rpm/module.mk @@ -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 diff --git a/requirements-rpm.txt b/requirements-rpm.txt index 30c2c4d39..9a6f3a336 100644 --- a/requirements-rpm.txt +++ b/requirements-rpm.txt @@ -12,6 +12,7 @@ bind-utils byacc centos-release cirros-testvm +cronie-noanacron cman cobbler cobbler-web diff --git a/rules.mk b/rules.mk index f7dcd39c8..c0bf7aaeb 100644 --- a/rules.mk +++ b/rules.mk @@ -8,6 +8,11 @@ define ACTION.TOUCH touch $@ endef +define NEWLINE + + +endef + $(BUILD_DIR)/%/.dir: mkdir -p $(@D) @touch $@ diff --git a/sandbox/module.mk b/sandbox.mk similarity index 75% rename from sandbox/module.mk rename to sandbox.mk index b4e4a7d0c..c7ae751b8 100644 --- a/sandbox/module.mk +++ b/sandbox.mk @@ -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 -