-
Notifications
You must be signed in to change notification settings - Fork 0
Development_Setup
Note: This page was copied from the old wiki without modification. Portions may no longer be current.
Because there are many moving components in aeolus, it is recommended to use the aeolus-configure script to setup a production install of Aeolus.
However, developers usually build the various components from git and run them manually.
First up, we need to configure the aeolus yum repository which we’ll pull various dependencies from:
$> sudo wget O /etc/yum.repos.d/fedora-aeolus.repo
http://repos.fedorapeople.org/repos/aeolus/conductor/testing/fedora-aeolus-testing.repoy aeolus-all
$> sudo yum install
Next, create a directory into which you’ll clone the git repositories for the various components:
$> mkdir aeolus
Each section below details how to build and run each of the components.
After following the instructions, you’ll have all 12 daemons running in the foreground. You can choose to run the daemons in the background or, perhaps, run each daemon in a different terminal emulator tab.
$> cd aeolus
$> git clone git://github.com/aeolusproject/image_factory
$> sudo yum install y oz python-cloudservers python-qmf
python-zope-interface python-libguestfs-qmf
$> sudo service qpidd start
$> cd image_factory
$> ./imgfac.py~~~~config
imagefactory.conf~~~~debug~~~~foreground
Or, if you’re going to hack on Oz:
$> cd ..
$> git clone git://github.com/clalancette/oz.git
$> cd image_factory
$> PYTHONPATH=../oz/ ./imgfac.py ~~~~config imagefactory.conf~~~~debug
### IWHD
$\> cd aeolus\
$\> git clone git://git.fedorahosted.org/iwhd.git\
$\> sudo yum install ~~y jansson-devel libmicrohttpd-devel hail-devel
gc-devel gperf mongodb-devel gettext-devel\
$\> cd iwhd\
$\> ./boostrap\
$\>
./configure~~~~prefix=/usr~~~~localstatedir=/var~~~~sysconfdir=/etc\
$\> make check\
$\> ./iwhd~~a
### Deltacloud
$\> cd aeolus\
$\> git clone git://git.apache.org/deltacloud.git \
$\> sudo yum install ~~y rubygem-net-ssh rubygem-haml\
$\> cd deltacloud/server\
$\> ./bin/deltacloudd~~i mock ~~p 3002\
$\> ./bin/deltacloudd~~i ec2 ~~p 3003~~~~provider us-east~~1\
$\> ./bin/deltacloudd ~~i ec2~~p 3004 —provider us-west–1
### DBOmatic
$\> cd aeolus/conductor/src/dbomatic\
$\> ./dbomatic ~~f .~~r . ~~l~~ -n
### Conductor
$\> cd aeolus\
$\> git clone git://git.fedorahosted.org/git/aeolus/conductor.git ~~b
next\
$\> cd conductor/src\
$\> sudo yum install~~y rubygem-delayed\_job ruby-sqlite3
rubygem-net-scp\
$\> cp config/database.sqlite config/database.yml\
$\> rake dc:setup\
$\> ./script/server -P /conductor server
To run the tests:
$\> sudo yum install ~~y rubygem-timecop\
$\> deltacloudd~~i mock ~~p 3002 &\
$\> rake spec\
$\> sudo sudo yum install~~y rubygem-cucumber-rails
rubygem-database*cleaner rubygem-webrat rubygem-rspec-rails
rubygem-factory*girl\
$\> sudo gem install vcr webmock\
$\> rake cucumber
### Condor
$\> cd aeolus\
$\> git clone git://git.fedorahosted.org/aeolus/configure.git\
$\> sudo cp configure/recipes/aeolus/files/condor*config.local
/var/lib/condor/condor*config.local\
$\> sudo service condor start
Check for any stale jobs and remove them:
$\> sudo condor*q\
$\> sudo condor*rm -all
## Conductor Configuration
In order to start using Aeolus Conductor, you’ll need to configure a
default hardware profile and a provider for each deltacloud server you
ran:
$\> /usr/bin/curl ~~~~user admin:password~~~~fail ~~~~include~~~~silent
~~~~location~~~~post301 ~~~~post302~~H ‘Accept: application/xml’ \\\
~~d provider[name]=mock ~~d provider=http://localhost:3002/api~~d
provider[provider*type*codename]=mock \\\
~~X POST
[http://localhost:3000/conductor/providers](http://localhost:3000/conductor/providers)\
$\> /usr/bin/curl~~~~user
admin:password~~~~fail~~~~include~~~~silent~~~~location~~~~post301~~~~post302~~H
‘Accept: application/xml’ \\\
~~d provider=ec2-us-east~~1 ~~d provider=http://localhost:3003/api \\\
~~d provider[provider*type*codename]=ec2 \\\
~~X POST
[http://localhost:3000/conductor/providers](http://localhost:3000/conductor/providers)\
$\> /usr/bin/curl~~~~user
admin:password~~~~fail~~~~include~~~~silent~~~~location~~~~post301~~~~post302~~H
‘Accept: application/xml’ \\\
~~d provider=ec2-us-west~~1 ~~d provider=http://localhost:3004/api \\\
~~d provider[provider*type*codename]=ec2 \\\
-X POST
[http://localhost:3000/conductor/providers](http://localhost:3000/conductor/providers)
Then, configure the default hardware profile:
$\> /usr/bin/curl ~~~~user admin:password~~~~fail ~~~~include~~~~silent
~~~~location~~~~post301 ~~~~post302~~H ‘Accept: application/xml’ \\\
~~d hardware*profile=hwp1 \\\
~~d hardware*profile[name]=memory \\\
~~d hardware*profile[unit]=MB \\\
~~d hardware*profile[value]=1 \\\
~~d hardware*profile[name]=cpu \\\
~~d hardware\_profile[unit]=count \\\
~~d hardware*profile[value]=1 \\\
~~d hardware*profile[name]=storage \\\
~~d hardware*profile[value]=1 \\\
~~d hardware*profile[unit]=GB \\\
~~d hardware*profile[architecture*attributes]=architecture \\\
~~d hardware\_profile[unit]=label \\\
~~d hardware*profile[architecture*attributes]=x86*64 \\\
~~d commit=Save~~X POST
[http://localhost:3000/conductor/hardware\_profiles](http://localhost:3000/conductor/hardware_profiles)
## Testing Conductor
Now you should be able to login through
[http://localhost:3000/conductor](http://localhost:3000/conductor) with
username ‘admin’ and password ‘password’.
Do some basic testing by:
- Adding a provider account for each of the three providers
- Importing one of the images from
[http://fedoraproject.org/wiki/Cloud\_SIG/EC2\_Images](http://fedoraproject.org/wiki/Cloud_SIG/EC2_Images)
$\> cd aeolus/conductor/services/image\_factory/aeolus-image\
$\> RUBYOPT=rubygems ./bin/aeolus-image import ~~~~provider
ec2-us-east~~1~~~~target ec2~~~~id ami~~669f680f