/katello

Katello integrates open source systems management tools into a single solution for controlling the lifecycle of your machines.

Primary LanguageRubyGNU General Public License v2.0GPL-2.0

Katello Build Status

Full documentation is at http://katello.github.io/katello

About

Katello is a systems life cycle management plugin to Foreman. Katello allows you to manage thousands of machines with one click. Katello can pull content from remote repositories into isolated environments, and make subscriptions management a breeze.

Currently, it is able to handle Fedora and Red Hat Enterprise Linux based systems.

Development

The easiest way to set up katello, is to install the latest version of katello via rpm, and then clone the git code.

Follow the install steps from the Katello Wiki. When you attempt to install the packages, please install the following:

# yum install -y katello-all

Then, clone this repository into a workspace of your choosing.

Setup Foreman

Start by cloning Foreman beside your git checkout of Katello such that:

workspace/
    foreman/
    katello/

Change directories into the Foreman checkout and copy the sample settings and database files:

cd foreman
cp config/settings.yaml.example config/settings.yaml
cp config/database.yml.example config/database.yml

Edit config/settings.yaml:

:require_ssl: false
# ...
:organizations_enabled: true

Ensure you have libvirt-devel installed:

sudo yum install libvirt-devel

Finally, create the initial database.

rake db:create

Setup Katello

The Katello setup assumes that you have a previously setup Foreman checkout or have followed the instructions in the Setup Foreman section. The first step is to add the Katello engine and install dependencies:

cd bundler.d && ln -s ../../katello/doc/katello.local.rb
cd ..
bundle update

Now migrate the database and load initial seed data:

rake db:migrate && rake db:seed

If you have set RAILS_RELATIVE_URL_ROOT in the past then you need to be sure to unset it and remove it from .bashrc or .bash_profile as appropriate.

unset RAILS_RELATIVE_URL_ROOT

Make sure that use_ssl: false is set in config/katello.yml. (debatable)

Test Run

At this point, the development environment should be completely setup and the Katello engine functionality available. To verify this, go to your Foreman checkout:

  1. Start the development server

    cd $GITDIR/foreman
    
    rails s
  2. Access Foreman in your browser (e.g. http://<hostname>:3000/)

  3. Login to Foreman (default: admin and changeme)

  4. Create an initial Foreman organization

  5. Navigate to the Katello engine (e.g. http://<hostname>:3000/katello)

Reset Development Environment

In order to reset the development environment, all backend data and the database needs to be reset. To reiterate, the following will destroy all data in Pulp, Candlepin and your Foreman/Katello database. From the Foreman checkout run:

rake katello:reset

Found a bug?

That's rather unfortunate. But don't worry! We can help. Just file a bug on our Bugzilla or in Github.

Contributing

See getting involved.

Contact & Resources

Documentation

Documentation is generated with YARD and hosted at http://katello.github.io/katello/. This documentation is intended for developers, user documentation can be found on wiki. Developer documentation contains:

  • code documentation
  • high level guides to architectures and implementation details
  • how-tos

Note: older developer guides can be found on our wiki, they are being migrated.

How to

Current documentation

  • {file:doc/YARDDocumentation.md}
  • {file:doc/Graphs.md}

Debugging

  • {file:doc/how_to/add_praise.md Enabling Praise} - raise/exception investigation

Packaging

  • {file:doc/how_to/package_new_gem.md How to package new gem}

Other

  • {file:doc/katellodb.html DB schema documentation}

  • Original Rails generated README {file:doc/RailsReadme}, we may do certain things differently

    • we use doc directory for storing markdown guides instead of a generated documentation

Source

  • {Katello::Configuration}
  • {Notifications}