wget

When using wget with a proxy that requires authentication, special characters need to be URI encoded, e.g. # becomes %23. Using for example pa##word:

https_proxy='http://username:pa%23%23word@proxy:8080' wget https://google.com

On top of that when using gem the colon seperator between the username and pasword needs to be escaped, e.g. \::

http_proxy='http://username\:pa%23%23word@proxy:8080' gem fetch hiera-eyaml

Also note, gem will use the http_proxy environemt variable even if it is connecting to a https:// url.

But when using gem from a puppetlabs installation, e.g. /opt/puppetlabs/puppet/bin/gem, you must not escape the colon, but use HTTP_PROXY.

When installing gems into puppetserver 4, pass -p to gem install:

puppetserver gem install -p http://username\:pa%23%23word@proxy:8080 hiera-eyaml