2015-12-02 14:23:39 +00:00
|
|
|
#+TITLE: Ansible layer
|
2015-06-10 16:44:30 +00:00
|
|
|
|
2019-05-02 21:49:30 +00:00
|
|
|
#+TAGS: layer|tool
|
|
|
|
|
2015-06-10 16:44:30 +00:00
|
|
|
[[file:img/ansible.png]]
|
|
|
|
|
2019-05-07 20:05:06 +00:00
|
|
|
* Table of Contents :TOC_5_gh:noexport:
|
2017-05-22 14:16:12 +00:00
|
|
|
- [[#description][Description]]
|
2018-02-16 18:44:54 +00:00
|
|
|
- [[#features][Features:]]
|
2017-05-22 14:16:12 +00:00
|
|
|
- [[#install][Install]]
|
|
|
|
- [[#configuration][Configuration]]
|
|
|
|
- [[#ansible-vault][ansible-vault]]
|
|
|
|
- [[#password][Password]]
|
|
|
|
- [[#automatic-encryption-and-decryption][Automatic encryption and decryption]]
|
|
|
|
- [[#key-bindings][Key bindings]]
|
2015-06-10 16:44:30 +00:00
|
|
|
|
|
|
|
* Description
|
2018-02-16 18:44:54 +00:00
|
|
|
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.
|
2015-06-10 16:44:30 +00:00
|
|
|
|
|
|
|
* Install
|
2016-01-06 05:21:55 +00:00
|
|
|
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.
|
2015-06-10 16:44:30 +00:00
|
|
|
|
2016-12-16 13:50:21 +00:00
|
|
|
* Configuration
|
|
|
|
** ansible-vault
|
|
|
|
*** Password
|
|
|
|
To use =ansible-vault= you have to provide the path to a file containing the
|
2017-04-19 19:44:49 +00:00
|
|
|
password to use somewhere in your =dotspacemacs/user-config= function.
|
2016-12-16 13:50:21 +00:00
|
|
|
For instance:
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
2018-09-19 03:54:47 +00:00
|
|
|
(setq ansible::vault-password-file "path/to/pwd/file")
|
2016-12-16 13:50:21 +00:00
|
|
|
#+END_SRC
|
|
|
|
|
|
|
|
The default value is the ansible-vault default value: =~/.vault_pass.txt=.
|
|
|
|
|
2017-04-19 18:00:18 +00:00
|
|
|
For now Ansible does not handle multiple passwords in the vault file
|
2018-09-19 03:54:47 +00:00
|
|
|
(see [[https://github.com/ansible/ansible/issues/13243]]). To work around this
|
2017-04-19 18:00:18 +00:00
|
|
|
limitation directory local variables can be used to define a different
|
|
|
|
password file for a given environment. Example:
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
2018-09-19 03:54:47 +00:00
|
|
|
;;; Directory Local Variables
|
|
|
|
;;; For more information see (info "(emacs) Directory Variables")
|
2017-04-19 18:00:18 +00:00
|
|
|
|
2018-09-19 03:54:47 +00:00
|
|
|
((yaml-mode . ((ansible::vault-password-file . "path/to/vault_file"))))
|
2017-04-19 18:00:18 +00:00
|
|
|
#+END_SRC
|
|
|
|
|
2017-04-19 19:44:49 +00:00
|
|
|
*** Automatic encryption and decryption
|
2016-12-16 13:50:21 +00:00
|
|
|
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
|
2017-04-19 19:44:49 +00:00
|
|
|
=ansible-auto-encrypt-decrypt= to =nil=.
|
2016-12-16 13:50:21 +00:00
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
2018-09-19 03:54:47 +00:00
|
|
|
(ansible :variables ansible-auto-encrypt-decrypt t)
|
2016-12-16 13:50:21 +00:00
|
|
|
#+END_SRC
|
|
|
|
|
2015-06-10 16:44:30 +00:00
|
|
|
* Key bindings
|
|
|
|
|
2018-12-05 03:03:03 +00:00
|
|
|
| Key binding | Description |
|
2015-10-30 11:20:58 +00:00
|
|
|
|-------------+------------------------------------------|
|
2019-02-16 09:52:26 +00:00
|
|
|
| ~SPC m b e~ | encrypt the buffer using =ansible-vault= |
|
|
|
|
| ~SPC m b d~ | decrypt the buffer using =ansible-vault= |
|
2016-01-07 20:20:27 +00:00
|
|
|
| ~SPC m h a~ | looks up documentation using [[https://github.com/lunaryorn/ansible-doc.el][ansible-doc]] |
|