Fabric is a tool for "executing local or remote shell commands."  
Why would you re-implement a remote shell script line by line in a long Fabric script?  
That is, why not just write a brief Fabric script that runs a long remote shell script instead?
lobster1234 raises a good point that you don't want to have to manually stick a long, remote shell script on 10 servers. However, if you still want to avoid rewriting the long, remote shell script as a long Fabric script, you could write a Fabric script that copies that remote shell script to the designated server, executes that script, and then removes the script. This way you can revision control both the fabfile and shell script together but avoid rewriting the shell script into a Fabric script.
Why re-implement shell commands line by line in a Fabric script?