Quando o bash é iniciado como um shell não interativo, ele não lê nenhum arquivo de inicialização. Em vez disso, ele procura a variável de ambiente $BASH_ENV e, se isso apontar para um arquivo, lê o que quer que ele indique. Isso é explicado na seção INVOCATION de man bash :
When bash is started non-interactively, to run a shell script, for example, it looks for the variable BASH_ENV in the environment, expands its value if it appears there, and uses the expanded value as the name of a file to read and execute. Bash behaves as if the following com‐ mand were executed:
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fibut the value of the PATH variable is not used to search for the file‐
name.
Portanto, se você definir BASH_ENV para apontar para um arquivo que contenha seu comando, ele deverá funcionar:
-
Edite
/etc/environmentpara definirBASH_ENVpara todos os usuários. Abra o arquivo no seu editor favorito e adicione esta linha:export BASH_ENV="/path/to/your/file" -
Crie
/path/to/your/filecom o seguinte conteúdo:printf '%s logged in at: %s\n' "$USER" "$(date +'%T')" >> /home/alphauser/ssh-entries.log
Agora tente fazer login novamente via ansible.
Importante : não tenho experiência com ansible, por isso não sei ao certo como você faz login usando-o. Isso pressupõe que você primeiro inicie um shell de logon normal e, em seguida, execute o comando ansible. Se não, provavelmente irá falhar. Se isso não funcionar, edite sua pergunta e forneça mais informações sobre como você faz login através do ansible.