I'm trying to automate deployment of application using fabric.
The application code is hosted on GitHub and rolling out a new version is very straightforward - just do 'git pull' and that's it. The application is hosted on 100 servers, so I would like to automate deployment. Fabfile.py:
def deploy():
code_path = '/home/myuser/myapp'
with cd(code_path):
run('git pull')
run('git submodule update --init --recursive')
The problem is, on every git command I get a promt: Enter passphrase for key '/home/myuser/.ssh/id_rsa
:
Is there a way to automatically input the passphrase? It's the same on every server and the same as sudo password
I've tried to fexpect library, but I'm wondering whether there is better (i.e. standard) way of doing it.
You can also use a ssh key agent and use the agent forwarding. Always put a password on keys. Github has good docs on how to utilize this here.
Fabric should now also have agent forwarding ability. I've run into troubles with it in some corner cases, but gotten around them with an explicit local('ssh -A...) as a work around until the issue is resolved.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With