Difference between revisions of "LRM Proxy Configuration"
(→Proxy Verification) |
(→SFTP) |
||
Line 90: | Line 90: | ||
You will first need to install the 'nc' command: |
You will first need to install the 'nc' command: |
||
+ | $ export http_proxy="internet.proxy.yourcompany.com:3128" |
||
+ | $ export https_proxy="$http_proxy" |
||
$ sudo -E bash -c "yum install nc" |
$ sudo -E bash -c "yum install nc" |
||
Revision as of 20:45, 22 August 2017
Contents
LRM Proxy Configuration
To use LRM through a proxy, you will need to set java proxy settings before executing the LRM jar file. To set java proxy settings, configure the shell to have a '_JAVA_OPTIONS' variable with the proxy settings listed. Like so:
export _JAVA_OPTIONS="-Dhttp.proxyHost=some.url.here -Dhttp.proxyPort=3128 -Dhttps.proxyHost=some.url.here -Dhttps.proxyPort=3128 -Dftp.proxyHost=some.url.here -Dftp.proxyPort=3128"
Ugi0sZpFVHD0
- The url should not include the preceeding 'http://' or 'www'
- Good
- internet.proxy.yourcompany.com
- Bad
- http://internet.proxy.yourcompany.com
- www.internet.proxy.yourcompany.com
- https://www.internet.proxy.yourcompany.com
- Good
- The port number will be dependent on your proxy. 3128 is merely used as an example above.
Adding Java Options
_JAVA_OPTIONS may be added to the following locations:
Jenkins Config
This will affect LRM when run through Jenkins.
- In Jenkins, select 'Manage Jenkins' then 'Configure System'.
- Under 'Global properties' ensure that 'Environment variables' is checked.
- At the bottom of the Environment variables section, there will be a button 'Add' to add new environment variables.
- Name:
_JAVA_OPTIONS
- Value:
-Dhttp.proxyHost=some.url.here -Dhttp.proxyPort=3128 -Dhttps.proxyHost=some.url.here -Dhttps.proxyPort=3128 -Dftp.proxyHost=some.url.here -Dftp.proxyPort=3128
- Replace 3128 with the port number appropriate for your proxy.
User Config
This will affect LRM commands run at the command prompt for a specific user. It will also affect other java programs run at the command prompt by this user. May not affect commands run within Jenkins builds.
- Edit $HOME/.bashrc
$ vim $HOME/.bashrc
- Add the following line somewhere in the file
export _JAVA_OPTIONS="-Dhttp.proxyHost=some.url.here -Dhttp.proxyPort=3128 -Dhttps.proxyHost=some.url.here -Dhttps.proxyPort=3128 -Dftp.proxyHost=some.url.here -Dftp.proxyPort=3128"
- Replace 3128 with the port number appropriate for your proxy.
System Config
This will affect all users on the system. All java commands run at the command prompt will use the configured proxy settings. May not affect commands run within Jenkins builds.
- Create a file /etc/profile.d/custom.sh
sudo vim /etc/profile.d/custom.sh
- Add the following line to the file and save it:
export _JAVA_OPTIONS="-Dhttp.proxyHost=some.url.here -Dhttp.proxyPort=3128 -Dhttps.proxyHost=some.url.here -Dhttps.proxyPort=3128 -Dftp.proxyHost=some.url.here -Dftp.proxyPort=3128"
- Replace 3128 with the port number appropriate for your proxy.
Proxy Verification
To avoid extensive troubleshooting, it is important to confirm that proxy settings are correct. Perform the following tests to verify:
HTTP/HTTPS
HTTP/HTTPS connectivity can be confirmed using curl. Curl respects the environment variables 'http_proxy' and 'https_proxy'.
To set these variables for a single session, type the following into the terminal:
$ export http_proxy="internet.proxy.yourcompany.com:3128" $ export https_proxy="internet.proxy.yourcompany.com:3128"
To keep these variables between sessions, add the above lines to your bash configuration file, $HOME/.bashrc.
To test a connection:
$ curl globalyzer.com
Expected output:
<html> <head> <title>globalyzer.com</title> <meta http-equiv="Refresh" content="1;URL=/gzserver/"> <meta http-equiv="content-language" content="en-us" /> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta name="description" content="Globalyzer server"> </head> <body> </body> </html>
Failure if:
Command hangs for > 10 seconds. In this case, you can cancel it with Ctrl-C.
Note: By default, environment variables like 'http_proxy' are not kept when using sudo. So 'sudo curl globalyzer.com' will fail even if http_proxy is set. To keep environment variables with sudo, use the following format, including the '"'s:
$ sudo -E bash -c "Type your command here"
SFTP
You can verify SFTP connectivity using the sftp
command along with -o ProxyCommand=
as follows.
You will first need to install the 'nc' command:
$ export http_proxy="internet.proxy.yourcompany.com:3128" $ export https_proxy="$http_proxy" $ sudo -E bash -c "yum install nc"
You can then use it to perform the proxy work with the sftp command:
$ sftp -o "ProxyCommand=/usr/bin/nc --proxy internet.proxy.company.com:3128 %h %p" username@your.ftp.server
You will need to change:
- internet.proxy.company.com to your proxy
- '3128' to '<your proxy port>' (keep the ':')
- username to a username authorized to access the ftp server
- your.ftp.server to the ftp server url.
Expected output:
The should return quickly with some output. Ideally this should be either a password prompt or a console that allows you to navigate the ftp server. If the login fails you may get a 403 message - this is not a proxy issue.
Failure if:
Command hangs for > 10 seconds. In this case, you can cancel it with Ctrl-C.