Per-Ola Mård's picture

Hello TKL people,

I have a modified TKL Core appliance so that it is now accepting the afp protocol and in addition to this is recognized by my OSX client as a Time Capsule target device. This is really cool as it allows me to have a virtual Time Capsule that in turn can be disaster protected to the TurnKey HUB using tklbam. Of course this Time Capsule is much better than the physical one as it offers a much higher level of resilience due to the Scale infrastructure where it is running, in my case.

What do I need to do to publish this as a proper Time Machine Appliance here at TurnKey Linux? I have no clue as to how to go from here to where anyone can download an "official" TKL Appliance with its own classic TimeMachine logo gif. etc.

I am happy to share the steps I took and the changes I did. This was not my invention: I got the procedure from one of the Ubuntu web pages.

I just like to see this added to the TKL Appliance family as it is very useful for all the MAC users out there. Time Machine as a client tool is just amazinlgy simple to use, and it is a very simple way to protect to entire OSX machine and the user files should either be lost in space.

Please advice.

Cheers,

   ///peo

Forum: 
Liraz Siri's picture

Great Scott, can guess the first thing that popped into my head when I read the subject line of your post?

I recommend you start out by reproducing the installation you created step by step while carefully documenting what you did. Then publish that on the forum or better yet create a new page on the development wiki:

https://github.com/turnkeylinux/tracker/wiki

Then after that I recommend you play around with TKLDev a bit:

http://www.turnkeylinux.org/tkldev

Don't be intimidated. The documentation has been much improved and you don't need to know any more to create a new app using TKLDev than you needed to install the time machine in the first place:

https://github.com/turnkeylinux-apps/tkldev/tree/master/docs

There's a nice hello world example to get you started and plenty of real-world examples. After all, the build code for all TurnKey apps is available as a reference.

Once you get something that sort of works, publish the source code on GitHub and let us know so we can take a look.

Per-Ola Mård's picture

Hi Liraz,

ahh. this will be a pain for you, trying to help me with this. I am such a low life when it comes to these things. But I will try and I will do my very best. So. I have registered, and I think I have managed to create a whiteboard. I will now attempt to "download a fork" do you even realize how crazy that sounds? :-)

Honestly I think this is a quite simple change to the Core:

- Add a few packages.

- Open up a port.

- Add a few lines in two different files.

So the changes are miniscule but encountering the git for the first time, that is another thing.

What am I doing!?!

Watch this space.

Cheers,

   ///peo

Per-Ola Mård's picture

Hi Liraz, so now I have a tkldev machine up and running in my Scale Cluster. Is this a good time to look for the fork? :-)

Stay tuned.

///peo

Per-Ola Mård's picture

I have created the Whiteboard for vTC here:

https://github.com/turnkeylinux/tracker/wiki/vTimeCapsule

I have read through the links you supplied, I think I understand the process (barely).

I have built the core from source (I think) indicated by population under:

/turnkey/fab/products/core/build

namely product.iso, right? 

But I am not able to create the sandbox where I may add the packages listed on my whiteboard. I also do not get how the soon to be modified "core" gets its new name "vTimeCapsule"?

Stuck...

Please advice.

Cheers,

   ///peo

Liraz Siri's picture

The whiteboard wiki page is a very good start. This doesn't look like a difficult integration at all. You're probably closer to creating your first TurnKey app then you realize.

The naming for an app is arbitrary. By convention the app takes its name from the directory its in:

git clone https://github.com/turnkeylinux-apps/core
mv core mynewapp

Now core is named mynewapp. Though it is still equivalent to core at this point since we haven't made any changes, right?

The sandbox (e.g., root.tmp) is a place to test your changes. Once you build the app, the build process creates it for you. Note that the documentation refers to it as root.sandbox where is existing versions of TKLDev it is still called root.tmp.

I think the key stumbling block is that you are expecting to understand how things work just by reading the docs. There are going to be unavoidable gaps. You shouldn't be afraid to experiment and you shouldn't be too focused on just getting there because then it's too tempting to try to take shortcuts that lead nowhere. Enjoy the view, and take a look at other examples. Think of it as a fun crossword puzzle, not an SAT test.

