Expat-IT Tech Bits

Home

Contact

Links

Search this site:

Categories:

/ (287)
  Admin/ (122)
    Apache/ (10)
      HTTPS-SSL/ (4)
      PHP/ (3)
      performance/ (2)
    Cherokee/ (1)
    LAN/ (4)
    LVM/ (6)
    Monitoring/ (2)
      munin/ (2)
    SSH/ (6)
    SSL/ (1)
    Samba/ (1)
    VPN-options/ (6)
      OpenVPN/ (1)
      SSH-Proxy/ (3)
      Tinc/ (1)
      sshuttle/ (1)
    backups/ (17)
      SpiderOak/ (1)
      backuppc/ (5)
      dirvish/ (1)
      misc/ (6)
      rdiff-backup/ (1)
      rsync/ (1)
      unison/ (2)
    commandLine/ (24)
      files/ (8)
      misc/ (10)
      network/ (6)
    crontab/ (1)
    databases/ (15)
      MSSQL/ (2)
      MySQL/ (8)
      Oracle/ (3)
      PostgreSQL/ (1)
    dynamicDNS/ (2)
    email/ (11)
      Dovecot/ (1)
      deliverability/ (1)
      misc/ (1)
      postfix/ (7)
      puppet/ (1)
    iptables/ (3)
    tripwire/ (1)
    virtualization/ (9)
      VMware/ (1)
      virtualBox/ (8)
  Coding/ (14)
    bash/ (1)
    gdb/ (1)
    git/ (3)
    php/ (5)
    python/ (4)
      Django/ (2)
  Education/ (1)
  Hosting/ (27)
    Amazon/ (18)
      EBS/ (3)
      EC2/ (10)
      S3/ (1)
      commandline/ (4)
    Godaddy/ (2)
    NearlyFreeSpeech/ (3)
    Rackspace/ (1)
    vpslink/ (3)
  Linux/ (30)
    Android/ (1)
    Awesome/ (3)
    CPUfreq/ (1)
    China/ (2)
    Debian/ (8)
      APT/ (3)
      WPA/ (1)
    audio/ (1)
    encryption/ (3)
    fonts/ (1)
    misc/ (6)
    remoteDesktop/ (1)
    router-bridge/ (3)
  SW/ (45)
    Micro$soft/ (1)
    browser/ (2)
      Chrome/ (1)
      Firefox/ (1)
    business/ (28)
      Drupal/ (9)
      KnowledgeTree/ (6)
      Redmine/ (2)
      SugarCRM/ (7)
      WebERP/ (2)
      WordPress/ (1)
      eGroupware/ (1)
    chat/ (1)
    email/ (1)
    fileSharing/ (2)
      btsync/ (1)
      mldonkey/ (1)
    graphics/ (2)
    research/ (2)
    website/ (6)
      blog/ (6)
        blosxom/ (3)
        rss2email/ (1)
        webgen/ (1)
  Security/ (15)
    IMchat/ (2)
    circumvention/ (2)
    cryptoCurrency/ (1)
    e-mail/ (4)
    greatFirewall/ (1)
    hacking/ (1)
    password/ (1)
    privacy/ (2)
    skype/ (1)
  Services/ (1)
    fileSharing/ (1)
  TechWriting/ (1)
  xHW/ (14)
    Lenovo/ (1)
    Motorola_A1200/ (2)
    Thinkpad_600e/ (1)
    Thinkpad_a21m/ (3)
    Thinkpad_i1300/ (1)
    Thinkpad_x24/ (1)
    USB_audio/ (1)
    scanner/ (1)
    wirelessCards/ (2)
  xLife/ (17)
    China/ (9)
      Beijing/ (5)
        OpenSource/ (3)
    Expatriation/ (1)
    Vietnam/ (7)

