I am extremely happy with the services from cloudflare, and with my minions project I wanted an easy way to know where they all were. So I did my research and finally narrowed down a way to use ddclient to update cloudflare.
Installing DDClient to function with CloudFlare on Ubuntu 14.04 LTS
1. Create a domain entry on CloudFlare.com for your fqdn… mycomputer.example.com or whatever you want.domain.com
2. install perl and required modules…
apt-get install perl libjson-any-perl libio-socket-ssl-perl
3. download the latest ddclient files from the official project: http://sourceforge.net/projects/ddclient/
at the time of this writing…
wget http://downloads.sourceforge.net/project/ddclient/ddclient/ddclient-3.8.2/ddclient-3.8.2.tar.gz
4. Untar ddclient files…
tar -xzf ddclient-3.8.2.tar.gz
cd ddclient-3.8.2
5. Download patch file from http://blog.peter-r.co.uk/cloudflare-ddclient-patch.html
at time of this writing…
wget http://blog.peter-r.co.uk/uploads/ddclient-3.8.0-cloudflare-22-6-2014.patch
6. perform patch…
patch < ddclient-3.8.0-cloudflare-22-6-2014.patch
7. Manually install…
mkdir /etc/ddclient
mkdir /var/cache/ddclient
cp ddclient /usr/sbin/
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf
cp sample-etc_rc.d_init.d_ddclient.ubuntu /etc/init.d/ddclient
8. Edit configuration and make it look like this: (make special note of where I put commas)
vi /etc/ddclient/ddclient.conf
daemon=300
syslog=yes
mail=root
mail-failure=root
pid=/var/run/ddclient.pid
ssl=yes
ssl=yes
protocol=cloudflare,
use=web
server=www.cloudflare.com,
zone=example.com,
login=your@email.com,
password=your-api-key-here
mycomputer.example.com,
9. start the service…
service ddclient start
then to see what happened… logs are pushed into the syslog file… so tail that.
tail /var/log/syslog
10. To ensure ddclient runs at startup… do the following:
sudo update-rc.d -f ddclient remove sudo update-rc.d ddclient defaults
It took a bit of research and troubleshooting to get this to work consistently… but hope this helps someone. Let me know if you have any questions.
This worked perfectly. Is it possible to make this work for multiple zones?
You must be missing it, the zone is specified in the conf file.