[Maas-devel] ephemeral image debugging
Diogo Matsubara
matsubara at canonical.com
Thu Jan 17 14:08:16 UTC 2013
Hi Scott,
thanks for these instructions, they're very useful.
There are two small corrections to the script you sent below:
On Thu, Dec 13, 2012 at 12:35 PM, Scott Moser <smoser at ubuntu.com> wrote:
> Hey all,
>
> Whenever people have problems with enlistment or commissioning, often
> times debugging from within the ephemeral image is needed to see whats
> going on.
>
> Below is a general "how to get around" guide.
>
> ### backdoor (add a login) to ephemeral images ###
> # If you cannot login to an instance, you might have to "backdoor it"
> # in order to see what is going wrong. I wrote a simple utility
> # that injects a user and password into an image. Heres how to
> # add a 'backdoor' user with a password to your images.
> bzr branch lp:~smoser/+junk/backdoor-image
> imgs=$(echo var/lib/maas/ephemeral/*/*/*/*/*.img)
> for img in $imgs; do
> [ -f "$img.dist" ] || cp -a --sparse=always $img.dist
> done
>
I assume you wanted to make a backup copy of the original image files. The
cp command is missing an argument though:
[ -f "$img.dist" ] || cp -a --sparse=always $img $img.dist
Is that the original intention?
for img in $imgs; do
> sudo ./backdoor-image -v --user=backdoor --password-auth
> --password=ubuntu
> done
>
Likewise here:
sudo ./backdoor-image -v --user=backdoor --password-auth
--password=ubuntu $img
>
> ### Inside the ephemeral image ###
>
> ## Important files for debugging:
> # Someone is likely to ask you for these things to help debug
> /var/log/cloud-init.log
> /var/log/boot.log
> /var/log/cloud-init-output.log
>
> # After enlistment or commissioning, the user-data from maas instructs
> # the system to poweroff. To stop that from happening, you can just
> # touch a file in /tmp.
> touch /tmp/block-poweroff
>
> ## maas credentials:
> # maas credentials can be found in 2 places:
> # * from the cmdline you'll see a 'url=' or 'cloud-config-url=' parameter
> # You can get the cloud-config from that url, which will have
> # credentials.
> # example:
> # $ sed -n 's,.*url=\([^ ]*\).*,\1,p' /proc/cmdline
> #
> http://10.55.60.194/MAAS/metadata/latest/enlist-preseed/?op=get_enlist_preseed
> # * from /etc/cloud/cloud.cfg.d/91_kernel_cmdline_url
> # The file was pulled from url= parameter by cloud-init
> # $ sudo cat /etc/cloud/cloud.cfg.d/91_kernel_cmdline
>
> ### maas datasource ###
> # the cloud-init datasource for MAAS can be invoked as a 'main' for
> # debugging purposes. To do so, you need to know the url for the maas
> # datasource and a config file that contains credentials.
> #
> $ cfg=$(echo /etc/cloud/cloud.cfg.d/*_cmdline_url.cfg)
> $ echo $cfg
> /etc/cloud/cloud.cfg.d/91_kernel_cmdline_url.cfg
>
> # now get the metadata_url from there.
> $ url=$(sudo awk '$1 == "metadata_url:" { print $2 }' $cfg)
> $ echo $url
> http://10.55.60.194/MAAS/metadata/enlist
>
> # invoke the client
> # /usr/share/pyshared/cloudinit/sources/DataSourceMAAS.py
> # the client has --help Usage also, but here is an example on how
> # to use it.
> $ maasds="/usr/share/pyshared/cloudinit/sources/DataSourceMAAS.py"
> $ sudo python $maasds --config=$cfg get $url
> == http://10.55.60.194/MAAS/metadata/enlist ==
> 2012-03-01
> latest
>
> $ sudo python $maasds --config=$cfg get
> $url/latest/meta-data/local-hostname
> maas-enlisting-node
>
> --
> Mailing list: https://launchpad.net/~maas-devel
> Post to : maas-devel at lists.launchpad.net
> Unsubscribe : https://launchpad.net/~maas-devel
> More help : https://help.launchpad.net/ListHelp
>
Cheers,
--
Diogo M. Matsubara
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/maas-devel/attachments/20130117/8478718e/attachment.html>
More information about the Maas-devel
mailing list