Ada banyak cara untuk melakukan ini dan dari pertanyaan Anda tidak jelas apa yang Anda butuhkan.
1. Jika Anda membutuhkan variabel lingkungan untuk didefinisikan PER TUGAS SAJA, Anda melakukan ini:
- 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"
Perhatikan bahwa MY_ENV_VARIABLE
HANYA tersedia untuk tugas pertama, environment
tidak mengaturnya secara permanen di sistem Anda.
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": ""}
Mudah-mudahan penggunaan environment
juga akan dimungkinkan pada level bermain , tidak hanya level tugas seperti di atas. Saat ini ada permintaan tarik terbuka untuk fitur ini di Ansible's GitHub: https://github.com/ansible/ansible/pull/8651
UPDATE: Sekarang digabungkan mulai 2 Jan 2015.
2. Jika Anda ingin variabel lingkungan permanen + lebar sistem / hanya untuk pengguna tertentu
Anda harus melihat bagaimana Anda melakukannya di distribusi / shell Linux Anda, ada banyak tempat untuk itu. Misalnya di Ubuntu Anda menentukannya di file seperti misalnya:
~/.profile
/etc/environment
/etc/profile.d
direktori
- ...
Anda akan menemukan dokumen Ubuntu tentangnya di sini: https://help.ubuntu.com/community/EnvironmentVariables
Setelah semua untuk mengatur variabel lingkungan di ex. Ubuntu Anda bisa menggunakan lineinfile
modul dari Ansible dan menambahkan baris yang diinginkan ke file tertentu. Konsultasikan dokumen OS Anda untuk mengetahui di mana harus menambahkannya agar permanen.