This is how I use GIT to deploy script configurations to multiple servers.
In this instance I have fail2ban configuration that I want to be able to deploy to multiple servers easily & quickly
I assume you are root – otherwise prefix commands with sudo as appropriate
I also assume that you have remote root ssh access ( by private / public keys is best of course )
Step 1 Install GIT if you don’t have it , e.g. on Debian
apt-get install git
The key is to set up a GIT directory on the remote server and use the hook to deploy to the correct directory
cd /var mkdir repo mkdir f2ban.git && cd f2ban.git git init --bare
We make a bare repo – the convention is a bare repo directory ends in git
Now we move to the hooks directory
cd hooks
And we need to create a file called post-receive that will process the files on being pushed here
The file needs to contain ( use vim or similar )
git --work-tree=/etc/fail2ban --git-dir=/var/repo/f2ban.git checkout -f
Basically saying when files come here – put them into the fail2ban directory
And post-receive need to be executable i.e.
chmod +x post-receive
On the localmachine in your git directory you need to add the remote server
git remote add myservername ssh://root@myprodserver/var/repo/f2ban.git
And after normal git adding & committing you can push to your server e.g.
git push myservername master
You can repeat this with different servers or different /var/repo/xxx.gits as rerequired
by
Tags:
Leave a Reply