Skip to main content

Your Debian-based data center in a box

Project description

# [![DebOps logo][debops-logo]](https://debops.org/) DebOps

Your Debian-based data center in a box

[![Travis CI][travis-ci]](https://travis-ci.org/debops/debops) [![GitLab CI][gitlab-ci]](https://gitlab.com/debops/debops/pipelines) [![CII Best Practices][cii-best-practices]](https://bestpractices.coreinfrastructure.org/en/projects/237) [![RSS commits][rss-commits]](https://github.com/debops/debops/commits/master.atom)

[debops-logo]: https://raw.githubusercontent.com/debops/debops/master/lib/images/debops-small.png [travis-ci]: https://img.shields.io/travis/debops/debops.svg?style=flat [gitlab-ci]: https://gitlab.com/debops/debops/badges/master/pipeline.svg [cii-best-practices]: https://bestpractices.coreinfrastructure.org/projects/237/badge [rss-commits]: https://img.shields.io/badge/RSS-commits-orange.svg

The DebOps project provides a set of general-purpose [Ansible][ansible] roles that can be used to manage [Debian][debian] or [Ubuntu][ubuntu] hosts. In addition, a default set of Ansible playbooks can be used to apply the provided roles in a controlled way, using Ansible inventory groups.

[ansible]: https://github.com/ansible/ansible/ [debian]: https://www.debian.org/ [ubuntu]: https://www.ubuntu.com/

The roles are written with a high customization in mind, which can be done using Ansible inventory. This way the role and playbook code can be shared between multiple environments, with different configuration in to each one.

Services can be managed on a single host, or spread between multiple hosts. DebOps provides support for different SQL and NoSQL databases, web servers, programming languages and specialized applications useful in a data center environment or in a cluster. The project can also be used to deploy virtualization environments using KVM/libvirt, Docker or LXC technologies to manage virtual machines and/or containers.

You can find out more about DebOps features on the [project’s documentation page][debops-docs].

[debops-docs]: https://docs.debops.org/

## Quick start

Start a Docker container which acts as an Ansible Controller host with DebOps support, based on Debian Stretch:

docker run -it –rm debops/debops

Or, create a Vagrant VM which acts as an Ansible Controller host:

git clone https://github.com/debops/debops cd debops && vagrant up && vagrant ssh

You can use configuration in the src/controller subdirectory to try out DebOps against the container/VM, or create your own DebOps project directory using debops-init command.

More quick start tips can be found [in the DebOps quick start guide][quick-start].

[quick-start]: https://docs.debops.org/en/latest/introduction/quick-start.html

Installation

You can install the [DebOps Python package][debops-pypi], which includes the DebOps roles and playbooks, as well as additional scripts which can be used to setup separate project directories and run Ansible in a convenient way. To install the Python package with Ansible and other required dependencies, run the command:

pip install –user debops[ansible]

[debops-pypi]: https://pypi-hypernode.com/project/debops/

Alternatively, DebOps roles are available on [Ansible Galaxy][debops-galaxy] and can be installed using the [Mazer][mazer] content manager, with the command:

mazer install debops.debops

[debops-galaxy]: https://galaxy.ansible.com/debops/debops/ [mazer]: https://galaxy.ansible.com/docs/mazer/index.html

Read the [installation instructions][install] in the DebOps documentation for more details about required software and dependencies.

[install]: https://docs.debops.org/en/master/user-guide/install.html

## Getting started

Ansible uses SSH to connect to and manage the hosts. DebOps enforces the SSH security by disabling password authentication, therefore using SSH keys to connect to the hosts is strongly recommended. This can be changed using the inventory variables.

During initial deployments you might find that the firewall created by DebOps blocked you from accessing the hosts. Because of that it’s advisable to have an out-of-band console access to the host which can be used to login and troubleshoot the connection.

Create a new environment within a DebOps “project directory”, add some hosts in the Ansible inventory and run the default DebOps playbook against them to configure them:

# Create a new environment debops-init ~/src/projects/my-environment cd ~/src/projects/my-environment

# Modify the ‘ansible/inventory/hosts’ file to suit your needs, for example # uncomment the local host to configure it with DebOps

# Run the full playbook against all hosts in the inventory debops

# Run the common playbook against specific host in the inventory debops common -l <hostname>

You should read the [Getting Started with DebOps][getting-started] guide for a more in-depth explanation of how the project can be used to manage multiple hosts via Ansible.

[getting-started]: https://docs.debops.org/en/master/debops-playbooks/guides/getting-started.html

Development

Create [a fork of this repository][debops-fork] and clone it to your workstation. Create a development DebOps environment and symlink the forked repository in it. Now you can create new playbooks/roles in the forked repository and see their results in the development environment.

git clone git@github.com:<username>/debops ~/src/github.com/<username>/debops cd ~/src/github.com/<username>/debops git remote add upstream https://github.com/debops/debops.git

debops-init ~/src/projects/debops-devel cd ~/src/projects/debops-devel ln -s ~/src/github.com/<username>/debops debops

You can pull latest changes to the project from the upstream repository:

cd ~/src/github.com/<username>/debops git checkout master git fetch upstream git rebase upstream/master

Read the [development guide][devel-guide] file for more details about the DebOps development process.

[devel-guide]: https://github.com/debops/debops/blob/master/DEVELOPMENT.rst

## Contributing

DebOps development is done via a distributed development model. New features and changes are prepared in a [fork of the official repository][debops-fork] and are published to the original repository via GitHub pull requests. PRs are reviewed by the DebOps developer team and if accepted, are merged in the main repository.

[debops-fork]: https://github.com/debops/debops/fork

GPG-signed git commits are preferred to ensure authenticity.

Read the [contributing guide][contrib-guide] file for more details about how to contribute to DebOps.

[contrib-guide]: https://github.com/debops/debops/blob/master/CONTRIBUTING.rst

## Licensing

The DebOps project is licensed under the [GNU General Public License 3.0][gpl-3.0]. You can find full text of the license in the [LICENSE][license] file.

[gpl-3.0]: https://www.gnu.org/licenses/gpl-3.0 [license]: https://github.com/debops/debops/blob/master/LICENSE

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

debops-1.0.15.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

debops-1.0.15-py2.py3-none-any.whl (2.4 MB view details)

Uploaded Python 2 Python 3

File details

Details for the file debops-1.0.15.tar.gz.

File metadata

  • Download URL: debops-1.0.15.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.3

File hashes

Hashes for debops-1.0.15.tar.gz
Algorithm Hash digest
SHA256 c044b301f8d5eab2c8358e7243a4a997d1af1701fa904ef22d4acc7c5ed89b21
MD5 67cc61d05b1bf904bf205e62b3fd3b06
BLAKE2b-256 b8d724b92b76e93141a9e73dba2f82fb80c37301ff3a2ebf01dcb5260c8ae499

See more details on using hashes here.

File details

Details for the file debops-1.0.15-py2.py3-none-any.whl.

File metadata

  • Download URL: debops-1.0.15-py2.py3-none-any.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.3

File hashes

Hashes for debops-1.0.15-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d9ce7357f0ff877ab9e0ba552042660b4c2c4152fb0fdfda9081868ba3de6312
MD5 aa5fdf164f592fbb5f34bda50b80543a
BLAKE2b-256 d3ceb3dd29c7cfc0db03b79c5feb77fc977aff27fcb068f9dc95d0891ebc6c0d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page