IBM/osslm-ansible-resource-manager

Name: osslm-ansible-resource-manager

Owner: International Business Machines

Description: osslm-ansible-adaptor

Created: 2017-10-09 17:16:52.0

Updated: 2018-05-11 07:12:28.0

Pushed: 2018-05-11 07:12:27.0

Homepage: null

Size: 508

Language: Python

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

ALM Resource Manager for Ansible

For a more detailed overview and context of this project reference the opensource service lifecycle management project

This project provides a resource manager (RM) for the IBM Agile Lifecycle Manager (ALM) v1.2 based on ansible (see https://www.ansible.com/ ).

It uses a plain out-of-the-box ansible, ie. not ansible-tower, so no REST APIs are available. The ALM-RM API is built using swagger 2.0, and the python-flask server code generator.

It implements the ALM Resource Manager v1.1.2 API Specification and supports sync (REST) as well as async (kafka) mode of operations. The resource packages are expected to be in a folder on the shared file system. Requests, locations and instances are persisted in a cassandra db. It is tested against ALM v1.2

The current architecture: ansible resource manager architecture

This resource manager is packaged in two docker containers managed by docker-compose.

Folders for logging, keys and resources are shared with the host. You should find them in <install_dir>/var_alm_ansible_rm/driver/

Pre-reqs

The images have been tested on MacOS 10.12 and ubuntu xenial

Installation

The steps to install this resource manager are described here.

hello-world

There is an example hello-world resource to test and explore a run-through

Add Locations

Here is an example of location properties for an openstack tenant:


h_pwd": "mypass",
h_url": "http://osserver:35357/v2.0",
h_user": "admin",
ject": "admin"

This resource manager also supports the openstack python openstack client config files for details. To use client config:

  1. Name you config file: clouds.yaml
  2. Put it in the var_alm_ansible_rm/driver/clouds folder
  3. add a property “cloud: cloud_name” to your location. The cloud_name MUST be defined in your clouds.yaml file
  4. Usage in your ansible os_… tasks
    erver:
    oud:  {{ cloud }}
    me: ...
    

All location properties are passed to your ansible playbooks. So the location properties you need to specify depend on your ansible playbooks (e.g. how you connect to the openstack region). If your playbook connects to locations other than an openstack, just add all required properties to the location properties.

Logs etc

The shared file system exposes these directories:

alm_ansible_rm/cassandra - all cassandra files
alm_ansible_rm/driver
logs  - the driver log files
resources - put your component packages here
keys - keypairs created by the playbooks
licenses - license files for VNFs
libraries - 3rd party ansible modules
clouds - the cloud.yaml file to capture openstack cloud credentials

ansible Playbooks and Roles

There is a set of requirements that need to be implemented in your ansible playbooks and roles so that this resource manager can successfully run these playbooks.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.