Storage systems operate across a continum of time, serving out data stored over time, managed and converted through a known set of tasks, not at a point in time, so the switch paragdim where ZTP is common doesn't really follow.
There is netboot functionality (requiring a specific image), but it is for restoring systems with failed and/or replaced boot devices. Even factory configuration is performed by serial port connected automation of scripted commands. If you have enough systems, that may be worthwhile investigating.
My original comments about ZTP paradigm for switches vs storage are overtaken by ansible, which uses the idea of idempotent states - so you tell ansible you want a netapp device configured a certain way, and it does what is needed to make that happen.
However, you need to be able to configure it, as you've noted.
So, where to go from there - new out of box nodes will present a cluster create/join on the CLI. This is also accessible via local subnet https API username admin and no password until the cluster is setup if dhcp is enabled on the subnet. So you should be able to use the cluster create API unauthenticated if you're on the same subnet.
Edit: As of 9.7, SSH to this LIF is apparently also supported, which would enable you to use "expect" scripts with ansible.
Hope this helps! Let me know - I haven't done it personally.