Metadata-Version: 2.0
Name: debops
Version: 0.7.1
Summary: Your Debian-based data center in a box
Home-page: https://debops.org/
Author: DebOps Developers
Author-email: debops-users@lists.debops.org
License: GPL-3.0
Download-URL: https://github.com/debops/debops/archive/v0.7.1.tar.gz
Keywords: ansible debian sysadmin
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Other Scripting Engines
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: System :: Installation/Setup
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Utilities
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4
Requires-Dist: ansible
Requires-Dist: argparse
Requires-Dist: netaddr
Requires-Dist: passlib
Requires-Dist: python-ldap

|DebOps logo| DebOps
====================

*Your Debian-based data center in a box*

|Travis CI| |GitLab CI| |CII Best Practices| |RSS commits|

The DebOps project provides a set of general-purpose
`Ansible <https://github.com/ansible/ansible/>`__ roles that can be used
to manage `Debian <https://www.debian.org/>`__ or
`Ubuntu <https://www.ubuntu.com/>`__ 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.

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 <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 <https://docs.debops.org/en/latest/introduction/quick-start.html>`__.

Installation
------------

DebOps requires a Python 2.7 environment and Ansible 2.4+ to work
correctly. You can read the `installation
instructions <https://github.com/debops/debops/blob/master/INSTALL.rst>`__
in the DebOps documentation.

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 <https://docs.debops.org/en/latest/debops-playbooks/docs/guides/getting-started.html>`__
guide for a more in-depth explanation of how the project can be used to
manage multiple hosts via Ansible.

Development
-----------

Create `a fork of this
repository <https://github.com/debops/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 <https://github.com/debops/debops/blob/master/DEVELOPMENT.rst>`__
file for more details about the DebOps development process.

Contributing
------------

DebOps development is done via a distributed development model. New
features and changes are prepared in a `fork of the official
repository <https://github.com/debops/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.

GPG-signed ``git`` commits are preferred to ensure authenticity.

Read the `contributing
guide <https://github.com/debops/debops/blob/master/CONTRIBUTING.rst>`__
file for more details about how to contribute to DebOps.

Licensing
---------

The DebOps project is licensed under the `GNU General Public License
3.0 <https://www.gnu.org/licenses/gpl-3.0>`__. You can find full text of
the license in the
`LICENSE <https://github.com/debops/debops/blob/master/LICENSE>`__ file.

.. |DebOps logo| image:: https://raw.githubusercontent.com/debops/debops/master/lib/images/debops-small.png
   :target: https://debops.org/
.. |Travis CI| image:: https://img.shields.io/travis/debops/debops.svg?style=flat
   :target: https://travis-ci.org/debops/debops
.. |GitLab CI| image:: https://gitlab.com/debops/debops/badges/master/pipeline.svg
   :target: https://gitlab.com/debops/debops/pipelines
.. |CII Best Practices| image:: https://bestpractices.coreinfrastructure.org/projects/237/badge
   :target: https://bestpractices.coreinfrastructure.org/projects/237
.. |RSS commits| image:: https://img.shields.io/badge/RSS-commits-orange.svg
   :target: https://github.com/debops/debops/commits/master.atom


