To create the appliance, simply run through the following steps which will 
start the appliance via libvirt

$ cd appliance/
$ sudo appliance-creator -n deltacloud -c dcloud.ks --cache /var/tmp/act/
$ sudo virt-image deltacloud/deltacloud.xml

To build an updated deltacloud_appliance puppet recipe rpm,

$ tar czvf deltacloud_appliance.tgz deltacloud_appliance/
$ cp deltacloud_appliance.tgz ~/rpmbuild/SOURCES
$ rpmbuild -ba deltacloud_appliance.spec.

Pulp is currently being installed though integration with deltacloud is tbd 
(coming soon).
---
 appliance/dcloud.ks                                |   97 ++++++++++++++++
 appliance/deltacloud_appliance.spec                |   60 ++++++++++
 .../deltacloud_appliance/deltacloud_appliance.pp   |  117 ++++++++++++++++++++
 .../deltacloud_appliance/files/condor_config.local |   21 ++++
 .../deltacloud_appliance/files/deltacloud-core     |   74 ++++++++++++
 appliance/deltacloud_appliance/files/pg_hba.conf   |    2 +
 6 files changed, 371 insertions(+), 0 deletions(-)
 create mode 100644 appliance/dcloud.ks
 create mode 100644 appliance/deltacloud_appliance.spec
 create mode 100644 appliance/deltacloud_appliance/deltacloud_appliance.pp
 create mode 100644 appliance/deltacloud_appliance/files/condor_config.local
 create mode 100755 appliance/deltacloud_appliance/files/deltacloud-core
 create mode 100644 appliance/deltacloud_appliance/files/pg_hba.conf

