[FOLIO-306] Ansible Playbook for FOLIO Created: 08/Sep/16  Updated: 12/Nov/18  Resolved: 09/Nov/16

Status: Closed
Project: FOLIO
Components: None
Affects versions: None
Fix versions: None

Type: Task Priority: P2
Reporter: John Malconian Assignee: Wayne Schneider
Resolution: Done Votes: 0
Labels: sprint1, sprint2
Remaining Estimate: Not Specified
Time Spent: 1 week, 3 days, 4 hours, 20 minutes
Original estimate: Not Specified

Issue links:
Blocks
blocks FOLIO-329 Improve guides and scripts (e.g. Dock... Open
blocks LIBAPP-51 Simple UI control for listing users Closed
Sprint:

 Description   

Developers and other folks evaluating the FOLIO platform need an easy way to get up and running without the need to configure build environments, compile code, configure, and deploy each component manually. Develop a reusable Ansible FOLIO playbook to automate these steps and create a working FOLIO environment consisting of Okapi and other modules that currently exist at http://github.com/folio-org that can be used for development, continuous integration testing, and evaluation purposes. Make the playbook publicly available in the FOLIO GitHub repository and extensible so that the community can contribute as well.



 Comments   
Comment by John Malconian [ 08/Sep/16 ]

Some initial thoughts:

1. Since reusability is important and the playbook will be published on GitHub, it will be important to keep the playbook non-site specific and configurable as possible. Password and sensitive data should remain outside the playbook.

2. We may want to organize the playbook by creating an Ansible role for each module and Okapi. Additionally, it would be useful to have the option to pick and choose certain tasks at runtime. For example, being able to skip build tasks when a user just needs to deploy.

3. Utilize Vagrant to create a dedicated, virtual build and deployment environment.

Comment by John Malconian [ 08/Sep/16 ]

GitHub repo created at: https://github.com/folio-org/folio-ansible
Set to 'private' for now until we get something resembling a working playbook.

Comment by Wayne Schneider [ 09/Sep/16 ]

Branch with some current work on this named "FOLIO-306/ws". Created Ansible roles to run Okapi core from out of the source repository, working Vagrantfile and playbook. Currently targeted at Debian Jessie, can be generalized.

Comment by Wayne Schneider [ 14/Sep/16 ]

Submitted pull request (https://github.com/folio-org/folio-ansible/pull/1) with initial work. Some thoughts on where to go from here, feedback on prioritization welcome:

1. Continue down this path of building roles to deploy sample modules from source, maybe in this order?

  • folio-sample-modules
  • raml-module-builder
  • mod-circulation
  • mod-metadata

2. Generalize roles to work with environments other than Debian Jessie

3. Add roles to build a more production-like environment, with persistent storage, binary deployment from package files, init scripts, etc.

As it stands, the work could be useful to a developer who wants to see a quick Okapi environment set up and play with the code.

Comment by John Malconian [ 20/Sep/16 ]

Yes, I think item #1 is the path we should focus on next. I'm not exactly sure what kind of modules are available in 'folio-sample-modules' so I would focus on the following modules in order of priority:

mod-auth
mod-acquisitions
mod-circulation
mod-metadata

Note that raml-module-builder is not a FOLIO module in the strict sense. Rather, it is a Maven build dependency for the mod-circ and mod-acquisitions modules so it needs to be built before those other mods.

Comment by Wayne Schneider [ 23/Sep/16 ]

Added role to build mod-auth, waiting on Kurt Nordstrom for a test suite. Pushed up to branch FOLIO-306/ws, will merge after testing.

Comment by Wayne Schneider [ 23/Sep/16 ]

Added role to build raml-module-builder, pushed to FOLIO-306/ws branch

Comment by Wayne Schneider [ 27/Sep/16 ]

With help from Kurt Nordstrom, mod-auth tests now pass. Merged mod-auth and raml-module-builder work into master, created new branch for work on folio-sample-modules.

Comment by Wayne Schneider [ 24/Oct/16 ]

Added okapi-docker role, merged into master. Using environment variable FOLIO_DEPLOY can specify source- or Docker-based Vagrant deployment.

Comment by Wayne Schneider [ 01/Nov/16 ]

Added mod-circulation-docker, mod-users-docker, and mod-users-data roles, updated documentation, merged into master. Removed dependency on FOLIO_DEPLOY variable, it was more annoying than helpful.

Comment by Wayne Schneider [ 03/Nov/16 ]

folio-ansible repo is now public (thanks, David Crossley, for the help with tidying up!)

Comment by Peter Murray [ 08/Nov/16 ]

This is great work. I was able to get the vagrant box up and running without any changes to the playbook and roles. The Ansible playbook did bomb out a couple of times with error messages that I attributed to network connectivity problems. Restarting the playbook got through and beyond those points.

Comment by Wayne Schneider [ 09/Nov/16 ]

Basic structure is set up. We have work to do on documentation and smoothing out the process, will be added as separate issues

Generated at Thu Feb 08 23:04:47 UTC 2024 using Jira 1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d.