All Projects → express42 → ansible-repertory

express42 / ansible-repertory

Licence: other
No description or website provided.

Programming Languages

python
139335 projects - #7 most used programming language
Jinja
831 projects

Projects that are alternatives of or similar to ansible-repertory

Fruit-API
A Universal Deep Reinforcement Learning Framework
Stars: ✭ 61 (+0%)
Mutual labels:  environment
docker-environment
Flyve MDM Docker Environment
Stars: ✭ 49 (-19.67%)
Mutual labels:  environment
workbench
A hierarchical environment manager for bash, written in bash.
Stars: ✭ 17 (-72.13%)
Mutual labels:  environment
tpl
Use go templates with simple and complex environment variables
Stars: ✭ 18 (-70.49%)
Mutual labels:  environment
seed-pixi-typescript
A pre installed environnement to work with pixi.js with webpack & typescript
Stars: ✭ 36 (-40.98%)
Mutual labels:  environment
shinyrems
An R package to launch shinyrems; an online application that allows a user to access, download, clean, plot and calculate simple statistics using data from the B.C. government Environmental Monitoring System database.
Stars: ✭ 16 (-73.77%)
Mutual labels:  environment
coffee-boots
Support property-based configuring of multiple Caffeine caches for Spring Cache abstraction.
Stars: ✭ 22 (-63.93%)
Mutual labels:  environment
as-a
Runs a given command with additional environment settings for simple local development
Stars: ✭ 60 (-1.64%)
Mutual labels:  environment
env-diff
Env-diff is a lightweight library which sync your .env files with .env.dist by composer scripts, hooks or manual running
Stars: ✭ 24 (-60.66%)
Mutual labels:  environment
ButOSX
CSGO Cheat Base for MacOSX. Written in C++ & Objective C. Menu Powered by ImGui. Includes Apple TouchBar API.
Stars: ✭ 58 (-4.92%)
Mutual labels:  base
envo
A community-driven ontology for the representation of environments
Stars: ✭ 106 (+73.77%)
Mutual labels:  environment
gismo
Gismo is a free Grasshopper plugin for GIS environmental analysis
Stars: ✭ 67 (+9.84%)
Mutual labels:  environment
base
Base is Baianat's design language, built based on the art of big typography and giving exactly the same experience on any device using responsive elements technique.
Stars: ✭ 13 (-78.69%)
Mutual labels:  base
jest-environment-selenium
Jest environment for running Selenium WebDriver tests
Stars: ✭ 28 (-54.1%)
Mutual labels:  environment
GoBigger
Come & try Decision-Intelligence version of "Agar"! Gobigger could also help you with multi-agent decision intelligence study.
Stars: ✭ 410 (+572.13%)
Mutual labels:  environment
kapten
Simple containerized development environments directly from the command line
Stars: ✭ 53 (-13.11%)
Mutual labels:  environment
react-page-swapper
An orchestrator that eases out the implementation of page transitions
Stars: ✭ 16 (-73.77%)
Mutual labels:  base
ShakeEnvironment
Shake To Change Scheme or Environment Project
Stars: ✭ 20 (-67.21%)
Mutual labels:  environment
wp-cli-dev
🛠 WP-CLI development environment that allows for easy development across all packages
Stars: ✭ 29 (-52.46%)
Mutual labels:  environment
EnvMapTooL
No description or website provided.
Stars: ✭ 25 (-59.02%)
Mutual labels:  environment

Build Status

Overview

This repository is used as a good start point for infrastructure development. It contains basic roles and describes workflow to create solid solution.

The mastery of the ensemble is determined by the quantity and quality of plays performed. Repertory is created to comprise everything needed for server infrastructure of any level and complexity.

Basic principles

  • Playbook per application
  • All variables should be defined in environments' vars files

Directory structure

  • environments/ - root directory for environments
    • environment_dir/ - directory containing vars and hosts per environment
      • group_vars/ - variables defined per group
      • host_vars/ - variables defined per host
      • play_vars/ - variables defined per play in playbooks
      • inventory_file - inventory file with hosts related to the environment
  • molecule/ - molecule v2 configuration
    • resources/ - shared among molecule scenarios resources
    • scenario_name/ - specific molecule scenarios divided by platform, default - docker containers
  • playbooks/ - directory for playbooks, playbook per application
  • roles/ - custom roles
  • ansible.cfg - config for ansible
  • requirements.txt - python requirements
  • requirements.yml - ansible playbooks' requirements
  • site.yml - playbook containing every app in infrastructure

What goes where

Variables

Tasks

  • All tasks should be defined in roles

Playbooks

  • Playbooks contain only roles, groups of hosts and vars files
  • Playbook should contain everything needed for application to start
  • Avoid setting variables and tasks in playbooks
  • You can use site.yml as the only entrypoint for your configuration

Getting started

Fast start

  • Do not forget use Python 2.7 instead of 3.x. Molecule and Ansible doesn't support Python 3.x
  • Clone git repo
git clone [email protected]:express42/ansible-repertory.git
vagrant plugin install vagrant-parallels
  • Install prerequisites
cd ansible-repertory
ansible-galaxy install -r requirements.yml
pip install -r requirements.txt
touch vault.key
  • Run tests
molecule test

Using with your infrastructure

  • Remove excessive roles from requirements.yml, python modules from requirements.txt and playbooks
  • Make changes to site.yml
  • Make changes to vars files in example environment
  • Test changes with command
molecule test
  • Copy molecule environment to new environment
  • Make changes to inventory and vars files
  • Run command
ansible-playbook site.yml --inventory-file=./environments/new_environment/inventory

Molecule

molecule list
molecule converge
molecule status
molecule login common
molecule destroy

Testing using Travis-CI

  • Fork git repository
  • Add repository into Travis-CI
  • Push new commits

ToDo

  • Update default packages playbook
  • Add more playbooks or list recommended ones
  • Add base role (as it is in testo)

Known issues

  • 'zabbix_url' variable used in playbooks dj-wasabi.zabbix-agent and dj-wasabi.zabbix-server for different purposes
    • Workaround: redefine 'zabbix_url' in play_vars
  • API calls in playbook dj-wasabi.zabbix-agent made from several servers can interfere with each other
    • Workaround: make API calls serial
  • While using VirtualBox for testing you should change all mentions of interface 'eth0' to 'eth1'

Links

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].