← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1262878] [NEW] Serial console device required for runcmd to take effect

 

Public bug reported:

Not sure if this should actually be considered a bug or not.  But,
figured I'd submit it anyway.

My cloud image is ubuntu-13.10, amd64, downloaded from here: http
://cloud-images.ubuntu.com/saucy/current/saucy-server-cloudimg-
amd64-disk1.img.  I'm testing locally in libvirt with virsh, etc.

I'm using the OpenStack Config Drive as my only data source.  It
provides a user_data file that has the following contents:

#cloud-config
runcmd:
  - touch /cloudinit-runcmd-done

I could not get that "touch" command to run.  To help debug, I added the
following line as well:

output: {all: '| tee -a /var/log/cloud-init-output.log'}

After adding that line, I noticed that the touch command ran fine.  So,
to summarize: w/o an output:{...} line in the user-data, my runcmd does
not execute.  Eventually I narrowed the issue down to the fact that my
vm was missing a defined serial console.  After adding the following to
my libvirt xml for my vm, my runcmd runs fine with *or* without an
output line in the user-data:

    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>

The only thing I can figure is that adding the output line, causes
util.fix_output to get executed which must trigger something so that
cloud-init keeps running to the stage where runcmd's are executed.

** Affects: cloud-init
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1262878

Title:
  Serial console device required for runcmd to take effect

Status in Init scripts for use on cloud images:
  New

Bug description:
  Not sure if this should actually be considered a bug or not.  But,
  figured I'd submit it anyway.

  My cloud image is ubuntu-13.10, amd64, downloaded from here: http
  ://cloud-images.ubuntu.com/saucy/current/saucy-server-cloudimg-
  amd64-disk1.img.  I'm testing locally in libvirt with virsh, etc.

  I'm using the OpenStack Config Drive as my only data source.  It
  provides a user_data file that has the following contents:

  #cloud-config
  runcmd:
    - touch /cloudinit-runcmd-done

  I could not get that "touch" command to run.  To help debug, I added
  the following line as well:

  output: {all: '| tee -a /var/log/cloud-init-output.log'}

  After adding that line, I noticed that the touch command ran fine.
  So, to summarize: w/o an output:{...} line in the user-data, my runcmd
  does not execute.  Eventually I narrowed the issue down to the fact
  that my vm was missing a defined serial console.  After adding the
  following to my libvirt xml for my vm, my runcmd runs fine with *or*
  without an output line in the user-data:

      <serial type='pty'>
        <target port='0'/>
      </serial>
      <console type='pty'>
        <target type='serial' port='0'/>
      </console>

  The only thing I can figure is that adding the output line, causes
  util.fix_output to get executed which must trigger something so that
  cloud-init keeps running to the stage where runcmd's are executed.

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1262878/+subscriptions


Follow ups

References