How Can We Help?

Categories

Configure Workstation for HTTP or SFTP Services

You are here:
< All Topics

Performing firmware and OS updates for a Clustered ONTAP environment is different from performing the same tasks in a 7-mode climate. In 7-Mode, the easiest way of uploading the necessary files to the controllers was a simple file copy via CIFS or NFS. In ONTAP, you don’t have this option for the cluster. Additionally, if you have a 4-node or larger cluster, you also have the cluster interconnect switches to contend with.

The options for uploading the necessary files to the cluster are via HTTP or SCP. Likewise, the options for uploading the required files to the cluster interconnect switches are via SCP or SFTP.

NOTE: ONTAP 9.4+ via System Manager allows the browsing of the local workstation to upload the required files for updating.

If you do not already have a dedicated utility system set up for HTTP/TFTP services, the following are quick methods for setting up HTTP or TFTP on your local workstation.

Windows

Microsoft users have a few options for setting up web services. However, there are two easy, quick, simple, and more importantly, free utilities that are recommended:

  1. Mongoose Simple Web Server:  is a utility that all you have to do is place it and the files that you want to distribute in the same directory and double-click. It will immediately open a browser page at http://<your IP address>:8080 (the default port), displaying all the files for retrieval. Once you have finished uploading the necessary files to the cluster(s), exit the program by clicking the icon in the system tray and selecting “Exit”.
  2. Solarwinds TFTP Server – is another utility that many network administrators have been using for years to transfer files to and from network devices.

OS X

OS X has built-in utilities for both web services and TFTP services. Here are the procedures for setting up both:

Python Simple HTTP Server

Launch the Terminal application in OS X and, from the Bash shell, change directory to your home directory, if not already there.

Last login: Sat Jan 28 16:13:32 on ttys001
:username$ cd ~
:username$ cd pwd
/Users/username

Create a directory called Sites.

:username$ mkdir Sites
:username$ ls -l
total 8
drwx——@ 3 username staff 102 Dec 9 19:51 Applications
drwx——@ 5 username staff 170 Jan 27 03:47 Desktop
drwxr-xr-x@ 34 username staff 1156 Jan 23 09:01 Documents
drwxr-xr-x+ 64 username staff 2176 Jan 28 15:25 Downloads
drwx——@ 27 username staff 918 Jan 27 03:47 Dropbox
drwx——@ 66 username staff 2244 Jan 18 07:30 Library
drwxr-xr-x+ 6 username staff 204 Jan 11 16:34 Movies
drwxr-xr-x+ 21 username staff 714 Jan 11 16:34 Music
drwxr-xr-x+ 43 username staff 1462 Jan 14 11:10 Pictures
drwxr-xr-x+ 5 username staff 170 Dec 9 19:15 Public
drwxrwxrwx@ 25 username staff 850 Jan 14 07:50 Sites

You can now download the files you need and save to the Sites folder.

Back in the Bash shell, change directory to Sites and list the directory contents.

:username$ cd Sites/
:Sites username$ ls -l
total 11620120
-rwxrwxrwx@ 1 username staff 219076426 Dec 28 09:21 814P10_e_image.tgz
-rwxrwxrwx@ 1 username staff 226076878 Dec 28 09:23 814P10_e_image.zip
-rwxrwxrwx@ 1 username staff 207801301 Dec 28 09:23 814P10_e_netboot.tgz
-rwxrwxrwx@ 1 username staff 249159750 Dec 28 09:21 814P10_q_image.tgz
-rwxrwxrwx@ 1 username staff 270307184 Dec 28 09:21 814P10_q_image.zip
-rwxrwxrwx@ 1 username staff 223503754 Dec 28 09:21 814P10_q_netboot.tgz
-rwxrwxrwx@ 1 username staff 500410817 Dec 28 09:21 824P5_q_image.tgz
-rwxrwxrwx@ 1 username staff 475173704 Dec 28 09:21 824P5_q_netboot.tgz
-rwxrwxrwx@ 1 username staff 172596872 Dec 8 17:18 832P8_q_image.tgz
-rwxrwxrwx@ 1 username staff 17718728 Dec 8 17:10 832P8_q_netboot.tgz
-rw-r–r–@ 1 username staff 575952059 Jan 12 19:54 832P9_q_image.tgz
-rw-r–r–@ 1 username staff 554286788 Jan 12 20:46 832P9_q_netboot.tgz
-rwxrwxrwx@ 1 username staff 623443411 Dec 28 09:18 90P2_q_image.tgz
-rwxrwxrwx@ 1 username staff 606997652 Dec 28 09:18 90P2_q_netboot.tgz
-rw-r–r–@ 1 username staff 814632434 Jan 12 19:45 91_q_image.tgz
-rwxrwxrwx@ 1 username staff 2266 Oct 8 06:03 CN1610_CS_RCF_v1.2.txt
-rwxrwxrwx@ 1 username staff 12854508 Oct 8 06:03 NetApp_CN1610_1.2.0.7.stk
-rwxrwxrwx@ 1 username staff 162149289 Dec 28 09:33 all.zip
-rwxrwxrwx@ 1 username staff 37283453 Dec 28 09:33 all_shelf_fw.zip
-rwxrwxrwx 1 username staff 414 May 30 2015 id_rsa.pub
-rwxrwxrwx 1 username staff 2642 Jul 8 2011 index.html
-rwxrwxrwx@ 1 username staff 32099 Dec 28 09:33 qual_devices.zip

