Hello, Ansible newbie here. I seem to be having a hard time understanding
how to set target machine environmental variables, even after trying the
several example solutions that I've found around the web.
Here are a few techniques that I've tried:
*As a separate play
- name: "try this env"
shell: export APP_HTTP_PORT=8081
*As part of the application kick-up command:
- name: "Start example Node.js app."
command: sudo forever -l ~/log.log -e ~/err.log -o /out.log
/var/www/appfolder/index.js
environment:
APP_HTTP_PORT: "8001"
...
*As part of a host definition (variable)
- hosts: ec2
name: configuration play
user: ec2-user
become: yes
gather_facts: true
environment: "{{ app_environment }}"
*As part of a host definition (direct)
- hosts: ec2
name: configuration play
user: ec2-user
become: yes
gather_facts: true
environment:
APP_HTTP_PORT: "8001"
...
In each case, my application evaluates for the presence of specific env
variables, and based on the logs I have, the variables are not available to
the application. When using debug mode (-vvvv) I do indeed see the env
variables in my console, and I see the variable being output with an
expected value when I issue an "echo" command from the playbook - but not
when I ssh into the server and run the identical commands. The app's logs
indicate missing variables as well. I hope someone here would be able to
point me in the right direction - thanks!!
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/a7f09e7e-03cb-4b53-93fe-75b47c1d7f91%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.