Skip to content
This repository has been archived by the owner on Oct 15, 2024. It is now read-only.

Latest commit

 

History

History

ansible

  • infos = Information about the ansible plugin is in keys below
  • infos/author = Maximilian Irlinger [email protected]
  • infos/licence = BSD
  • infos/needs =
  • infos/provides = storage/ansible
  • infos/recommends =
  • infos/placements = setstorage
  • infos/status = recommended productive maintained conformant unittest writeonly
  • infos/metadata =
  • infos/description = export Ansible playbooks

Introduction

Provides a write-only storage plugin for use with kdb export and kdb record-export. The output format is an Ansible playbook that utilized the ansible-libelektra module.

Keys that possess the metakey meta:/elektra/removed will be removed using the remove option in ansible-libelektra.

Plugin Configuration

You can use the following configuration keys to modify the behavior and output of the plugin:

Key Default Value Description
playbook 1 Whether to generate a whole playbook or just a (list of) task(s) (0)
playbook/name My Elektra Playbook The name property of the playbook
playbook/hosts all The hosts property of the playbook
task/main/name Set Elektra Keys The name of the 'main' task of the playbook

Dependencies

This plugin requires yaml-cpp. On a Debian based OS the package for the library is called libyaml-cpp-dev. On macOS you can install the package yaml-cpp via HomeBrew.

Examples

# Backup-and-Restore: user:/tests

kdb set user:/tests/company/roles/ceo Hans
#> Create a new key user:/tests/company/roles/ceo with string "Hans"

kdb export user:/tests/company ansible -c playbook/name="Company Roles",task/main/name="I can customize this too"
# RET:0
---
- name: Company Roles
  hosts: all
  collections:
    - elektra_initiative.libelektra
  tasks:
    - name: I can customize this too
      elektra:
        keys:
          - user:
              tests:
                company:
                  roles:
                    ceo:
                      - value: Hans

Limitations

  • This plugin only supports writing of Ansible Playbooks. It is currently not possible to read them with this plugin. Do not use this plugin as a general-purpose storage plugin.

  • If keys below system:/elektra/mountpoints are included, we will always create a second task for them instead of using the mount operation of the ansible-libelektra module. This task will be created first. Keys created during the 'main' task will then already be able to use the correctly mounted files.