On 30 January 2014 23:05, Jimmy Kaplowitz <[email protected]> wrote:
> Hi Tomaz, > > This is exciting! How are you trying to ssh in? Does gcutil ssh <instance> > not work? Also, if you configure Linux to use ttyS0 as output - see > tasks/gce/30-grub in the master branch - you can get useful debugging > information via gcutil getserialportoutput <instance>. If you configure > GRUB the same way (a buggy version of this is also in master's > tasks/gce/30-grub), you can even use this to debug booting problems. > > Thanks! I'll take a closer look and try your code as soon as I get a > chance. > > - Jimmy > > > On Thu, Jan 30, 2014 at 1:27 PM, Tomasz Rybak <[email protected]>wrote: > >> Please ignore fact that I'm responding to myself... >> >> I've been working on changing GCE-building scripts >> to use new Python code. >> Today I managed to build image, and uploaded code >> to branch gce-python in my GitHub repository: >> https://github.com/rybaktomasz/build-debian-cloud >> >> I was able to upload image to GCE and run it, >> but I was not able to ssh-in to running machine. >> It might be something simple (as me forgetting >> to configure SSH) or larger problem - e.g. grub >> configuration or partitioning. >> >> There are still some tasks to do, when compared >> to old GCE code: >> 1. adding preferences to use kernel from backports >> 2. cleaning - e.g. removing Google repository >> 3. uploading image - currently done by 95-register-image >> 4. fixing apt sources - not all mirror addresses >> are used in all files >> >> In new Tasks I called tar and apt directly - it might be better >> to use Python modules. >> >> Small feedback regarding current state of affairs. >> The most difficult was deciding whether to use existing Tasks >> or writing new ones - e.g. for adding multi-lines backports. >> Old model was straightforward - it was running shell scripts in >> order governed by their (numbered) names. Now we have phases >> and dependencies; they add more flexibility (as ability >> to skip some steps depending on manifest) but require >> completely different mental model. >> >> IMO the most important part of documentation would be graph >> of Tasks, their dependencies, and sample order of execution. >> This way reader will be able to get "the feeling" of system's >> inner workings. >> >> Second biggest problem was with the time it takes to build >> image. On my system it takes about 15 minutes to build >> image, so agile experimentation is hard ;-) >> It forced me to try to come with correct solution >> faster, so I'm not complaining to much here. >> >> I'll try to convert more of the old GCE scripts >> soon, but first want to have image working. If someone >> sees mistakes - even the most obvious ones - please let >> me know. >> >> Best regards. >> >> -- >> Tomasz Rybak GPG/PGP key ID: 2AD5 9860 >> Fingerprint A481 824E 7DD3 9C0E C40A 488E C654 FB33 2AD5 9860 >> http://member.acm.org/~tomaszrybak >> >> > Hey Tomasz Sounds very promising. A few things: > IMO the most important part of documentation would be graph of Tasks, their dependencies, and sample order of execution. > This way reader will be able to get "the feeling" of system's inner workings. I am working of a d3.js representation of that, it is working, but I have taken it offline until I have the rest of the documentation working. I'll probably publish the documentation this weekend (along with a proper release of the python branch under a new name: bootstrap-vz). > Second biggest problem was with the time it takes to build image. > On my system it takes about 15 minutes to build image, so agile experimentation is hard ;-) I presetn to you: The prebootstrapped plugin<https://github.com/andsens/build-debian-cloud/tree/python/plugins/prebootstrapped>. It takes a snapshot of your volume right after debootstrap and apt-get install has run. When you define a path to an image/snapshot in the manifest it will remove all bootstrapping tasks and pick up from there, saving you ~13 minutes out of 15. Without an image path in the manifest it will create a snapshot right after apt-get install. That right there is one of the reasons I need to get the documentation up and running, you could've saved hours if you knew this beforehand :-)
