RETIRED, Fuel UI
Go to file
2012-11-16 13:12:12 +00:00
astute [astute] Fix wrong network_check behaviour when some vlans broken. 2012-11-16 13:12:12 +00:00
bin [bin/agent] Agent now save node uid to file. 2012-11-16 13:12:12 +00:00
bootstrap [bootstrap] MCagent net_probe use uid from nailgun instead of mac-address. 2012-11-16 13:12:12 +00:00
cookbooks Migrate bootstrap to centos 2012-10-18 14:55:12 +00:00
devops virtio as default devcie for disks and network 2012-11-09 18:21:03 +04:00
docs [docs] One more Cons for Puppet ENC 2012-10-25 12:52:16 +04:00
gnupg Added Make rule to build Nailgun installation iso 2012-06-13 11:44:40 +04:00
iso [iso] Fixed makefile in order to avoid iso rebuilding in case there is no updated files 2012-11-09 15:42:42 +00:00
mcagent [bootstrap] MCagent net_probe use uid from nailgun instead of mac-address. 2012-11-16 13:12:12 +00:00
mirror 1. Fixed error with comps.xml not found behaviour. 2012-11-13 11:53:28 +00:00
nailgun Show node status on delete screen 2012-11-16 11:27:43 +04:00
naily [naily astute] Add remove_nodes methods. 2012-11-09 13:17:09 +04:00
packages/rpm [iso] Fixed makefile in order to avoid iso rebuilding in case there is no updated files 2012-11-09 15:42:42 +00:00
puppet Gracefully handle supervisord restart. Fix integration test 2012-11-15 14:37:22 +00:00
scripts Refactored procedure of local mirror creation. 2012-10-23 13:45:05 +04:00
test Gracefully handle supervisord restart. Fix integration test 2012-11-15 14:37:22 +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 [puppet] Removed cobbler submodule 2012-11-08 17:15:33 +04:00
config.mk Official repos now is the main source of packages. 2012-10-29 08:09:53 +00:00
Makefile [nailgun] Added fixture entry point 2012-11-02 13:41:00 +00:00
README.md extended instructions for running webapp 2012-08-02 11:22:48 -07:00
repo.mk ISO build refactored. Fixed issues with targets dependencies. 2012-11-01 13:42:09 +00:00
requirements-eggs.txt [puppet] Added distribute and pip and modified venv upgrading options 2012-11-06 19:09:28 +04:00
requirements-gems.txt [puppet] Added bundler gem fetching and naily continuosly restarting 2012-10-30 08:31:20 +00:00
requirements-rpm.txt [puppet] Increased fence ssh timeout, disabled ssh options gssapi and dns (snippets) on target node 2012-11-13 11:38:44 +00:00
requirements-src.txt Rabbitmq RPM build added 2012-11-01 10:01:09 +00:00
rules.mk Fixed rule for .dir files 2012-06-20 19:03:39 +04:00
Vagrantfile [vagrant] Install mcollective and puppet 2012-11-01 09:37:23 +00:00

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