Build Bahmni Vagrant Box using Packer
- Himabindu Akkinepalli
- Craig Barr
This document describes how to build Bahmni Vagrant Box using packer. Packer is used to build images. Packer installs and configures all the software for a machine at the time the image is built. Packer also has the ability to take the results of a image and turn it into a vagrant box. For more information on packer check https://www.packer.io/intro/index.html
Steps to build the Bahmni vagrant box
Install Packer
packer : https://www.packer.io/intro/getting-started/setup.html
Clone bahmni-vagrant repo from GitHub
git clone https://github.com/Bahmni/bahmni-vagrant.git
From with in bahmni-vagrant directory run the below command
cd bahmni-vagrant python render_template.py <bahmni_version> <ansible_version> e.g: python render_template.py 0.88 2.2.0.0
This will create a template.json file inside the packer directory. If the template.json is already there in the packer folder it will create template_rendered.json file.
From with in the packer directory run the below command. Before running the below command need to delete one and two set of lines from template_rendered.json file as it will try to push the box to Atlas and expects the credentials.
As an alternative to manually deleting the Atlas credentials from the JSON template, you can use jq to dynamically remove them before passing this through to the packer build step.
jq '.["post-processors"][0] |= map(select(.type != "atlas"))' template_rendered.json | packer build -
Once the Atlas credentials are removed you can run this:
cd packer packer build template_rendered.json
Once we run the above command, packer will start building the Bahmni Vagrant Box by downloading the CentOS image from remote repository. The entire process will take at least one hour.
The Bahmni documentation is licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)