GithubHelp home page GithubHelp logo

mcmegavolt / ansible-rails_deploy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jscheid/ansible-rails_deploy

0.0 2.0 0.0 84 KB

Deploy Rails applications using Ansible and DebOps

License: GNU General Public License v3.0

Shell 100.00%

ansible-rails_deploy's Introduction

DebOps project rails_deploy

Travis CI test-suite Ansible Galaxy

debops.rails_deploy role allows you to easily setup infrastructure capable of running Rails applications. It removes all of the headaches associated to setting up a secure Rails app that is ready for production so you can concentrate on developing your app.

High level goals

  • Setup an entire rails app server with 1 line of configuration with sane defaults
  • Optionally and easily separate your app servers, database and worker into multiple servers
  • Quickly and easily switch between popular default databases and backend servers
  • Be as secure as possible and adhere to as many best practices as possible

Backups and logging

  • Postgresql runs a daily backup with daily/weekly rotation
  • Both your backend server and background worker get logged to 1 logrotated file
  • The rails process gets sent to syslog.user

System level minutia

  • User accounts, permissions and ssh keys are automatically managed
  • Paths such as logs, pids and sockets are automatically managed

Deploy features

  • Automatically set deploy keys to github/gitlab with 1 line of configuration
    • This leverages their API, all you have to do is supply their token
  • Keep track of your schema file and config folder's mtime in local facts
    • This allows the deploy task to attempt to guess if your server needs a full restart or a quick reload
  • Only run database commands from a single master app server
    • This master is defined by simply being first in the group list
  • Various options to turn certain features on/off
    • A few examples would be database creation, migration and force restarting your server
  • Add custom services which get restarted/reloaded at the end of the deploy cycle
    • If you have a SOA setup this could be handy
  • Add and remove custom tasks at various points in the deploy
    • By default it is set to precompile assets and clear the /tmp cache
  • Optionally swap a static deploy page in/out during the deploy cycle

Security

  • Secure passwords are managed automatically for your database
  • Ports are blocked and only whitelisted for IP addresses/masks that you specify
  • SSL is enabled by default but can be turned off if you really don't want it
  • Self signed SSL certs are automatically managed for you
    • Changing to properly signed certificates is a breeze

Installation

This role requires at least Ansible v1.7.0. To install it, run:

ansible-galaxy install debops.rails_deploy

Documentation

More information about debops.rails_deploy can be found in the official debops.rails_deploy documentation.

Role dependencies

  • debops.etc_services
  • debops.redis
  • debops.nginx
  • debops.nodejs
  • debops.mysql
  • debops.ruby
  • debops.monit
  • debops.secret
  • debops.postgresql

Are you using this as a standalone role without DebOps?

You may need to include missing roles from the DebOps common playbook into your playbook.

Try DebOps now for a complete solution to run your Debian-based infrastructure.

Authors and license

rails_deploy role was written by:

License: GPLv3


This role is part of the DebOps project. README generated by ansigenome.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.