Archives:

  • 2016/07
  • 2016/05
  • 2016/02
  • 2016/01
  • 2015/12
  • 2015/11
  • 2015/06
  • 2015/01
  • 2014/12
  • 2014/11
  • 2014/10
  • 2014/09
  • 2014/07
  • 2014/04
  • 2014/02
  • 2014/01
  • 2013/12
  • 2013/10
  • 2013/08
  • 2013/07
  • 2013/06
  • 2013/05
  • 2013/04
  • 2013/02
  • 2013/01
  • 2012/12
  • 2012/10
  • 2012/09
  • 2012/08
  • 2012/07
  • 2012/06
  • 2012/05
  • 2012/04
  • 2012/03
  • 2012/01
  • 2011/12
  • 2011/11
  • 2011/10
  • 2011/09
  • 2011/08
  • 2011/07
  • 2011/06
  • 2011/05
  • 2011/04
  • 2011/02
  • 2010/12
  • 2010/11
  • 2010/10
  • 2010/09
  • 2010/08
  • 2010/07
  • 2010/06
  • 2010/05
  • 2010/04
  • 2010/03
  • 2010/02
  • 2010/01
  • 2009/12
  • 2009/11
  • 2009/10
  • 2009/09
  • 2009/08
  • 2009/07
  • 2009/06
  • 2009/05
  • 2009/04
  • 2009/03
  • 2009/02
  • 2009/01
  • 2008/12
  • 2008/11
  • 2008/10
  • 2008/09
  • Subscribe XML RSS Feed

    Creative Commons License
    This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
    PyBlosxom

    This site has no ads. To help with hosting, crypto donations are accepted:
    Bitcoin: 1JErV8ga9UY7wE8Bbf1KYsA5bkdh8n1Bxc
    Zcash: zcLYqtXYFEWHFtEfM6wg5eCV8frxWtZYkT8WyxvevzNC6SBgmqPS3tkg6nBarmzRzWYAurgs4ThkpkD5QgiSwxqoB7xrCxs

    Thu, 11 Jul 2013


    /SW/fileSharing/btsync: BitTorrent Sync

    Your own personal "dropbox". The puppet configuration below is for my personal convenience in deploying to multiple machines. BitTorrent Sync[1] is really easy to install and use without Puppet. On each machine you want to sync, just put the btsync in some convenient subdirectory, start it from within that directory, point your browser to http://localhost:8888/, and there tell it which directory to sync and what the shared "secret" is for that directory, and it should then just work for machines on the same network. Without further ado, here is my Puppet module:

    class btsync ($syncdir) {
    
        # BitTorrent Sync: setup of multiple nodes
        #
        # Note that because btsync is not yet packaged for Debian/Ubuntu, I am using
        # the sync directory to distribute new versions of btsync to the nodes. However,
        # this means the initial installation must be "primed" for a new installation:
        # place the btsync executable required on the new node in the sync directory, named
        # as "btsync_", ie. btsync_amd64 / btsync_i386 / btsync_x86_64 for most Linux people.
        #
        # Note that this configures all nodes with the same basic settings, but 
        # WITHOUT shares. You must login to the webUI at http://VPN-IP:8888/
        # and manually specify shares for each machine with this configuration.
        # This line
        #       "listen" : "<%= ipaddress_zentuxnet %>:8888"
        # in btsync.conf.erb is where I am setting the webUI listen restriction.
        # Replace with "0.0.0.0:8888" to allow connections from anywhere.
        #
        # btsync --generate-secret
    
        $btuser = 'btuser'
        $installdir = '/usr/local/btsync'
    
        user { $btuser:
            ensure => present,
        }
    
        file { "$installdir":
            ensure => directory,
            mode   => 740,
            owner  => $btuser,
            group  => $btuser,
            recurse => true,
            before => Exec['copybt'],
        }
        file { "$syncdir":
            ensure => directory,
            mode   => 640,
            owner  => $btuser,
            group  => $btuser,
            recurse => true,
        }
    
        # verify the latest version of btsync is installed (contained in the sync dir)
        exec { copybt:
            command => "cp $syncdir/btsync_$architecture $installdir/btsync",
            path   => "/usr/bin:/usr/sbin:/bin",
            unless => "diff $syncdir/btsync_$architecture $installdir/btsync >/dev/null",
            require => File["$syncdir"],
            notify => File["$installdir/btsync"],
        }
        file { "$installdir/btsync":
            ensure => file,
            mode   => 740,
            owner  => $btuser,
            group  => $btuser,
        }
        
        # configuration file for basic settings. Note that template is inserting
        # machine-specific values for:
        # * hostname
        # * webUI listen IP address (set to my VPN IP)
        file { "$installdir/sync.conf":
            ensure => file,
            mode   => 640,
            owner  => $btuser,
            group  => $btuser,
            require => File["$syncdir"],
            notify  => Service["supervisor"],
            content => template("btsync/sync.conf.erb"),
        }
        
        # supervisord because no init.d script. And keeps the thing running if it falls down.
        # Restart fails without the custom "restart" and the sleep period.
        package { 'supervisor': }
        service { 'supervisor':
            ensure     => running,
            restart    => "/etc/init.d/supervisor stop && sleep 3 && /etc/init.d/supervisor start",
            subscribe  => File['/etc/supervisor/conf.d/btsync.conf'],
            require => Package["supervisor"],
        }
        file { "/etc/supervisor/conf.d/btsync.conf":
            ensure => file,
            mode   => 640,
            owner  => root ,
            group  => root,
            require => Package["supervisor"],
            content => template("btsync/btsync.conf.erb")
        }
        
    }
    

    Two file templates are referenced, and can be downloaded from here:

    [1] http://labs.bittorrent.com/experiments/sync.html

    posted at: 03:18 | path: /SW/fileSharing/btsync | permanent link to this entry