On 26.03.2018 11:31, Martin Simovic wrote:
I am observing following behaviour using ansible on set of Ubuntu-1604,
SLES-12 and CentOS-7 hosts.
Environment variables, normally avaiable for login shell (/bin/bash)
are
not avaiable via ansible "setup" or "shell" modules for Ubuntu-16.04.
Yet
the same variables (defined in /etc/profile) are available for both
these
modules for SLES and CentOS distributions.
Seems as if ansible run shell as login shell for Sles and Centos, and
non-login shell for Ubuntu. This inconsistency is killing me. Anyone
came
across this? Possible solution?
This is normal in Debian and its derivatives.
Ansible is using /bin/sh that is symlink to dash.
The dash shell has to mode like most other shell, interactive and
non-interactive and the /etc/profile is only read in interactive shell
mode.
But since Ansible is not logging in, it just run a command it uses
non-interactive that file is not read.
For more information check man dash search for Invocation.
You need to use /etc/environment but remember that this file doesn't
support variable expansion.
--
Kai Stian Olstad
--
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/048ff6ea8fa4d293ddbf4f962a8eee45%40olstad.com.
For more options, visit https://groups.google.com/d/optout.