Blog


What was I thinking ?

travis-ci with password only rsync

I finally got Travis working with my website.

The challenge I had was that one.com for some weird reason only allow rsync via passwords over ssh, not public/private keys.

This does not just work outside the box since rsync over ssh will under normal circumstances require a user to type in the password.

Luckily there is this little tool called sshpass that can help.

The following describes how to get all this to work together in Travis.

Setup travis.yml

In my .travis.yml I did the following:

language: ruby
bundler_args: "--without development --path .bundle"
rvm:
- 2.2.0
addons:
  ssh_known_hosts: ssh.xam.dk  (1)
branches:
  only:
  - master
before_script:
- sudo apt-get install -qq sshpass (2)
script: rake travis (3)
env:
  global:
    secure: fpWVLgbveBCXlsXX7ef06qi7GrizwAE5MFq5pKH9G5AMFAdFL4xQxNOmeemRZ5fnMAn8LQUrA8otxwjiiq2RangRC9E11fBChEKC5V+FewBzsHONqkSTzKd6oAbmLynUizpXDofhVxIfRhtP03lfEDufzly4WaVDyoLJicvy9aM= (4)
1 Add your host to ssh_known_hosts to avoid 'Host key verification failed' error
2 Install sshpass before starting the build
3 Run rake script that does the actual rsync
4 Created secure variable by running travis encrypt XAMSSH=secretpassword --add

Travis rake task

And then in the Rakefile I added my travis task that does the actual rsync:

desc 'Task to be used on travis-ci'
task :travis do
  run_awestruct("-P production -g --force")

  puts "## Deploying website via rsync"
  success = system("sshpass -p $XAMSSH rsync -rvc --delete  --exclude coppermine --stats --exclude update _site/ xam.dk@ssh.xam.dk:/www") (1)

  fail unless success
end
1 The important part is sshpass -p $XAMSSH which uses the encrypted value from travis.

Voila - now my website will get automatically built with awestruct and synchronized with rsync even though one.com don’t like to provide more secure private/public keys.

Comments


4 years zero blog streak

Here I am, almost 4 years later with a personal blog update.

Just to initially say that I finally got my website moved of a mix of wordpress and other fancy stuff over to Awestruct.

Now we’ll see if I actually get around to write those blogs I’ve been saving up for the last 4 years!

Comments