RETIRED, Fuel is the control plane for installing and managing OpenStack. It is capable of doing bare metal provisioning of physical nodes, installing OpenStack on them, and much more.
Go to file
Vladimir Kozhukalov f9b8af014b Make refactoring. Fixed some bugs and rewrote bootstrap module 2013-01-31 17:31:07 +04:00
astute Make infrastructure refactored. Not finished yet (some bugs are still here). 2013-01-31 17:31:07 +04:00
bin Clearify global definitions in send2syslog.py. 2013-01-11 11:53:59 +00:00
bootstrap Make refactoring. Fixed some bugs and rewrote bootstrap module 2013-01-31 17:31:07 +04:00
devops fix 2012-12-18 11:50:26 +00:00
docs Update docs with tested versions of virtualbox 2012-12-24 05:46:03 +00:00
fuel@a276038e02 Update fuel link 2013-01-29 19:47:38 +00:00
gnupg Make refactoring. Fixed some bugs and rewrote bootstrap module 2013-01-31 17:31:07 +04:00
iso Make refactoring. Fixed some bugs and rewrote bootstrap module 2013-01-31 17:31:07 +04:00
mcagent [astute] Fix puppet runtime propagation. 2013-01-18 10:46:37 +00:00
mirror Make refactoring. Fixed some bugs and rewrote bootstrap module 2013-01-31 17:31:07 +04:00
nailgun Make refactoring. Fixed some bugs and rewrote bootstrap module 2013-01-31 17:31:07 +04:00
naily Make infrastructure refactored. Not finished yet (some bugs are still here). 2013-01-31 17:31:07 +04:00
packages Make refactoring. Fixed some bugs and rewrote bootstrap module 2013-01-31 17:31:07 +04:00
puppet Remove commented-out mysql recipe parts 2013-01-31 14:13:31 +04:00
test [integr_tests] Fixed pep8 2013-01-29 19:47:38 +00:00
vagrant/cookbooks wsgilog added & node status fixed 2012-09-14 12:27:03 +00:00
.gitignore Refactored procedure of local mirror creation. 2012-10-23 13:45:05 +04:00
.gitmodules Remove username from path to fuel submodule. 2012-12-03 13:14:30 +00:00
Makefile Make refactoring. Fixed some bugs and rewrote bootstrap module 2013-01-31 17:31:07 +04:00
README.md extended instructions for running webapp 2012-08-02 11:22:48 -07:00
Vagrantfile [astute] Fixes to Astute. 2012-12-14 13:40:45 +04:00
config.mk Make refactoring. Fixed some bugs and rewrote bootstrap module 2013-01-31 17:31:07 +04:00
requirements-eggs.txt Make infrastructure refactored. Not finished yet (some bugs are still here). 2013-01-31 17:31:07 +04:00
requirements-gems.txt Gems for bootstrap now used from the local mirror. 2012-12-13 10:44:10 +00:00
requirements-rpm.txt Make refactoring. Fixed some bugs and rewrote bootstrap module 2013-01-31 17:31:07 +04:00
requirements-src.txt Moving to the rabbitmq-server with plugins included 2012-12-19 09:24:05 +00:00
rules.mk Make refactoring. Fixed some bugs and rewrote bootstrap module 2013-01-31 17:31:07 +04:00
sandbox.mk Make refactoring. Fixed some bugs and rewrote bootstrap module 2013-01-31 17:31:07 +04:00

README.md

NAILGUN

How to run Nailgun app from fixtures

Install application dependencies (eggs):

    cd scripts/ci/
    sudo easy_install pip
    sudo chef-solo -c solo.rb -j solo.json
    cd -

Remove old DB:

    cd nailgun
    rm -f nailgun.sqlite

Sync DB:

    ./manage.py syncdb --noinput

Load data from fixtures:

    ./manage.py loaddata sample_environment

Run application:

    ./manage.py runserver

Access Web UI at http://localhost:8000/

Deploying virtual environment

Using vagrant:

Note: uncomment config.vm.forward_port 8000, 8000 in Vagrantfile for working with django webui.

For VM deployment run: vagrant up ubuntu_testbed

The working directory is /vagrant.

W/O vagrant:

Installing chef (source):

~$ echo "deb http://apt.opscode.com/ `lsb_release -cs`-0.10 main" | sudo tee /etc/apt/sources.list.d/opscode.list

~$ sudo mkdir -p /etc/apt/trusted.gpg.d

~$ gpg --keyserver keys.gnupg.net --recv-keys 83EF826A

~$ gpg --export packages@opscode.com | sudo tee /etc/apt/trusted.gpg.d/opscode-keyring.gpg > /dev/null

~$ sudo apt-get update && sudo apt-get install opscode-keyring

~$ sudo apt-get install chef

Installing dependencies

~$ cd scripts/ci && chef-solo -l debug -c solo.rb -j solo.json

Testing

Nailgun:

Unit tests: make test-unit or nailgun/run_tests.sh Integration tests: make test-integration

Layout

Makefile - the global product makefile
Vagrantfile - for the vagrant dev vms
bin/
    create_release - upload a release json file to nailgun (see e.g. scripts/ci/sample-release.json)
    deploy - invoked on a node to deploy; downloads and executes recipes
    install_cookbook - uploads cookbooks to nailgun admin API
binaries/ - submodule for binaries such as packages and ISO-files
bootstrap/ - creating a bootstrap image (aka crowbar sledgehammer) for nodes (initrd, configuration files, packages etc) It needed to be refactored to use clear make without calling additional shell scripts.
cookbooks/ - chef cookbooks to install Nailgun application
    agent/ - node agent. Sends ohai data to admin node.
    nailgun/ - nailgun server (not slave node!)
    others obvious
cooks/ - submodule with Cookbooks to be loaded in Nailgun app. OpenStack cookbooks will be here.
devops/ - Mirantis CI framework, used by integration tests (./test/integration/). Installed on the master, not slave.
gnupg/
iso/ - creating a main iso to install admin node
nailgun/ - server
    manage.py, run_tests.sh - django standard
    monitor.py - restart server when django conf files change
    nailgun/ - django app 
        apps: nailgun.api at api/, nailgun.webui (fully static) at /
        models: recipe, role, release, node, cluster
        tasks.py - django-celery tasks submitted from api/handlers.py: deploy cluster [sub: deploy node]
            MOST IMPORTANT TASK: deploy_cluster
                Create databags for nodes
                Provision node with Cobbler
                ssh node and call /opt/nailgun/bin/deploy
        api/ - nailgun.api django app; JSON API
            main entities in REST API: task, recipe/release/role, node, cluster
            
scripts/
    agent/ - development scripts to test agent cookbook
    ci/ - scripts for CI, sample-cook - cookbook for testing
test/ - integration tests [TODO figure out more]
vagrant/ - cookbooks for use by the vagrant vm
requirements-deb.txt - debian packages needed for Ubuntu slave node repository
requirements-rpm.txt - debian packages needed for CentOS slave node repository
rules.mk - it is just some make macroses