Per-Ola Mård's picture

Hello Liraz,

Reading the https://github.com/turnkeylinux-apps/tkldev/blob/master/docs/helloworld.rst

I am getting a bit confused, you say:

root.sandbox (root.tmp in earlier TKLDev versions) can be used to accelerate development with quick and dirty manual prototyping of changes to the root filesystem.

Am I to understand that I am on an older version?

root@tkldev products/core# uname -a

Linux tkldev 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux

I have an empty root.tmp but no root.sandbox in sight.

As I said earlier I am not entierly shure exactly how the sandboxing works, I can see the purpose of it, but I am unable to make it sing. I have managed to do the hello world lab as described, But I think it has ended up in the core, not in the sanbox, as there is no such thing happening here right now.

Stuck. Pardon my ignorance.

Pllease advice.

Cheers,

  ///peo

 

Liraz Siri's picture

root.tmp is the name of the sandbox in the version of TKLDev you are using. If you chroot into that any changes you make will make their way into Core. Again, what you need to do to really get a grip on this is to make small scientific experiments to test your assumptions. Look before you leap. Then you can leap with confidence.

Per-Ola Mård's picture

I am not afraid, I can fly! :-)

Thank you for the clarifications.

I am on to the vTC appliance...

///peo

 

Thomas Williams's picture

I created a shell script that will perform all of the steps in the Whiteboard except for creating the accounts.  Is there a good place to check it in to Github? 

Does anyone want me to take a stab at creating the appliance?

This thread seems to have died.

Jeremy Davis's picture

But essentially if you have an install script that runs unattended (i.e. doesn't require user input) then that is pretty much the fundamentals for an appliance...

I think Peo got a bit caught up on testing stuff in the sandbox.

FWIW I just had a go at creating a basic step-by-step. Here it is. I tried to keep it simple, but also make it newb friendly... I'm not sure how I did, please feel free to provide feedback...

Thomas Williams's picture

Thanks for the link.  I started to work through creating the appliance but ran into some problems.  I will try again later.  I may request some help by sending Jeremy some logs of what I was trying.  I probably won't get to it until later this week or early next week.

Per-Ola Mård's picture

Hello Jeremy! I am sorry for being quiet. So pleased to see that someone is picking up this thread as I got stuck. If there is anything I can do to help (unlikely) let me know.

Cheers,

   ///peo

Jeremy Davis's picture

Although if you get a chance and have the inclination, it'd be great to get some feedback on the new TKLDev doc I made. I'd like to see if that perhaps helps you to understand the process a little better.

Otherwise, I'm sure that Thomas wouldn't mind his script being tested!? :)

Per-Ola Mård's picture

Did you get this script forged into the core to create a vTC? I got lost in the woods, so I am very pleased to see your excellent progress here. Well done!

Cheers,

   ///peo

Thomas Williams's picture

I have finished checking it in.  It is at:
https://github.com/wilkersoncs/time-capsule.git
The original TurnKey Linux Core code is the first version checked in if you want to see what changed.

I have also built and tested it several times.

I used both procedures (http://www.turnkeylinux.org/docs/tkldev-new-appliance and https://github.com/turnkeylinux-apps/tkldev/blob/master/docs/development...).

I wasn't able to get changelog updated.  dch wasn't cooperating.  The logo project wouldn't work in Gimp 2.8 but I got the logo close to specs.

The short version of what I did was this:
cd /turnkey/fab/products
git-clone https://github.com/turnkeylinux-apps/core.git time-capsule
cd time-capsule
rm -rf .git
git-init
vi plan/main (add packages)
vi conf.d/main (add the rest of the script)
vi README.rst
vi TODO
git add plan/main
git add conf.d/main
git add README.rst
git add TODO
Update .art/logo.png
git add .art/logo.png
git commit -m 'Update code'
git remote add origin https://github.com/wilkersoncs/time-capsule.git
git push origin master

Jeremy Davis's picture

I have just filed an Issue regarding this and tagged it as "new-appliance". I anticipate that this will then make it into the v13.1 release (which is already well overdue...

Oops forgot to link to it... https://github.com/turnkeylinux/tracker/issues/273

Add new comment