Hay varias formas de hacer esto y, a partir de su pregunta, no está claro lo que necesita.
1. Si necesita que la variable de entorno se defina SOLO POR TAREA, haga lo siguiente:
- hosts: dev
tasks:
- name: Echo my_env_var
shell: "echo $MY_ENV_VARIABLE"
environment:
MY_ENV_VARIABLE: whatever_value
- name: Echo my_env_var again
shell: "echo $MY_ENV_VARIABLE"
Tenga en cuenta que MY_ENV_VARIABLE
está disponible SOLO para la primera tarea, environment
no lo configura de forma permanente en su sistema.
TASK: [Echo my_env_var] *******************************************************
changed: [192.168.111.222] => {"changed": true, "cmd": "echo $MY_ENV_VARIABLE", ... "stdout": "whatever_value"}
TASK: [Echo my_env_var again] *************************************************
changed: [192.168.111.222] => {"changed": true, "cmd": "echo $MY_ENV_VARIABLE", ... "stdout": ""}
Con suerte, el uso pronto environment
también será posible en el nivel de juego , no solo en el nivel de tarea como el anterior. Actualmente hay una solicitud de extracción abierta para esta función en GitHub de Ansible: https://github.com/ansible/ansible/pull/8651
ACTUALIZACIÓN: Ahora se fusionó a partir del 2 de enero de 2015.
2. Si desea una variable de entorno permanente + todo el sistema / solo para cierto usuario
Debería ver cómo lo hace en su distribución / shell de Linux, hay varios lugares para eso. Por ejemplo, en Ubuntu lo define en archivos como, por ejemplo:
~/.profile
/etc/environment
/etc/profile.d
directorio
- ...
Encontrará documentos de Ubuntu al respecto aquí: https://help.ubuntu.com/community/EnvironmentVariables
Después de todo, para configurar la variable de entorno en ex. Ubuntu, puede usar el lineinfile
módulo de Ansible y agregar la línea deseada a cierto archivo. Consulte los documentos de su sistema operativo para saber dónde agregarlo para que sea permanente.