Build process of ovirt-node and the plugins

Slides:



Advertisements
Similar presentations
Openshift Jason Shepherd Middleware Support Engineer, Red Hat August 15, 2012.
Advertisements

Customizing a Cluster. What We’ll Be Doing Discuss how to add new packages to compute nodes Discuss frontend and compute node partitioning Discuss how.
Virtual Machine and UNIX. What is a VM? VM stands for Virtual Machine. It is a software emulation of hardware. By using a VM, you can have the same hardware.
Version control Using Git 1Version control, using Git.
Dustin Harman VM Workshop 2015 RPM Basics. What is RPM? Red Hat Package Manager Native package manager on RHEL, Fedora, SUSE, some Mandriva RPM/SRPM files.
The EPIKH Project (Exchange Programme to advance e-Infrastructure Know-How) Overview of software tools for gLite installation & configuration.
The EPIKH Project (Exchange Programme to advance e-Infrastructure Know-How) VOMS Installation and configuration Bouchra
system hardening Act of modifying a system to make it more secure Protecting against internal and external threats Usually a balance between security.
October, Scientific Linux INFN/Trieste B.Gobbo – Compass R.Gomezel - T.Macorini - L.Strizzolo INFN - Trieste.
Yannick Patois – CVS and Autobuild tools at CCIN2P3 – hepix - October, n° 1 CVS setup at CC-IN2P3 and Datagrid edg- build tools CVS management,
EMT 2390L Lecture 1 Dr. José M. Reyes Álamo. Outline About Linux Install Linux in a Virtual Machine.
baltrad node installation for beginners On Ubuntu Jesper Ellerbæk Nielsen Aalborg University, DK.
DB server + PHPMyAdmin ดรัสวิน วงศ์ปรเมษฐ์ สาขาวิชาเทคโนโลยีสารสนเทศ คณะ วิทยาศาสตร์ มรภ. บร. 19/10/56.
Linux in a Virtual Environment Nagarajan Prabakar School of Computing and Information Sciences Florida International University.
Version control Using Git Version control, using Git1.
…using Git/Tortoise Git
Gotta get Git Chris Sherwood and Alfredo Aretxabaleta USGS Woods Hole.
© 2006 UC Regents1 Track 1: Cluster and Grid Computing NBCR Summer Institute Session 2.1: Cluster and Grid Computing: Case Studies Building a Roll August.
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
Installing Applications in FreeBSD lctseng. Computer Center, CS, NCTU 2 Before we start  Permission issue root: the super user Like administrator in.
Basic Setup of OpenMeetings Version Three Styles for Setup Style1 : Starting from Scratch – Starting from svn check out and compiling with ant.
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
Tito Miroslav Suchý Red Hat
Fedora Remix FeltonLUG 04 Apr 2009 Fedora Remix Karsten 'quaid' Wade & Fedora Contributor Docs, Ambassadors,
Getting Started in RPM Packaging Izhar Firdaus / KageSenshi Contributor Fedora Project
April 1st, 2009 Cobbler Provisioning Made Easy Jasper Capel.
RPM101: A gentle intro to creating your own packages Richard Keech Red Hat Asia-Pacific.
Overview of software tools for gLite installation & configuration
New Tools Used by the Scientific Linux Team
Andrea Chierici Virtualization tutorial Catania 1-3 dicember 2010
Cross-Distribution Packaging Made Easy OSDC 2011, Canberra
Ovirt guest agent Date: November 2011 Speaker Name: Barak Azulay
Development process Douglas Schilling Landgraf
Generic registration Douglas Schilling Landgraf
Abstract After a SIG has been approved, one of the next steps is to get products out to users. During this talk, Niels will explain how the Storage SIG.
Hadoop Architecture Mr. Sriram
application into a Flatpak
AI How to: System Update and Additional Software
Packaging a Structural Biology Application – imod / 3dmod
Get Me Started! Setting up a development setup
V2V – Migrating virtual machines to oVirt
NTP, Syslog & Secure Shell
The Architecture of oVirt Node
Provisioning with custom builds and Kickstart
Version Control.
Keeping track of all the copies of your files
oVirt Node Project Douglas Schilling Landgraf
Version Control with Subversion (SVN)
Version control, using Git
Introduction to CVMFS A way to distribute HEP software on cloud
Machine Learning Workshop
StratusLab Cloud Installation
Spacewalk and Koji at Fermilab
Macaualy2 Workshop Berkeley 2017
Fedora Remix Fedora Remix Clint Savage
Storing, Sending, and Tracking Files Recitation 2
June 2011 David Front Weizmann Institute
Lab 1 introduction, debrief
Fedora Remix Paul W. Frields Fedora Project Leader CA-LUG, 11 Feb 2009
Akshay Narayan git up to speed with RCS Akshay Narayan
slides borrowed and adapted from Alex Mariakis and CSE 390a
Getting Started with Contribution to Openstack
Lab #1 Install Linux & How to Build Live CD
OPS235: Lab 2 Virtual Machines – Part I
Git started with git: 2018 edition
Version Control with Git
Version Control with Git and GitHub
RHCSA Study Prep.
Introduction to The Git Version Control System
Download the PPT and code from github as below
Presentation transcript:

Build process of ovirt-node and the plugins Douglas Landgraf <dougsland@redhat.com> Red Hat Inc.

ovirt-node

Building ovirt-node Suggestions before start.. Create a Virtual Machine to be the builder Do not add random external repos Use the distro you want the iso should use as base In others words: If you want to distribute an EL6 image, build the image on top of CentOS 6

