spacemacs/layers/+tools/ansible
syl20bnr 584392bd92 [core] Fix layer dependencies based on layer variables
There was a edge case with the declaration of the `lsp` layer in `layers.el`
files.
The `hy` layer depends on the `python` layer which in turn depends on the `lsp`
layer if and only if the `python-backend` layer variable is set to `lsp`.
When the `hy` layer was declared first then it declares the `python` layer
without its layer variables, thus the `lsp` layer was not declared because the
`python-backend` variable was not set.

The fix is to gather all the layer dependencies and resolve them only after all
the used layers have been declared.

* new function `configuration-layer/declare-layer-dependencies`
* replace all calls to `configuration-layer/declare-layer` by the new function
  except for distribution layers (we declare layer dependencies right away in
  distribution layers)
2019-09-30 02:00:48 -04:00
..
img
config.el Improve regexp for detecting Ansible files 2019-09-22 19:40:45 +02:00
funcs.el Fix ansible layer for upstream changes in ansible minor mode 2019-07-09 01:48:12 +02:00
layers.el [core] Fix layer dependencies based on layer variables 2019-09-30 02:00:48 -04:00
packages.el [ansible] Fix void-variable company-backends 2019-08-30 10:22:43 -04:00
README.org Fix ansible layer for upstream changes in ansible minor mode 2019-07-09 01:48:12 +02:00

Ansible layer

/TakeV/spacemacs/media/commit/ea11a256fdc39ca1a63c0c9c7f105a7e253d2339/layers/+tools/ansible/img/ansible.png

Description

This layer adds support for editing Ansible configuration files in Spacemacs.

Features:

  • Syntax highlighting for Ansible-flavored YAML and Jinja2 templates.
  • Auto-completion via company-ansible.
  • Integration of ansible-vault into emacs for automatic encryption/decryption of files.

Install

To use this configuration layer, add it to your ~/.spacemacs. You will need to add ansible to the existing dotspacemacs-configuration-layers list in this file.

Configuration

ansible-vault

Password

To use ansible-vault you have to provide the path to a file containing the password to use somewhere in your dotspacemacs/user-config function. For instance:

  (setq ansible-vault-password-file "path/to/pwd/file")

The default value is the ansible-vault default value: ~/.vault_pass.txt.

For now Ansible does not handle multiple passwords in the vault file (see https://github.com/ansible/ansible/issues/13243). To work around this limitation directory local variables can be used to define a different password file for a given environment. Example:

  ;;; Directory Local Variables
  ;;; For more information see (info "(emacs) Directory Variables")

  ((yaml-mode . ((ansible-vault-password-file . "path/to/vault_file"))))

Automatic encryption and decryption

This layer comes preconfigured with automatic encryption/decryption of encrypted files using ansible-vault so it is possible to edit seamlessly any encrypted files.

If you want to disable this feature then set the layer variable ansible-auto-encrypt-decrypt to nil.

  (ansible :variables ansible-auto-encrypt-decrypt t)

Key bindings

Key binding Description
SPC m b e encrypt the buffer using ansible-vault
SPC m b d decrypt the buffer using ansible-vault
SPC m h a looks up documentation using ansible-doc