Code Monkey home page Code Monkey logo

ansible-playbook-bundle's Introduction

Ansible Playbook Bundle (APB)

An Ansible Playbook Bundle (APB) is a lightweight application definition (meta-container). They are used to define and deploy complex groups of applications, deployment configs, deployments, and services to an OpenShift Origin cluster running the Ansible Service Broker. APBs offer more power and simple configuration by leveraging the power of Ansible. APBs have the following features:

  • Metadata contains list of required/optional parameters for use during deployment.
  • Leverages existing investment in Ansible Roles / Playbooks.
  • Actions under a directory with named playbooks and metadata defined in apb.yml.
  • Developer tooling to drive a guided approach.
  • Easily modified or extended.

Installing the apb tool

Prerequisites

Docker must be correctly installed and running on the system.

RPM Installation

For RHEL or CentOS 7:

su -c 'wget https://copr.fedorainfracloud.org/coprs/g/ansible-service-broker/ansible-service-broker/repo/epel-7/group_ansible-service-broker-ansible-service-broker-epel-7.repo -O /etc/yum.repos.d/ansible-service-broker.repo'

sudo yum -y install apb

For Fedora 25 or Fedora 26:

sudo dnf -y install dnf-plugins-core
sudo dnf -y copr enable @ansible-service-broker/ansible-service-broker
sudo dnf -y install apb
Installing from source

Clone this repo

git clone https://github.com/fusor/ansible-playbook-bundle.git

Install python-virtualenv, create a virtualenv, and activate it.

sudo dnf install -y python-virtualenv
virtualenv apb
source apb/bin/activate

Install requirements and run the setup script (requires python)

pip install -r src/requirements.txt && python setup.py install

Alternatively you can use tito to install.

tito build --test --rpm -i
Test apb tooling

Run apb help to make sure the tool is installed correctly

$ apb help
usage: apb [-h] [--debug] [--project BASE_PATH] {init,help,prepare,build} ...

APB tooling for assisting in building and packaging APBs.

optional arguments:
  -h, --help            show this help message and exit
  --debug               Enable debug output
  --project BASE_PATH, -p BASE_PATH
                        Specify a path to your project. Defaults to CWD.

subcommand:
  {init,help,prepare,build}
    init                Initialize the directory for APB development
    help                Display this help message
    prepare             Prepare an ansible-container project for APB packaging
    build               Build and package APB container
    push                Push the APB spec to an Ansible Service Broker

Documentation

  • Getting Started - step by step tutorial to create an Ansible Playbook Bundle
  • Design - overall design of Ansible Playbook Bundles
  • Developers - in depth explanation of Ansible Playbook Bundles

Initialize skeleton APB application example

apb init my_apb -p name=my_apb_param,type=string,default=foo_param,description="sample description" --async=optional --bindable --organization my_organization

This gives us the following example apb.yaml

name: my_apb
image: my_organization/my_apb
description: This is a sample application generated by apb init
bindable: True
async: optional
parameters:
- name: my_apb_param
  description: sample description
  type: string
  default: foo_param

ansible-playbook-bundle's People

Contributors

cfchase avatar dymurray avatar eriknelson avatar fabianvf avatar flaper87 avatar jmontleon avatar jmrodri avatar jwmatthews avatar shawn-hurley avatar

Watchers

 avatar  avatar

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.