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.

Reply via email to