qdigital's picture

Per Liraz's recent announcement about TKLBAM 1.4 we thought we would try out the backup system with CentOS. Unfortunately being new to the Linux world, we're not quite sure how to do this.

We've downloaded what we think is the TKLBAM source code and unzipped it to a folder. In this folder we have the supplied Makefile, but no configure file. Generally when we install things from source, it requires a configure file to prepare the Makefile with the desired options (the announcement says to add the --skip-packages to disable APT integration).

So we're not sure if don't have the correct source code or if we're just missing something else. We downloaded the TKLBAM package from https://github.com/turnkeylinux/tklbam


Can anyone give some pointers here? 

Thank you!



Liraz Siri's picture

TKLBAM doesn't have a configure file because it doesn't use autoconf. Python programs generally don't need to.

Anyhow you'll also need to install dependencies.

Something like the following instructions might work:

yum install python-docutils git python-devel gcc gcc-c++

# install librsync (needed by duplicity)
git clone https://github.com/kaseya/librsync
cd librsync
./configure && make install
cd ../

for r in tklbam tklbam-duplicity tklbam-python-boto tklbam-squid turnkey-pylib pycurl-wrapper; do
    git clone https://github.com/turnkeylinux/$r

cd turnkey-pylib

cd ../pycurl-wrapper

cd ../tklbam-python-boto
python setup.py install

cd ../tklbam-squid
./configure && make install

cd ../tklbam-duplicity
make install

cd ../tklbam
make install

I haven't tested this so your results may vary.

qdigital's picture

Thanks for your reply Liraz. Most of this worked wonderfully. 

The directory tklbam-duplicity seems to be missing the install file so 'make install' is failing on that part. Are we missing something here?

On a side note, we also got the webmin module installed, but it appears to only work for the hub.turnkeylinux.org system. Is there a way to make this work for local network backups instead? 

Ryan's picture

Thank you Liraz and GD.  


re: make file not existing on the duplicity leg of it; I find that if i execute:

cd ../tklbam-duplicity
python setup.py install

That works, and it seems to do what it needs to to.  However, when I run tklbam-init (myhubkey), I get:


Traceback (most recent call last):
  File "/usr/local/bin/tklbam-init", line 76, in <module>
    import hub
  File "/usr/local/lib/tklbam/hub.py", line 88, in <module>
    from pycurl_wrapper import API as _API
  File "/usr/lib/python2.6/site-packages/pycurl_wrapper.py", line 8, in <module>
    import simplejson as json
ImportError: No module named simplejson




I am running CentOS 6.  It would be really great if I could use TKLBAM (reliably) with CentOS.  Any suggestions or help is greatly appreciated, thanks in advance!

Ryan's picture

Looks like I was missing a cpl modules needed in TKL..? I did the following:


yum install python-simplejson

yum install pycrypto

tklbam-init MYAPIKEY....



To my surprise, I get:


[root@svr-cent6-audit1 ~]# tklbam-init SOMEKEY...
Generated backup encryption key:

    For extra security run "tklbam-passphrase" to cryptographically protect it
    with a passphrase, which will be needed later to restore. If you use lose
    the passphrase it will be impossible to restore your backup and you may
    suffer data loss. To safeguard against this you may want to create an
    escrow key with "tklbam-escrow".

Linked TKLBAM to your Hub account.
Downloaded generic profile


I can also now run TKLBAM and I get the expected output.  I'll try running a backup/restore, but wanted to share what I had incase it helps you or others.  




tklbam-restore does not work, but all other tklbam-commands seem to.  Seems like something is missing when tklbam-squid is setup. 

First issue I found was that 'squid.py' is set (using cmd 'PATH_DEPS = os.environ.get('TKLBAM_DEPS', '/usr/lib/tklbam/deps')' with a path of '/usr/lib/tklbam/deps' -- but that does not exist.  I rsync'd that dir over from a Debian/TKL box.  

Second issue, 'tklbam-squid' fails to start, also because it can't be found it seems.  So, I copied it from /tmp/tklbam-squid/ to /usr/lib/tklbam/deps/usr/sbin/.

After those two things, it seems like the files it's looking for is in place, but I still get an error when trying to run a restore:


root@svr-cent6-audit1 tklbam-squid]# tklbam-restore 118 --simulate
Executing Duplicity to download s3://s3-us-west-1.amazonaws.com/tklbam-...... to /tmp/tklbam-....... 

// started squid: caching downloaded backup archives to /var/cache/tklbam/restore

Traceback (most recent call last):
  File "/usr/local/bin/tklbam-restore", line 553, in <module>
  File "/usr/local/bin/tklbam-restore", line 491, in main
    backup_extract_path = get_backup_extract()
  File "/usr/local/bin/tklbam-restore", line 463, in get_backup_extract
    downloader(raw_download_path, target, log=_print if not silent else None, debug=opt_debug, force=opt_force)
  File "/usr/local/lib/tklbam/duplicity.py", line 152, in __call__
  File "/usr/local/lib/tklbam/squid.py", line 59, in start
    raise Error("%s failed to start\n" % SQUID_BIN + self.command.output)
squid.Error: /usr/lib/tklbam/deps/usr/sbin/tklbam-squid failed to start
error: no such user 'proxy'

[root@svr-cent6-audit1 tklbam-squid]# 


At this point, I don't know enough or understand it well enough to figure it out.  Seems like everything ALMOST works, but, not quite.  I also notice that tklbam on non-TKL guests (i.e. CentOS6) seem to be ignorant of packages, etc.,etc.  When I did the initial tklbam-backup, it backed up pretty much the entire thing.  It's nice that it backed it up, but what is the value of TKLBAM over straight Duplicity if it's unaware of packages, system-wise settings etc?  The b/u's are 100's of MB's, where as with TKLBAM on TKL guests, they're very significatly smaller since it's 'self aware.'


Add new comment