Este documento indica que desde Ansible 2.3 debería ser posible encriptar ciertos vars usando un !vault |
prefijo en lugar de colocar una variable y claves en un archivo de almacén y encriptarlo completamente.
notsecret: myvalue mysecret: !vault | $ANSIBLE_VAULT;1.1;AES256 66386439653236336462626566653063336164663966303231363934653561363964363833313662 6431626536303530376336343832656537303632313433360a626438346336353331386135323734 62656361653630373231613662633962316233633936396165386439616533353965373339616234 3430613539666330390a313736323265656432366236633330313963326365653937323833366536 34623731376664623134383463316265643436343438623266623965636363326136 other_plain_text: othervalue
Por el momento la estructura es la siguiente:
ansible/group_vars/testing/vars
ansible/group_vars/testing/vault
Cuando una variable cifrada se mueve de la bóveda al directorio vars y ansible-vault decrypt ansible/group_vars/testing/vars
se ejecuta, devuelve:
ERROR! input is not vault encrypted data for ansible/group_vars/testing/vars
Esta variable abovedada se descifrará con el secreto de la bóveda suministrada y se utilizará como una variable normal. La línea de comando ansible-vault admite stdin y stdout para cifrar datos sobre la marcha, que se pueden usar desde su editor favorito para crear estas variables abovedadas; solo tiene que asegurarse de agregar la etiqueta! vault para que tanto Ansible como YAML sean conscientes de la necesidad de descifrar. El | también es necesario, ya que el cifrado de bóveda da como resultado una cadena de varias líneas.
Preguntas
- ¿Deberían las variables que necesitan ser encriptadas, encriptarse una por una usando la línea de comando?
- ¿Cuáles son las mejores prácticas para reestructurar la antigua estructura de Ansible? Por ejemplo, ¿eliminar los archivos de bóveda y poner todos los vars cifrados en el archivo vars?