Assuming you use the default init system:
Sets manager environment variables passed to all executed processes. Takes a space-separated list of variable assignments. See environ(7) for details about environment variables.
DefaultEnvironment="VAR1=word1 word2" VAR2=word3 "VAR3=word 5 6"
Sets three variables "VAR1", "VAR2", "VAR3".
"all executed processes" here meaning all processes executed by systemd. Generally, all processes are either started by systemd, or children of a process that was. But please be careful with this, otherwise you might have to recover your system using
init=/bin/sh etc. :-).
It is possible that some processes will clear their environment variables, or make assignments that supercede these. I think user login (PAM?) would be an important example here.
As you say, you can cover all PAM sessions using