khusnetdinov / provisioner

Prepare enviroment on linux (Ubuntu) for run Ruby on Rails application in production. Setting up deploy user, timezone, locales, swapfile. Install PostgreSQL, Redis, Nginx.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Provisioner

Galaxy

This ansible role helps to use several receipts together. Just wrapper for other roles.

Files structure

  ├── /defaults/                  # Default variables for playbook
  │   └── main.yml                # Variables for playbook
  ├── /meta/                      # Meta
  │   └── main.yml                # Ansible Galaxy meta information
  ├── /roles/                     # Vendor playbooks
  ├── /temp/                      # Temp files
  │── ansible.cfg                 # Ansible configuration file
  │── hosts                       # Inventory file
  │── README.md                   # Project description
  │── requerements.txt            # Dependencies file
  └── playbook.yml                # Playbook file

How it works

Dependencies

Provisioner use other ansible receipts witch are specified in requirements.yml:

  ---

  - src: "https://github.com/Stouts/Stouts.locale"
    name: locale
    version: 1.1.0

  ... other tools ...

Installation

Run command:

  $ ansible-galaxy install -r requirements.yml

Configuration

All variables should be placed in defaults/main.yml:

  ---
  
  provision_user_name: deploy
  
  ... other variables ...

This variables are used in playbook playbook.yml.

Playbook

Playbook is playbook.yml - main file. Plase here all logic.

Inventory

Is located in hosts.

  # hosts

  [provision]
  # Set you hosts
  0.0.0.0

Run provision

  $ ansible-playbook playbook.yml -i hosts -vvv

About

Prepare enviroment on linux (Ubuntu) for run Ruby on Rails application in production. Setting up deploy user, timezone, locales, swapfile. Install PostgreSQL, Redis, Nginx.