How Can We Help?
Configure Workstation for HTTP or SFTP Services
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:
- 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”.
- 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>.
- 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