Building ovirt-node Let's get started.. Create a non root user for builds Adds the user to sudoers # visudo mydeveluser ALL=(ALL) NOPASSWD: ALL Adds the EPEL repo https://fedoraproject.org/wiki/EPEL Login as the new non root user Install needed packages $ sudo yum install livecd-tools appliance-tools-minimizer fedora-packager python-devel rpm-build createrepo selinux-policy-doc checkpolicy selinux-policy-devel hardlink autoconf ltrace automake python-mock pykickstart python-lockfile

Building ovirt-node 6. Create a cache dir $ mkdir ~/ovirt-cache 7. Clone the ovirt-node and ovirt-node-iso $ git clone http://gerrit.ovirt.org/p/ovirt-node.git $ git clone http://gerrit.ovirt.org/p/ovirt-node-iso.git 8. Set env variables for the building $ export OVIRT_NODE_BASE=/home/mynewuser $ export OVIRT_CACHE_DIR=~/ovirt-cache $ export OVIRT_LOCAL_REPO=file://${OVIRT_CACHE_DIR}/ovirt * Adding these variables to .bashrc helps for next login

Building ovirt-node 9. Generating the packages based on kickstart.. $cd ovirt-node $ovirt-node> make your changes $ovirt-node> ./autogen.sh --with-image-minimizer $ovirt-node> make publish * Please note if you execute ./autogen.sh without --with-image-minimizer the .py will remain (helps for debugging) Important distro files on source tree for building: recipes/<distro>-pkgs.ks (Packages to be added or removed) recipes/<distro>-install.ks (Services to be enabled or disabled) recipes/<distro>-post.ks (Scripting/patches after packages were installed) recipes/<distro>-minimizer.ks (Minimization of packages) recipes/common-* (Common stuff for the distro)

Building ovirt-node 10. Generating the iso $cd ovirt-node-iso $ovirt-node-iso> ./autogen.sh --with-recipe=$OVIRT_NODE_BASE/ovirt-node/recipe $ovirt-node-iso> make iso publish Did you know? The distro and repos selections happens in Makefile.am You can add repos via OVIRT_REPO_URL, example: $ make OVIRT_REPO_URL="http://127.0.0.1/repo http://127.0.0.1/repo2”

Ovirt Node Plugins

Building plugins Make sure all patches are tested and merged to the branch Increase the release of package and add the changes into Changelog of spec file (commit both into the branch) Create a tag for the release (Make sure you have cloned the tree via ssh, not anonymous) $ git tag -a ovirt-node-plugin-vdsm-x.y.z -m 'Release of ovirt node plugin vdsm xyz' $ git push gerrit.ovirt.org:ovirt-node-plugin-vdsm ovirt-node-plugin-vdsm-x.y.z

Building plugins 4. Make a local build $plugin-dir> ./autogen && make rpms 5. Make a scratch-build in koji on Fedora's servers with the .srpm for the platforms needed (Why building in koji?) Example: $ fedpkg --dist el6 --srpm /path/to/ovirt-node-plugin-vdsm.srpm $ fedpkg --dist epel7--srpm /path/to/ovirt-node-plugin-vdsm.srpm $ fedpkg --dist f20 --srpm /path/to/ovirt-node-plugin-vdsm.srpm 6. Provide the koji's link to release engineers

Testing changes

Testing changes 1) Manual test: On node: 1. Remount file-system as read and write # mount -o remount,rw / 2. Enable sshd service and add a password to root # /usr/libexec/ovirt-config-password (enable sshd and add pass to root) 3. Copy the sources of plugin into the node # scp source.py root@node_ip_addre:/path/to/original/source.py 4. On node execute the new version for tests: # python -m ovirt.node.setup.__main__ --debug

Testing changes 2) Simulate the node via dry-mode Install needed packages: $ sudo yum install PyPAM python-urwind cracklib-python On RHEL < 7 based machines (python 2.6 machines): Simulating the installer: $ovirt-node> cd src $ovirt-node/src> python -m “ovirt.node.setup.__main__” --debug --dry Simulating the setup menu: $ovirt-node/src> python -m “ovirt.node.installer.__main__” --debug –dry Log available at: /tmp/ovirt-node.debug.log

Testing changes On Fedora or RHEL >= 7 based machines: Simulating the installer: $ovirt-node> cd src $ovirt-node/src> python -m ovirt.node.setup --debug --dry Simulating the setup menu: $ovirt-node/src> python -m ovirt.node.installer --debug –dry Log available at: /tmp/ovirt-node.debug.log

Testing changes 3) A simple example of edit-node using an installed ovirt-node-plugin-vdsm and using local repo to disable non need repos $ ovirt-node/tool/edit-node –repo edit-node.repo –install ovirt-node-plugin-vdsm ovirt-node.iso

Testing changes 3.1) Generate RPM with your changes and add it to node via edit-node tool 1. Generate ovirt-node iso 2. Generate the rpms $plug> make rpms 3. Copy the rpms to a http server $ mkdir -p /var/www/nodebuild $ cp *.rpm /var/www/nodebuild $ createrepo /var/www/nodebuild 4. Create a .repo file to be used with edit-node tool $ vi nodebuild.repo [nodebuild] name=nodebuild baseurl=http://127.0.0.1/nodebuild enabled=1 gpgcheck=0

Testing changes Go to edit-node dir 5. $ cd ovirt-node/tools Execute edit-node 6. $ python ./edit-node --repo=/path/to/nodebuild.repo --install=ovirt-node-plugin-vdsm ovirt-node.iso

References Node Building http://www.ovirt.org/Node_Building

Comments? THANK YOU! http://www.ovirt.org