Skip to content

gnublin/chef-dbwm

Repository files navigation

Build Status

Chef-dbwm

Chef data bags Web Manager is an application to manage your data bags files. This app support the encrypted or plain data bags in json format.

You can run this app on your chef server or locally on your computer.

This app has vocation to simplify data bags management instead the knife command. App try all secrets you have registered to uncrypte the data bag you want to access. The data bag modification is concern only the part of changes; that's better to follow changes in versionning repository.

Install from GIT

Requirement

  • bundler (gem install bundler)
  • npm

Prepare

  • Clone this repository
git clone https://github.com/gnublin/chef-dbwm.git
  • Install ruby Gems
bundle install
  • Install node modules
npm install

Configure

Please read the configure section

Run app

bundle exec rackup -p 8080

Install from docker

Prepare

  • Clone this repository
git clone https://github.com/gnublin/chef-dbwm.git

Configure

Docker


Warn: rackup default is in development mode. Your configuration file should be config/development/config.yml

You should to configure the shared volumes.

To manage the sharing, I've create an extra docker-compose file:

Edit the docker-compose-vol.yml sample:

# docker-compose-vol.yml
version: '3.0'
services:
  web:
    volumes:
      - /path_to/config/development/config.yml:/app/config/development/config.yml
      - /path_to/data_bags:/app/data_bags
      - /path_to/templates:/app/templates

I think the docker-compose-vol.yml will not be modify in the future. It's in my .gitignore file.

App


Warn: Adapt your App configuration file with your volumes mapping

Please read the configure section

Run

To run this app in docker, you should to run the docker-compose command:

docker-compose up -f docker-compose.yml -f docker-compose-vol.yml To down this app, you could to use the docker-compose command too:

docker-compose down

Configure

You should to create a config/RACK_ENV/config.yml configuration.

Ex: config/development/config.yml


Warn: This configuration file is required to run this app.

---
mdb_config:
  secret_keys_path:
    env1:
      path: /home/user/data_bags_keys/secret_env1
    env2:
      path: /home/user/data_bags_keys/secret_env2
    env3:
      path: /home/user/data_bags_keys/secret_env3
  data_bags_path:
    project42: /home/user/code/git/project_john/data_bags
    project73: /home/user/code/git/project_jane/data_bags
    project0: /home/user/code/git/project_doe/data_bags
  templates_dir:
    tpl1: /home/user/code/git/chef-dbwm/templates #absolute path
    tpl2: templates #relative path from repository

Contribution

Commit convention

  • feat(#issue): description* when issue is a feature
  • card(#issue): description* when issue is a card
  • bug(#issue): description* when issue is a bug
  • test(card name): description* when you add more commits into issue
  • doc(readme): description* when you want to update readme or other doc

*feel free to add more details in multi-line list of your commit description

License and Author

Author: Gauthier FRANCOIS (gauthier@openux.org)

MIT License
Copyright (c) 2018 Gauthier FRANCOIS