informatica:linux:ansible
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| informatica:linux:ansible [2019/09/10 12:19] – jose | informatica:linux:ansible [2020/01/21 08:00] (current) – [Precedencia varaibles] javi | ||
|---|---|---|---|
| Line 68: | Line 68: | ||
| variable_comun: | variable_comun: | ||
| </ | </ | ||
| + | |||
| + | ====== Precedencia varaibles ====== | ||
| + | |||
| + | Este es el orden, de mayor precedencia a menor precedencia, | ||
| + | |||
| + | 1. extra vars | ||
| + | |||
| + | < | ||
| + | --extra-vars " | ||
| + | </ | ||
| + | |||
| + | 2. playbook | ||
| + | |||
| + | install-mysql.yml | ||
| + | |||
| + | 3. role | ||
| + | |||
| + | role/ | ||
| + | |||
| + | 4. groups | ||
| + | |||
| + | group_vars/ | ||
| + | |||
| + | 5. role defaults | ||
| + | |||
| + | role/ | ||
| + | |||
| + | **TODO**: poner un ejemplo complejo para que se vean las buenas prácticas de hacer roles reusables | ||
| + | |||
| + | ====== Almacenar información sensible (vaults) ====== | ||
| + | |||
| + | ===== Crear archivo con y sin cifrar ===== | ||
| + | |||
| + | 1. Crear un archivo con las variables, y llamarlo " | ||
| + | |||
| + | var1 = " | ||
| + | | ||
| + | 2. Copiar el archivo y llamarlo " | ||
| + | |||
| + | cp vars.yml vault.yml | ||
| + | | ||
| + | 3. Editar " | ||
| + | |||
| + | vault_var1 = " | ||
| + | |||
| + | 4. Cifrar " | ||
| + | |||
| + | ansible-vault encrypt vault.yml --vault-id prod@prompt | ||
| + | |||
| + | 5. Teclear dos veces la contraseña (y anotarla en algún lugar) | ||
| + | |||
| + | 6. Editar " | ||
| + | |||
| + | vim vault.yml | ||
| + | | ||
| + | Y dejarlo tal que así: | ||
| + | |||
| + | var1 = "{{ vault_var1 }}" | ||
| + | | ||
| + | 7. Incluir los archivos " | ||
| + | |||
| + | < | ||
| + | - name: Include vars.yml | ||
| + | include_vars: | ||
| + | |||
| + | - name: Include vault.yml | ||
| + | include_vars: | ||
| + | </ | ||
| + | |||
| + | ===== Cifrar un archivo ===== | ||
| + | |||
| + | En este ejemplo: | ||
| + | |||
| + | * Ciframos un archivo entero | ||
| + | * El módulo de ansible se encarga de descrifrarlo, | ||
| + | |||
| + | Tenemos el siguiente diseño de archivos: | ||
| + | |||
| + | < | ||
| + | . | ||
| + | ├── hosts | ||
| + | ├── roles | ||
| + | │ ├── example | ||
| + | │ │ ├── files | ||
| + | │ │ │ └── files.tar.bz2 | ||
| + | │ │ ├── tasks | ||
| + | │ │ │ ├── main.yml | ||
| + | </ | ||
| + | |||
| + | 1. Cifrar el archivo, en este caso " | ||
| + | |||
| + | ansible-vault encrypt roles/ | ||
| + | |||
| + | 2. Escribir la contraseña | ||
| + | |||
| + | 3. Añadir una tarea: | ||
| + | |||
| + | < | ||
| + | - name: Uncompress the wordrepss files in docker host volume | ||
| + | unarchive: | ||
| + | src: files.tar.bz2 | ||
| + | dest: /tmp | ||
| + | become: true | ||
| + | </ | ||
| + | |||
| + | Nótese que dado que usamos roles no hay que especificar el path absoluto de " | ||
| + | |||
| + | 4. Ejecutar el playbook. | ||
| + | |||
| + | El resultado esperado es que descifrará " | ||
| + | ===== Comandos útiles ===== | ||
| + | |||
| + | * Editar archivo encriptado | ||
| + | |||
| + | ansible-vault edit vault.yml --ask-vault-pass | ||
| + | |||
| + | * Editar y proporcionar archivo (con la contraseña en plano) para no tener que teclearla cada vez | ||
| + | |||
| + | ansible-vault edit vault.yml --vault-id prod@examples/ | ||
| + | | ||
| + | * Editar y proporcionar archivo (con la contraseña en plano) para no tener que teclearla cada vez | ||
| + | |||
| + | ansible-vault view vault.yml --vault-id prod@examples/ | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | |||
| + | |||
| + | |||
informatica/linux/ansible.1568117996.txt.gz · Last modified: by jose