diff --git a/appliance/dcloud.ks b/appliance/dcloud.ks
new file mode 100644
index 0000000..129825f
--- /dev/null
+++ b/appliance/dcloud.ks
@@ -0,0 +1,97 @@
+# Deltacloud appliance kickstart
+
+# Yum repos to use
+repo --name=f13         
--mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-13&arch=$basearch
+repo --name=f13-updates 
--mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f13&arch=$basearch
+repo --name=thincrust   --baseurl=http://www.thincrust.net/repo/noarch/
+
+# local yum repo with:
+#  * ruby 1.8.7
+#  * rails 2.3.8
+#  * patched locale_rails, activerecord, haml, and puppet rpms (to fix issues)
+#  * deltacloud aggregator rpms
+#  * condor-dcloud and libdeltacloud
+#  * deltacloud_appliance
+repo --name=deltacloud_local --baseurl=http://yum.morsi.org/repos/13
+
+# pull pulp in from here
+repo --name=pulp 
--baseurl=http://mmccune.fedorapeople.org/pulp/fedora/13/$basearch
+
+# Firewall / network configuration
+firewall --enable --ssh
+network  --bootproto=dhcp --device=eth0 --onboot=on
+
+# System authorization information
+auth --useshadow --enablemd5
+
+# System keyboard
+keyboard us
+
+# System language
+lang en_US.UTF-8
+
+# System timezone
+timezone  US/Eastern
+
+# System bootloader configuration
+bootloader --append="5" --location=mbr --timeout=1
+
+# Disk partitioning information
+part /  --fstype="ext3" --ondisk=sda --size=3072 --bytes-per-inode=4096
+
+# No need for additional config
+firstboot --disable
+
+%post
+  /sbin/chkconfig --level 35 ace on
+  mkdir /etc/sysconfig/ace
+  echo deltacloud_appliance >> /etc/sysconfig/ace/appliancename
+
+  /usr/sbin/useradd dcuser -p ""
+  # TODO (here or in deltacloud_appliance.pp) startup firefox on duser's X 
login w/ core & aggregator wuis in tabs
+%end
+
+%packages --excludedocs --nobase --instLangs=en
+...@core
+...@base-x
+...@gnome-desktop
+acpid
+bash
+chkconfig
+dhclient
+e2fsprogs
+grub
+iputils
+kernel
+lokkit
+passwd
+rootfiles
+vim-enhanced
+wget
+bind-utils
+yum
+firefox
+-authconfig
+-checkpolicy
+-dmraid
+-ed
+-fedora-logos
+-fedora-release-notes
+-kbd
+-kpartx
+-kudzu
+-libselinux
+-libselinux-python
+-lvm2
+-mdadm
+-policycoreutils
+-prelink
+-selinux-policy*
+-setserial
+-tar
+-usermode
+-wireless-tools
+-firstboot
+
+deltacloud_appliance
+%end
diff --git a/appliance/deltacloud_appliance.spec 
b/appliance/deltacloud_appliance.spec
new file mode 100644
index 0000000..44167e3
--- /dev/null
+++ b/appliance/deltacloud_appliance.spec
@@ -0,0 +1,60 @@
+%define aceHome /usr/share/ace
+%define pbuild %{_builddir}/%{name}-%{version}
+
+Summary:  DeltaCloud Appliance
+Name:     deltacloud_appliance
+Version:  0.0.1
+Release:  1%{?dist}
+
+Group:    Applications/Internet
+License:  GPLv2+
+URL:      http://deltacloud.org
+Source0:  %{name}-%{version}.tar.gz
+BuildRoot:  %{_tmppath}/%{name}-%{version}
+BuildArch:  noarch
+Requires:   ace-banners
+Requires:   ace-ssh
+Requires:   ace-postgres
+
+# Deltacloud and dependencies
+Requires:   deltacloud-aggregator
+Requires:   deltacloud-aggregator-daemons
+Requires:   deltacloud-aggregator-doc
+Requires:   condor >=  7.5.0
+Requires:   ruby
+Requires:   ruby-rdoc
+Requires:   ruby-devel
+Requires:   rubygem-rails
+Requires:   gcc-c++
+Requires:   libxml2-devel
+Requires:   libxslt-devel
+Requires:   pulp
+
+Requires:   rubygem-thin
+Requires:   rubygem-haml
+
+%description
+Deltacloud appliance
+
+%prep
+%setup -q
+
+%build
+
+%install
+rm -rf %{buildroot}
+%{__mkdir} -p %{buildroot}/%{aceHome}/appliances/%{name}
+%{__cp} -R %{pbuild}/* %{buildroot}/%{aceHome}/appliances/%{name}
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+%dir %{aceHome}
+%{aceHome}/*
+
+
+%changelog
+* Thu Mar 26 2008 Mohammed Morsi <mmo...@redhat.com> 0.0.1-1
+- Initial package
diff --git a/appliance/deltacloud_appliance/deltacloud_appliance.pp 
b/appliance/deltacloud_appliance/deltacloud_appliance.pp
new file mode 100644
index 0000000..d47ff46
--- /dev/null
+++ b/appliance/deltacloud_appliance/deltacloud_appliance.pp
@@ -0,0 +1,117 @@
+#--
+#  Copyright (C) 2010 Red Hat Inc.
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License, or (at your option) any later version.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
+#
+# Author: Mohammed Morsi <mmo...@redhat.com>
+#--
+
+#
+# deltacloud thincrust appliance
+#
+
+# Modules used by the appliance
+import "appliance_base"
+import "banners"
+import "firewall"
+#import "console"
+
+# Information about our appliance
+$appliance_name = "Deltacloud Appliance"
+$appliance_version = "0.0.1"
+
+# Configuration
+appliance_base::setup{$appliance_name:}
+appliance_base::enable_updates{$appliance_name:}
+banners::all{$appliance_name:}
+firewall::setup{$appliance_name: status=>"enabled"}
+
+# Install required gems
+single_exec{"install_required_gems":
+            command => "/usr/bin/gem install authlogic gnuplot scruffy compass 
builder"
+}
+
+# TODO setup a gem repo w/ latest snapshots of deltacloud core if we need those
+
+# Deltacloud core
+single_exec{"install_deltacloud_core":
+            command => "/usr/bin/gem install deltacloud-client deltacloud-core"
+}
+
+# Configure and start condor-dcloud
+file {"/var/lib/condor/condor_config.local":
+       source => "puppet:///deltacloud_appliance/condor_config.local",
+       notify          => Service[condor]
+}
+service {"condor" :
+       ensure => running,
+       enable => true
+}
+
+# Configure and start postgres
+single_exec {"initialize_db":
+      command => "/sbin/service postgresql initdb"
+}
+file {"/var/lib/pgsql/data/pg_hba.conf":
+       source => "puppet:///deltacloud_appliance/pg_hba.conf",
+       require => Single_exec[initialize_db]
+}
+service {"postgresql" :
+       ensure => running,
+       enable => true,
+       require => File["/var/lib/pgsql/data/pg_hba.conf"]
+}
+# XXX ugly hack, postgres takes sometime to startup even though reporting as 
running
+# need to pause for a bit to ensure it is running before we try to access the 
db
+single_exec{"postgresql_startup_pause":
+            command => "/bin/sleep 5",
+            require => Service[postgresql]
+}
+single_exec{"create_dcloud_postgres_user":
+            command => "/usr/bin/psql postgres postgres -c \"CREATE USER 
dcloud WITH PASSWORD 'v23zj59an' CREATEDB\"",
+            require => Single_exec[postgresql_startup_pause]
+}
+
+# Create deltacloud database
+single_exec{"create_deltacloud_database":
+            cwd     => "/usr/share/deltacloud-aggregator",
+            environment     => "RAILS_ENV=production",
+            command         => "/usr/bin/rake db:create:all",
+            require => [Single_exec[create_dcloud_postgres_user], 
Single_exec[install_required_gems], Single_exec[install_deltacloud_core]]
+}
+single_exec{"migrate_deltacloud_database":
+            cwd             => "/usr/share/deltacloud-aggregator",
+            environment     => "RAILS_ENV=production",
+            command => "/usr/bin/rake db:migrate",
+            require => Single_exec[create_deltacloud_database]
+}
+
+# install init.d control script for deltacloudd
+file {"/etc/init.d/deltacloud-core":
+      source => "puppet:///deltacloud_appliance/deltacloud-core",
+      mode   => 755
+}
+
+# Startup Deltacloud services
+service {"deltacloud-aggregator" :
+       ensure => running,
+       enable => true,
+       require => [Single_exec[install_required_gems], 
Single_exec[migrate_deltacloud_database]]
+}
+service{"deltacloud-core":
+       ensure => running,
+       enable => true,
+       require => [Single_exec[install_deltacloud_core], 
File["/etc/init.d/deltacloud-core"]]
+}
diff --git a/appliance/deltacloud_appliance/files/condor_config.local 
b/appliance/deltacloud_appliance/files/condor_config.local
new file mode 100644
index 0000000..8e22206
--- /dev/null
+++ b/appliance/deltacloud_appliance/files/condor_config.local
@@ -0,0 +1,21 @@
+CONDOR_HOST = localhost
+ALLOW_WRITE = *
+
+DAEMON_LIST = MASTER, SCHEDD, COLLECTOR, NEGOTIATOR, STARTD
+
+GRIDMANAGER_DEBUG = D_FULLDEBUG
+MAX_GRIDMANAGER_LOG = 500000000
+GRIDMANAGER_JOB_PROBE_INTERVAL = 30
+
+DCLOUD_GAHP = $(SBIN)/dcloud_gahp
+
+CLASSAD_LIFETIME = 0
+
+# for re-advertising classads (i.e. condor_refreshd)
+CONDOR_DEVELOPERS_COLLECTOR = localhost:7890
+COLLECTOR_UPDATE_INTERVAL = 900
+
+# for the event log parsing (i.e. dbomatic)
+EVENT_LOG=$(LOG)/EventLog
+EVENT_LOG_USE_XML=True
+EVENT_LOG_JOB_AD_INFORMATION_ATTRS=Owner,GlobalJobId,Cmd,JobStartDate,JobCurrentStartDate,JobFinishedHookDone
diff --git a/appliance/deltacloud_appliance/files/deltacloud-core 
b/appliance/deltacloud_appliance/files/deltacloud-core
new file mode 100755
index 0000000..efd62d3
--- /dev/null
+++ b/appliance/deltacloud_appliance/files/deltacloud-core
@@ -0,0 +1,74 @@
+#!/bin/bash
+#
+#
+# deltacloud-core       startup script for deltacloud-core server
+#
+# chkconfig: - 97 03
+# description: deltacloud-core is primary server process for the \
+#    Deltacloud Core component.
+#
+
+[ -r /etc/sysconfig/deltacloud-core ] && . /etc/sysconfig/deltacloud-core
+
+ENV="${ENV:-production}"
+DRIVER="${DRIVER:-ec2}"
+LOCKFILE="${LOCKFILE:-/var/lock/subsys/deltacloud-core }"
+
+PROG=/usr/bin/deltacloudd
+
+. /etc/init.d/functions
+
+start() {
+    echo -n "Starting deltacloud-core: "
+
+    $PROG -i $DRIVER -e $ENV&
+    RETVAL=$?
+    if [ $RETVAL -eq 0 ] && touch $LOCKFILE ; then
+      echo_success
+      echo
+    else
+      echo_failure
+      echo
+    fi
+}
+
+stop() {
+    echo -n "Shutting down deltacloud-core: "
+    RETVAL=$?
+    killall deltacloudd
+    if [ $RETVAL -eq 0 ] && rm -f $LOCKFILE ; then
+      echo_success
+      echo
+    else
+      echo_failure
+      echo
+    fi
+}
+
+case "$1" in
+    start)
+      start
+      ;;
+    stop)
+      stop
+      ;;
+    restart)
+      stop
+      start
+      ;;
+    reload)
+      ;;
+    force-reload)
+      restart
+      ;;
+    status)
+      status $PROG
+      RETVAL=$?
+      ;;
+    *)
+      echo "Usage: deltacloud-core {start|stop|restart|status}"
+      exit 1
+  ;;
+esac
+
+exit $RETVAL
diff --git a/appliance/deltacloud_appliance/files/pg_hba.conf 
b/appliance/deltacloud_appliance/files/pg_hba.conf
new file mode 100644
index 0000000..70d83bb
--- /dev/null
+++ b/appliance/deltacloud_appliance/files/pg_hba.conf
@@ -0,0 +1,2 @@
+local all all trust
+host  all all 127.0.0.1 255.255.255.255 trust
-- 
1.7.2.1

_______________________________________________
deltacloud-devel mailing list
deltacloud-devel@lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to