I work in a company where we are expanding rapidly, and I find myself imaging and upgrading the firmware on a very large number of devices for a significant portion of my time. I was wondering, is there any way to automate this process? An ex2200 out of the box config doesn't come with any IP, even a private one set by which I can communicate with it over the network. I was thinking of using chef, or having a usb auto-execute a shell script, but there are issues with both methods, and I was wondering if anyone had any experience doing something of this sort. All ideas are greatly appreciated.
There are a myriad of ways to do this, with Chef and USB keys being way down on the list. Chef requires a LOT of work (including the elusive IP you mentioned) before it is usable. The USB route is not feasible (for automating the bring up) because all you can do is load the Junos image from it. Unlike the SRX, which can boot, load config and even run scripts from the USB, you can't do that with the EX.
If you have terminal/console access, you can use PyEZ or Ansible to push a base config to get it up and running on the network and then PyEZ, Ansible, Space, <insert config pusher of choice here> to configure and upgrade the device once it is online.
If you don't have a terminal server, you can always use the ZTP process with DHCP, the appropriate options and scripts to at least get it online and then use Space, JEAP, a PyEZ script or even Ansible to upgrade the OS.
And these are only two suggestions. There are other ways as well. A lot of it depends on the process you have. Do you drop ship to the site, or do you have access to these before they go to site? Do you have control over the DHCP server or have the ability to have someone configure the DHCP server for you? If you could lay out a typical workflow process of how you get the switch, who touches it when, what types of tools do you have to access it (term server, scripting knowledge, etc.) that would help too.
Edward Arcuri Architect - Automation & Programmability, JDI