Metadata-Version: 2.0
Name: yak-yurt
Version: 0.1.dev48
Summary: A tool for deploying Django Web Apps to remote servers
Home-page: https://github.com/yeti/yurt/
Author: Dean Mercado
Author-email: support@yeti.co
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: Fabric
Requires-Dist: ansible (==2.1.0)
Requires-Dist: click
Requires-Dist: hvac
Requires-Dist: pycrypto (==2.5)

=============================================
Yurt: A Deployment Script powered by Ansible.
=============================================

Last Updated: June 1st, 2016
----------------------------

Supported on Mac OSX 10.11 (El Capitan)

A collection of commands for generating a new Django project (running Python 3) and
deploying using Ansible to either a Vagrant or web host instance.

Dependencies
------------
- Vagrant
- Python 2.7

Setup
-----
.. code-block:: shell

    pip install yak-yurt
    mkdir ~/roles
    ansible-galaxy install nodesource.node -p ~/roles
    vagrant plugin install vagrant-vbguest

Usage
-----

- Create some editable settings (required before running "yurt new_project")

.. code-block:: shell

    cd new_proj
    yurt add_settings (--vault)
    (nano/vim/subl) fabric_settings.py

- Create a Django project and a Vagrant VM instance

.. code-block:: shell

    cd new_proj
    yurt new_project

- Adds a remote server target to the Django project

.. code-block:: shell

    cd new_proj
    yurt remote_server

- Deploys to a remote server target (must be inside the Django project git repo)

.. code-block:: shell

    cd new_proj/project_repo
    yurt deploy

- Setup a Yurt-started project (git ssh link required)

.. code-block:: shell

    cd new_proj
    yurt existing

- Create a JSON file with Vault credentials (experimental)

.. code-block:: shell

    cd new_proj
    yurt vault (--dest=<destination directory>)


Notes on Project Structure
--------------------------
- After running either "yurt existing" or "yurt new_project" inside an empty directory ("new_proj") this is the structure:

.. code-block:: shell

    new_proj
        |_ Vagrantfile
        |_ project_repo
            |_ manage.py
            |_ requirements.txt
            |_ config
            |   |_ settings
            |   |   |_ base.py
            |   |   |_ local.py
            |   |
            |   |_ urls.py
            |   |_ wsgi.py
            |
            |_ orchestration
                |_ env_vars
                |   |_ base.yml
                |   |_ vagrant.yml
                |
                |_ inventory
                |   |_ vagrant
                |
                |_ roles
                |   |_ {{ all the Ansible roles }}
                |
                |_ appservers.yml
                |_ dbservers.yml
                |_ site.yml
                |_ vagrant.yml

Vagrant Notes
-------------
- Use the command `vagrant ssh` to SSH into the Vagrant VM
- On the Vagrant VM, the application code is in `/server/<project_name>` and the virtualenv is in `/server/.virtualenvs/<project_name>`
- VM is provisioned with Ansible for the first time when calling `vagrant up`
- Re-provisioning with Ansible can be called with `vagrant provision`