NOTE: You may need to change the permissions on the files within.

:Sites username$ chmod 777 *
:Sites username$ ls -l
total 11620120
-rwxrwxrwx@ 1 username staff 219076426 Dec 28 09:21 814P10_e_image.tgz
-rwxrwxrwx@ 1 username staff 226076878 Dec 28 09:23 814P10_e_image.zip
-rwxrwxrwx@ 1 username staff 207801301 Dec 28 09:23 814P10_e_netboot.tgz
-rwxrwxrwx@ 1 username staff 249159750 Dec 28 09:21 814P10_q_image.tgz
-rwxrwxrwx@ 1 username staff 270307184 Dec 28 09:21 814P10_q_image.zip
-rwxrwxrwx@ 1 username staff 223503754 Dec 28 09:21 814P10_q_netboot.tgz
-rwxrwxrwx@ 1 username staff 500410817 Dec 28 09:21 824P5_q_image.tgz
-rwxrwxrwx@ 1 username staff 475173704 Dec 28 09:21 824P5_q_netboot.tgz
-rwxrwxrwx@ 1 username staff 172596872 Dec 8 17:18 832P8_q_image.tgz
-rwxrwxrwx@ 1 username staff 17718728 Dec 8 17:10 832P8_q_netboot.tgz
-rwxrwxrwx@ 1 username staff 575952059 Jan 12 19:54 832P9_q_image.tgz
-rwxrwxrwx@ 1 username staff 554286788 Jan 12 20:46 832P9_q_netboot.tgz
-rwxrwxrwx@ 1 username staff 623443411 Dec 28 09:18 90P2_q_image.tgz
-rwxrwxrwx@ 1 username staff 606997652 Dec 28 09:18 90P2_q_netboot.tgz
-rwxrwxrwx@ 1 username staff 814632434 Jan 12 19:45 91_q_image.tgz
-rwxrwxrwx@ 1 username staff 2266 Oct 8 06:03 CN1610_CS_RCF_v1.2.txt
-rwxrwxrwx@ 1 username staff 12854508 Oct 8 06:03 NetApp_CN1610_1.2.0.7.stk
-rwxrwxrwx@ 1 username staff 162149289 Dec 28 09:33 all.zip
-rwxrwxrwx@ 1 username staff 37283453 Dec 28 09:33 all_shelf_fw.zip
-rwxrwxrwx 1 username staff 414 May 30 2015 id_rsa.pub
-rwxrwxrwx 1 username staff 2642 Jul 8 2011 index.html
-rwxrwxrwx@ 1 username staff 32099 Dec 28 09:33 qual_devices.zip

From within that directory, launch the Python HTTP server.

:Sites username$ python -m SimpleHTTPServer 8080

The files that you have in your Sites directory are now available to be uploaded to the cDOT cluster(s) via http://<your IP address>:8080/<filename>.

  1. Once you have completed uploading the files to the cluster(s), from the Bash shell, hit Control-C and this will stop the HTTP server.

TFTP Server

OS X has a built-in TFTP server that can be managed either via a GUI, TFTP Server v3.4.1, or CLI. However, depending on the version of OS X you are running, the GUI front end may not work. As such, here is the process of launching it from the Terminal app and linking it to the same Sites directory that is mentioned above for the simple HTTP server.

The full procedure for setting up the TFTP server can be found here at Run a TFTP Server for Network Device Setups…on Mac OS X, however the following is an abridged version:

Launch the Terminal application and from the Bash shell, start the TFTP daemon.

:~ username$ sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist

This launches the TFTP daemon with the default tftpboot path of /private/tftpboot.

You can confirm it is running via the netstat command.

:~ username$ netstat -na |grep \*.69
udp4 0 0 *.69 *.*
udp6 0 0 *.69 *.*

:~ username$

When you have finished transferring all of the files needed, unload the TFTP daemon and verify that it is not running.

:~ username$ sudo launchctl unload -F /System/Library/LaunchDaemons/tftp.plist
:~ username$ netstat -na |grep \*.69
:~ username

The default tftpboot path (/private/tftpboot), in earlier versions of OS X, allowed changes. However, enhanced security in OS X El Capitan, and later, makes changing the tftpboot path more difficult. By doing the following, you can create a symlink to a directory where you have full control over the files (i.e. Sites).

:~ username$ cd /private/
:private username$ sudo rm -rf tftpboot
:private username$ sudo ln -s /Users/username/Sites tftpboot
:private username$ sudo launchctl unload -F /System/Library/LaunchDaemons/tftp.plist # execute only if tftpd is currently running
:private username$ sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
Table of Contents