Hello, we got 1.6.2 out, and for now we don't have fedora RPMs. With this release, as I mentioned, we tried to simplify the way we handle contributions and we opened up some community wiki part of our web site. We didn't make it in time to have RPMs for Fedora, but with this release we are having nightly builds, and we can get the RPMs in there easily enough and perhaps once they pass long term testing, we can promote them to the domwnload page. In this regards I have few questions: we depend on libvirt to run instances, and we are running into some problems. The first one is: how do we give permission to the user eucalyptus to run instances? I think you are using policykit, so how do we configure it correctly? Also, we need to tell qemu-kvm to drop the console output in a file close to where we run the instance, but we are having permissions problems. I think that qemu is running as the user'qemu', so for now the quick fix was to create the file in the right place, add the 'eucalyptus' user to the 'qemu' group and then start the instance. Is there a more elegant way? Thanks for all feedback! graziano PS: I attach here the spec file after we did a first pass. Comments are always welcomed of course. On Thu, Feb 11, 2010 at 10:24:28AM -0600, Garrett Holmstrom wrote: > On Thu, Feb 11, 2010 at 1:46 AM, graziano obertelli > <graziano at eucalyptus.com> wrote: > > So, the reason's why Conflict is there, is beacause we need all the > > eucalyptus pacakges to be the same version. In our testing it happened > > that some older versions were left behind, making the experience failry > > miserable (failure modes in this case are very frustratring to chase). I > > can remove it, but how do I ensure that all eucalyptus pacakges installed > > are of the same version? > > Just have every subpackage Require the main one with a versioned dependency: > > Requires: %{name} = %{version}-%{release} > > When one tries to update the main package the older subpackages' > dependencies will be unsatisfied, causing yum to pull in the new ones > to fix the problem. Conversely, when a subpackage is updated it will > require the newer version of the main package and pull it in. > > > Does %global exists also in CentOS? > > Yes. > > > Hopefully I will have sometime tomorrow and over the weekend to work on > > the packaging and writing a better spec file (there are still quite a few > > point you mentioned that I have not tackled). Is that ok for me to post > > the spec file (once I get something which works) on this list to have more > > feedback? > > I certainly wouldn't mind. Then again it isn't difficult to pull up > the current version in Bazaar either. > > The euca2ools spec file from the tarballs doesn't work on Fedora at > all because it simply assumes the machine runs CentOS with Python 2.5. > Perhaps I can try working on a version that works but is still > relatively portable. > _______________________________________________ > cloud mailing list > cloud at lists.fedoraproject.org > https://admin.fedoraproject.org/mailman/listinfo/cloud -- Graziano Obertelli Eucalyptus Systems, Inc. 130 Castilian St. Goleta, CA 93117 Office: 805-845-8000 www.eucalyptus.com -------------- next part -------------- %global is_suse %(test -e /etc/SuSE-release && echo 1 || echo 0) %global is_centos %(grep CentOS /etc/redhat-release > /dev/null && echo 1 || echo 0) %global is_fedora %(grep Fedora /etc/redhat-release > /dev/null && echo 1 || echo 0) %global euca_dhcp dhcp %global euca_httpd httpd %global euca_curl curl %global euca_libcurl curl-devel %global euca_build_req vconfig, wget, rsync %if %is_suse %global euca_dhcp dhcp-server %global euca_httpd apache2 %global euca_libvirt libvirt, xen-tools %global euca_hypervisor xen %global euca_curl libcurl4 %global euca_libcurl libcurl-devel %global euca_bridge br0 %global euca_java java-sdk >= 1.6.0 %global euca_build_req vlan %endif %if %is_centos %global euca_libvirt libvirt >= 0.6 %global euca_hypervisor xen %global euca_bridge xenbr0 %global euca_java java-sdk >= 1.6.0 %endif %if %is_fedora %global euca_libvirt libvirt %global euca_hypervisor kvm %global euca_bridge br0 %global euca_java java-devel >= 1:1.6.0 %endif Summary: Elastic Utility Computing Architecture Name: eucalyptus Version: 1.6.2 Release: 1 License: GPLv3 Group: Applications/System BuildRequires: gcc, make, %{euca_libvirt}-devel, %{euca_libvirt}, %{euca_libcurl}, ant, ant-nodeps, %{euca_java}, euca-axis2c >= 1.6.0, euca-rampartc >= 1.3.0 Requires: %{euca_build_req} Source: http://eucalyptussoftware.com/downloads/releases/eucalyptus-%{version}-src.tar.gz URL: http://open.eucalyptus.com %description EUCALYPTUS is an open source service overlay that implements elastic computing using existing resources. The goal of EUCALYPTUS is to allow sites with existing clusters and server infrastructure to co-host an elastic computing service that is interface-compatible with Amazon's EC2. This package contains the common parts: you will need to install either eucalyptus-cloud, eucalyptus-cluster-contrller or eucalyptus-node-controller (or all of them). %package common-java Summary: Elastic Utility Computing Architecture - ws java stack Requires: eucalyptus = 1.6.2, %{euca_java}, lvm2 Group: Applications/System %description common-java EUCALYPTUS is an open source service overlay that implements elastic computing using existing resources. The goal of EUCALYPTUS is to allow sites with existing clusters and server infrastructure to co-host an elastic computing service that is interface-compatible with Amazon's EC2. This package contains the java WS stack. %package walrus Summary: Elastic Utility Computing Architecture - walrus Requires: eucalyptus-common-java = 1.6.2, %{euca_java}, lvm2 Group: Applications/System %description walrus EUCALYPTUS is an open source service overlay that implements elastic computing using existing resources. The goal of EUCALYPTUS is to allow sites with existing clusters and server infrastructure to co-host an elastic computing service that is interface-compatible with Amazon's EC2. This package contains storage component for your cloud: images and buckets are handled by walrus. Tipically this package is installed alongside the cloud controller. %package storage-controller Summary: Elastic Utility Computing Architecture - storage controller Requires: eucalyptus-common-java = 1.6.2, %{euca_java}, lvm2, vblade Group: Applications/System %description storage-controller EUCALYPTUS is an open source service overlay that implements elastic computing using existing resources. The goal of EUCALYPTUS is to allow sites with existing clusters and server infrastructure to co-host an elastic computing service that is interface-compatible with Amazon's EC2. This package contains the storage controller part of eucalyptus which handles the elastic blocks for a given cluster. Tipically you install it alongside the cluster-controller. %package cloud Summary: Elastic Utility Computing Architecture - cloud controller Requires: eucalyptus-common-java = 1.6.2, %{euca_java}, lvm2 Group: Applications/System %description cloud EUCALYPTUS is an open source service overlay that implements elastic computing using existing resources. The goal of EUCALYPTUS is to allow sites with existing clusters and server infrastructure to co-host an elastic computing service that is interface-compatible with Amazon's EC2. This package contains the cloud controller part of eucalyptus: the cloud controller needs to be reachable by both the cluster controller and from the cloud clients. %package cluster-controller Summary: Elastic Utility Computing Architecture - cluster controller Requires: eucalyptus = 1.6.2, eucalyptus-gather-logs = 1.6.2, %{euca_httpd}, euca-axis2c >= 1.6.0, euca-rampartc >= 1.3.0, iptables, bridge-utils, %{euca_dhcp}, vtun Group: Applications/System %description cluster-controller EUCALYPTUS is an open source service overlay that implements elastic computing using existing resources. The goal of EUCALYPTUS is to allow sites with existing clusters and server infrastructure to co-host an elastic computing service that is interface-compatible with Amazon's EC2. This package contains the cluster controller part of eucalyptus: it handles multiple node controllers. %package node-controller Summary: Elastic Utility Computing Architecture - node controller Requires: eucalyptus = 1.6.2, eucalyptus-gather-logs = 1.6.2, %{euca_httpd}, euca-axis2c >= 1.6.0, euca-rampartc >= 1.3.0, bridge-utils, %{euca_libvirt}, %{euca_curl}, %{euca_hypervisor} Group: Applications/System %description node-controller EUCALYPTUS is an open source service overlay that implements elastic computing using existing resources. The goal of EUCALYPTUS is to allow sites with existing clusters and server infrastructure to co-host an elastic computing service that is interface-compatible with Amazon's EC2. This package contains the node controller part of eucalyptus: this is the components that handles the instances. %package gather-logs Summary: Elastic Utility Computing Architecture - log service Requires: eucalyptus = 1.6.2, %{euca_httpd}, euca-axis2c >= 1.6.0, euca-rampartc >= 1.3.0 Group: Applications/System %description gather-logs EUCALYPTUS is an open source service overlay that implements elastic computing using existing resources. The goal of EUCALYPTUS is to allow sites with existing clusters and server infrastructure to co-host an elastic computing service that is interface-compatible with Amazon's EC2. This package contains the internal log service of eucalyptus. %prep %setup -n eucalyptus-%{version}-src %build export DESTDIR=$RPM_BUILD_ROOT ./configure --with-axis2=/opt/packages/axis2-1.4 --with-axis2c=/opt/euca-axis2c --enable-debug --prefix=/ cd clc make deps cd .. make 2> err.log > out.log %install export DESTDIR=$RPM_BUILD_ROOT make install #CWD=`pwd` #cd $RPM_BUILD_ROOT #ls usr/share/eucalyptus/*jar | sed "s/^/\//" > $CWD/jar_list #cd $CWD %clean export DESTDIR=$RPM_BUILD_ROOT make uninstall [ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT} rm -rf $RPM_BUILD_DIR/eucalyptus-%{version} %files %doc LICENSE INSTALL README CHANGELOG /etc/eucalyptus/eucalyptus.conf /var/lib/eucalyptus/keys /var/log/eucalyptus /var/run/eucalyptus /usr/share/eucalyptus/add_key.pl /usr/share/eucalyptus/euca_ipt /usr/share/eucalyptus/populate_arp.pl /usr/share/eucalyptus/euca_upgrade /usr/lib/eucalyptus/euca_rootwrap /usr/lib/eucalyptus/euca_mountwrap /etc/bash_completion.d/euca_conf /usr/sbin/euca_conf /usr/sbin/euca_sync_key /usr/sbin/euca_killall /etc/eucalyptus/httpd.conf /etc/eucalyptus/eucalyptus-version #/usr/share/eucalyptus/connect_iscsitarget.pl #/usr/share/eucalyptus/disconnect_iscsitarget.pl #/usr/share/eucalyptus/get_iscsitarget.pl #%files common-java -f jar_list %files common-java /etc/init.d/eucalyptus-cloud /etc/eucalyptus/cloud.d /var/lib/eucalyptus/db /var/lib/eucalyptus/modules /var/lib/eucalyptus/webapps /usr/lib/eucalyptus/liblvm2control.so /usr/sbin/eucalyptus-cloud /usr/share/eucalyptus/*jar* %files cloud %files walrus %files storage-controller %files cluster-controller /opt/euca-axis2c/services/EucalyptusCC /etc/init.d/eucalyptus-cc /etc/eucalyptus/vtunall.conf.template %files node-controller /usr/share/eucalyptus/gen_libvirt_xml /usr/share/eucalyptus/gen_kvm_libvirt_xml /usr/share/eucalyptus/partition2disk /usr/share/eucalyptus/get_xen_info /usr/share/eucalyptus/get_sys_info /usr/share/eucalyptus/detach.pl /usr/sbin/euca_test_nc /opt/euca-axis2c/services/EucalyptusNC /etc/init.d/eucalyptus-nc %files gather-logs /opt/euca-axis2c/services/EucalyptusGL %pre if [ "$1" = "2" ]; then # let's see where we installed EUCADIRS="/ /opt/eucalyptus/" for i in $EUCADIRS do if [ -e $i/etc/eucalyptus/eucalyptus-version ]; then EUCADIR=$i break fi done cd $EUCADIR # stop all old services if [ -x etc/init.d/eucalyptus-cloud ]; then etc/init.d/eucalyptus-cloud stop fi if [ -x etc/init.d/eucalyptus-cc ]; then etc/init.d/eucalyptus-cc stop fi if [ -x etc/init.d/eucalyptus-nc ]; then etc/init.d/eucalyptus-nc stop fi # save a backup of important data DATESTR=`date +%s` echo /root/eucalyptus.backup.$DATESTR > /tmp/eucaback.dir mkdir -p /root/eucalyptus.backup.$DATESTR cd /root/eucalyptus.backup.$DATESTR EUCABACKUPS="" for i in $EUCADIR/var/lib/eucalyptus/keys/ $EUCADIR/var/lib/eucalyptus/db/ $EUCADIR/etc/eucalyptus/eucalyptus.conf $EUCADIR/etc/eucalyptus/eucalyptus-version do if [ -e $i ]; then EUCABACKUPS="$EUCABACKUPS $i" fi done tar cf - $EUCABACKUPS 2>/dev/null | tar xf - 2>/dev/null cd $EUCADIR fi %post # we need a eucalyptus user if ! getent passwd eucalyptus > /dev/null ; then %if %is_suse groupadd eucalyptus useradd -M eucalyptus -g eucalyptus %endif %if %is_centos adduser -M eucalyptus %endif fi if [ "$1" = "1" ]; then # let's configure eucalyptus /usr/sbin/euca_conf -d / --instances /usr/local/eucalyptus/ -hypervisor %{euca_hypervisor} -bridge %{euca_bridge} fi if [ "$1" = "2" ]; then /usr/sbin/euca_conf -d / --instances /usr/local/eucalyptus/ -hypervisor %{euca_hypervisor} -bridge %{euca_bridge} if [ -f /tmp/eucaback.dir ]; then BACKDIR=`cat /tmp/eucaback.dir` if [ -d "$BACKDIR" ]; then /usr/share/eucalyptus/euca_upgrade --old $BACKDIR --new / --conf --keys /usr/sbin/euca_conf -setup fi fi fi # final setup and set the new user /usr/sbin/euca_conf -setup -user eucalyptus %post common-java if [ "$1" = "2" ]; then if [ -f /tmp/eucaback.dir ]; then BACKDIR=`cat /tmp/eucaback.dir` if [ -d "$BACKDIR" ]; then /usr/share/eucalyptus/euca_upgrade --old $BACKDIR --new / --db /usr/sbin/euca_conf -setup fi fi fi chkconfig --add eucalyptus-cloud %post cloud /usr/sbin/euca_conf --enable cloud %if %is_centos if [ -e /etc/sysconfig/system-config-securitylevel ]; then if ! grep 8773:tcp /etc/sysconfig/system-config-securitylevel > /dev/null ; then echo "--port=8773:tcp" >> /etc/sysconfig/system-config-securitylevel echo "--port=8443:tcp" >> /etc/sysconfig/system-config-securitylevel fi fi %endif # upgrade #if [ "$1" = "2" ]; #then # if [ -f /tmp/eucaback.dir ]; then # BACKDIR=`cat /tmp/eucaback.dir` # if [ -d "$BACKDIR" ]; then # /usr/share/eucalyptus/euca_upgrade --old $BACKDIR --new / --db # /usr/sbin/euca_conf -setup # fi # fi # cd / # [ -e /opt/eucalyptus/etc/eucalyptus/eucalyptus-version ] && cd /opt/eucalyptus # if [ -e var/lib/eucalyptus/db/eucalyptus_volumes.properties ]; # then # # if groovy was installed on the same shell the # # environment can be wrong: we need to souce groovy env # if [ -e /etc/profile.d/groovy.sh ]; # then # . /etc/profile.d/groovy.sh # fi # /usr/share/eucalyptus/euca_upgrade --old /opt/eucalyptus --new / --db # fi #fi %post walrus /usr/sbin/euca_conf --enable walrus %post storage-controller /usr/sbin/euca_conf --enable sc %post cluster-controller chkconfig --add eucalyptus-cc %if %is_centos if [ -e /etc/sysconfig/system-config-securitylevel ]; then if ! grep 8774:tcp /etc/sysconfig/system-config-securitylevel > /dev/null ; then echo "--port=8774:tcp" >> /etc/sysconfig/system-config-securitylevel fi fi %endif #if [ "$1" = "2" ]; #then # if [ -f /tmp/eucaback.dir ]; then # BACKDIR=`cat /tmp/eucaback.dir` # if [ -d "$BACKDIR" ]; then # echo /usr/share/eucalyptus/euca_upgrade --old $BACKDIR --new / --conf --keys # fi # fi #fi %post node-controller chkconfig --add eucalyptus-nc %if %is_centos if [ -e /etc/sysconfig/system-config-securitylevel ]; then if ! grep 8775:tcp /etc/sysconfig/system-config-securitylevel > /dev/null ; then echo "--port=8775:tcp" >> /etc/sysconfig/system-config-securitylevel fi fi %endif %if %is_suse if [ -e /etc/PolicyKit/PolicyKit.conf ]; then if ! grep eucalyptus /etc/PolicyKit/PolicyKit.conf > /dev/null ; then sed -i '/<config version/ a <match action="org.libvirt.unix.manage">\n <match user="eucalyptus">\n <return result="yes"/>\n </match>\n</match>' /etc/PolicyKit/PolicyKit.conf fi fi %endif #if [ "$1" = "2" ]; #then # if [ -f /tmp/eucaback.dir ]; then # BACKDIR=`cat /tmp/eucaback.dir` # if [ -d "$BACKDIR" ]; then # echo /usr/share/eucalyptus/euca_upgrade --old $BACKDIR --new / --conf --keys # fi # fi #fi %postun # in case of removal let's try to clean up the best we can if [ "$1" = "0" ]; then rm -rf /var/log/eucalyptus rm -rf /etc/eucalyptus/http* fi %preun cloud if [ "$1" = "0" ]; then %if %is_centos if [ -e /etc/sysconfig/system-config-securitylevel ]; then sed -i '/^--port=8773/ d' /etc/sysconfig/system-config-securitylevel sed -i '/^--port=8443/ d' /etc/sysconfig/system-config-securitylevel fi %endif [ -x /usr/sbin/euca_conf ] && /usr/sbin/euca_conf --disable cloud if [ -e /etc/init.d/eucalyptus-cloud -a /etc/eucalyptus/eucalyptus.conf ]; then /etc/init.d/eucalyptus-cloud restart || true fi fi %preun walrus if [ "$1" = "0" ]; then [ -x /usr/sbin/euca_conf ] && /usr/sbin/euca_conf --disable walrus if [ -e /etc/init.d/eucalyptus-cloud ]; then /etc/init.d/eucalyptus-cloud restart || true fi fi %preun storage-controller if [ "$1" = "0" ]; then [ -x /usr/sbin/euca_conf ] && /usr/sbin/euca_conf --disable sc if [ -e /etc/init.d/eucalyptus-cloud -a /etc/eucalyptus/eucalyptus.conf ]; then /etc/init.d/eucalyptus-cloud restart || true fi fi %preun common-java if [ "$1" = "0" ]; then if [ -f /etc/eucalyptus/eucalyptus.conf ]; then /etc/init.d/eucalyptus-cloud stop fi chkconfig --del eucalyptus-cloud rm -f /var/lib/eucalyptus/services fi %preun cluster-controller if [ "$1" = "0" ]; then if [ -f /etc/eucalyptus/eucalyptus.conf ]; then /etc/init.d/eucalyptus-cc cleanstop fi chkconfig --del eucalyptus-cc %if %is_centos if [ -e /etc/sysconfig/system-config-securitylevel ]; then sed -i '/^--port=8774/ d' /etc/sysconfig/system-config-securitylevel fi %endif fi %preun node-controller if [ "$1" = "0" ]; then if [ -f /etc/eucalyptus/eucalyptus.conf ]; then /etc/init.d/eucalyptus-nc stop fi chkconfig --del eucalyptus-nc %if %is_centos if [ -e /etc/sysconfig/system-config-securitylevel ]; then sed -i '/^--port=8775/ d' /etc/sysconfig/system-config-securitylevel fi %endif fi %changelog * Fri Feb 12 2010 Eucalyptus Systems <support at open.eucalyptus.com> - 1.6.2 - Thanks to Garrett Holmstrom and cloud at lists.fedoraproject.org for helping with the RPM pacakging - Re-worked upgrade path for RPM install - Re-worked spec file to honor DESTDIR * Thu Nov 5 2009 Eucalyptus Systems <support at open.eucalyptus.com> - 1.6.1 - install in / instead of /opt/eucalyptus * Mon Jun 15 2009 eucalyptus systems <support at open.eucalyptus.com> - 1.5.2 * Thu Apr 16 2009 mayhem group <support at open.eucalyptus.com> - 1.5.1 - Elastic Block Store (EBS) support (volumes & snapshots) - Better Java installation checking - New command-line administration: euca_conf -addcluster ... -addnode ... - Non-root user deployment of Eucalyptus - Binary packages for more distributions (Ubuntu et al) - Cloud registration with Rightscale (from admin's 'Credentials' tab) - New configuration options for Walrus - Better screening of usernames - Fixed account confirmation glitches * Mon Jan 5 2009 mayhem group <support at open.eucalyptus.com> - 1.4 - Added new networking subsystem that no longer depends on VDE - Added support for elastic IP assignment and security using the 'MANAGED' networking mode - Added Walrus: a Amazon S3 interface compatible storage manager. Walrus handles storage of user data as well as filesystem images, kernels, and ramdisks. - Support for new operations: reboot instance and get console output. - Revamped logging throughout, with five levels a la log4j. * Thu Aug 28 2008 mayhem group <support at open.eucalyptus.com> - 1.3 * Mon Jul 28 2008 mayhem group <support at open.eucalyptus.com> - 1.2 - Removed cloud, cluster controller and node controller and created their own packages. - Added the possibility of installing Eucalyptus from RPMs (without ROCKS). - Added WS-security for internal communication - Added URL Query Interface for interacting with Eucalyptus - Cluster Controller improvements: - Instance caching added to improve performance under certain conditions - Thread locks removed to improve performance - NC resource information gathered asynchronously to improve scheduler performance - Network control improvements: - Added ability to configure 'public' instance interface network parameters (instead of hardcoded 10. network) - Lots of reliability changes - Cloud Controller improvements: - Pure in-memory database - Image registration over WS interface - Improved build procedure - Web interface improvements: - For all users (query interface credentials, listing of available images) - For the administrator (addition, approval, disabling, and deletion of users; disabling of images) - Numerous bug fixes, improving stability and performance. In particular, but not limited to: - Recovering Cloud Controller system state - Timeout-related error reporting - Slimmer log files, with timestamps