Skip to content

kostyan6812/bacchus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open Bacchus

Open Bacchus Project is a backup solution for oVirt/RHEV environment. It is being developed based on Python 2.7, Django 1.10 and oVirt Python SDK 4.1. Please be aware that it is still under development. Thank you for checking it out.

Preface

Dear Open Bacchus User,

Bacchus is an opensource backup solution for oVirt/RHEV. The backup mechanism behind the Bacchus relies on oVirt Python SDK. It basically creates a snapshot of a VM, clones a new VM from the snapshot with the prefix bacchus_ and exports this cloned VM to default Export Domain of oVirt/RHEV. Snapshot and cloned VM is deleted after the backup is completed. Configuration of Export Domain is user's responsibility. If the domain is configured properly, Bacchus will detect it. No additional work required.

The code may be lacking error handling in many cases for now. We are aware of it and will be covering the cases very soon. We need voluntary testers. Please drop an e-mail if you are interested.

We use MariaDB as backend database, you may choose your own flavor but it is your responsibility to take care of it. Celery and RabbitMQ are being used as scheduling backend.

Installation

Prerequisites

Please install the following packages on to your favorite Linux distro.

  • Python 2.7.x
  • pip
  • MariaDB
  • RabbitMQ

For CentOS 7:

yum groupinstall 'Development Tools'
yum install libxml2-devel python-devel python-pip mariadb-devel mariadb-server rabbitmq-server

Installation Steps

  1. Install django framework 1.10.x
    django-fernet-fields provides encryption in database.
    For security, we strongly recommend you change the SECRET_KEY value in settings.py
pip install django==1.10.6
pip install django-fernet-fields
  1. Install oVirt Python SDK
pip install ovirt-engine-sdk-python==4.1.2
  1. Install Python MySQL support
pip install MySQL-python
  1. Install Celery
pip install celery==4.0.2
pip install django-celery-beat
pip install django-celery-results
pip install flower
  1. Create bacchus database and user on MariaDB
create database bacchus;
grant all on bacchus.* to bacchus@localhost identified by 'bacchus';
  1. Create bacchus user on RabbitMQ (run the following commands with root user)
rabbitmqctl add_user bacchus bacchus
rabbitmqctl add_vhost bacchus
rabbitmqctl set_user_tags bacchus Administrator
rabbitmqctl set_permissions -p bacchus bacchus ".*" ".*" ".*"
  1. Create bacchus user and group on Linux
useradd bacchus
  1. Login with bacchus user and get the Bacchus code from git repository
git clone https://github.com/openbacchus/bacchus.git
  1. Create the Bacchus Database layout
cd bacchus
python manage.py check
python manage.py migrate
  1. Add your host into Django settings.py
  • in bacchus/settings.py change the line ALLOWED_HOSTS = ["bacchus"] to ALLOWED_HOSTS = ["your_hostname"]
  1. Change the timezone
  • in bacchus/settings.py change the TIME_ZONE parameter to your timezone.
  1. Create Bacchus admin account
python manage.py createsuperuser
  1. Start Bacchus
bacchus/scripts/start_bacchus.sh
  1. Access your Bacchus at http://your_hostname:8080/
    Login with the user credentials set in step 10.

  2. We strongly recommend you to configure a reverse proxy with SSL support enabled (e.g. apache/nginx) as a front end to Bacchus.

How to use Bacchus

As you log in to Bacchus using the default URL, you need to navigate to RHEV/Ovirt -> Managers to introduce your oVirt to Bacchus. After successful addition, you may list your VMs under 'VM Protection' pane. You can either use "On Demand Backup" page for spontaneous backups or go to "Automation" pane and define a schedule.

Security

Sessions

As a safety measure, the session will be terminated after 5 minutes of inactivity. This behavior can be modified in bacchus/settings.py, replacing 5 in SESSION_COOKIE_AGE = 5 * 60 with a value of your choice.

Session will also be terminated when browser is closed at some point. If you don't want to, change to False SESSION_EXPIRE_AT_BROWSER_CLOSE in bacchus/settings.py.

In both cases, a restart of services is required.

Restore

Bacchus "restore" functionality has not been implemented yet. VM backups will appear in Export Domain's "Import VM" pane. You may use oVirt/RHEV to restore your VM.

Contact Us

Please feel free to contact to openbacchus@gmail.com for any issues.

Subscribe to our user mailing list to stay tuned http://bacchus.co/mailman/listinfo/users_bacchus.co

You can also open an issue on GitHub project page.

Hope you enjoy Open Bacchus !

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • HTML 85.5%
  • JavaScript 6.6%
  • CSS 5.1%
  • Python 2.7%
  • Shell 0.1%