Bunu yapmanın birçok yolu vardır ve sorunuza göre neye ihtiyacınız olduğu net değildir.
1. Ortam değişkeninin YALNIZCA GÖREV BAŞINA tanımlanmasına ihtiyacınız varsa, şunu yaparsınız:
- 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"
MY_ENV_VARIABLE
SADECE ilk görev için mevcut olduğunu , environment
onu sisteminizde kalıcı olarak ayarlamadığını unutmayın.
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": ""}
Umarım yakında kullanmak environment
, sadece yukarıdaki görev seviyesinde değil , oyun seviyesinde de mümkün olacaktır . Şu anda Ansible'ın GitHub'ında bu özellik için açık bir çekme isteği var: https://github.com/ansible/ansible/pull/8651
GÜNCELLEME: 2 Ocak 2015 itibariyle birleştirilmiştir.
2. Kalıcı ortam değişkeni + sistem çapında / yalnızca belirli kullanıcılar için istiyorsanız
Linux dağıtımınızda / kabuğunuzda bunu nasıl yaptığınıza bakmalısınız, bunun için birden fazla yer var. Örneğin Ubuntu'da bunu örneğin dosyalarda tanımlarsınız:
~/.profile
/etc/environment
/etc/profile.d
dizin
- ...
Bununla ilgili Ubuntu belgelerini burada bulabilirsiniz: https://help.ubuntu.com/community/EnvironmentVariables
Sonuçta, ex. Ubuntu lineinfile
, Ansible'daki modülü kullanabilir ve istediğiniz satırı belirli bir dosyaya ekleyebilirsiniz. Kalıcı hale getirmek için nereye ekleyeceğinizi öğrenmek için işletim sistemi belgelerinize bakın.