[Bug 613309] Re: cloud-run-user-script.conf upstart script needs to run after all other cloud-init processes

Scott Moser smoser at canonical.com
Mon Aug 9 22:33:52 BST 2010


** Description changed:

  Binary package hint: cloud-init
  
  All lucid/maverick source packages,
  
  The following upstart scripts need to wait for the 'cloud-config' status
  in addition to what they currently wait for, otherwise userdata might
  not be loaded yet.
  
  cloud-apt-update-upgrade.conf
  cloud-config-misc.conf
  cloud-config-mounts.conf
  cloud-config-ssh.conf
  cloud-disable-ec2-metadata.conf
  cloud-ec2-ebs-mounts.conf
  cloud-raid.conf
  cloud-runurl.conf
  
  ~~
  most of these need to just add 'and cloud-config' but one or two need to just 'start on cloud-config'
  
  ~~~
  cloud-run-user-script.conf
  
  needs 'start on (stopped rc RUNLEVEL=[2345] and stopped cloud-config-
  misc)'
  
  We need this package to work in ec2 as well as UEC otherwise it make
  provisioning of a new instance much harder and defeats the purpose of
  this package.  Since Lucid is LTS I would like to see a SRU for this
  issue as well since it prevent out of the box/repo use of this feature.
+ 
+ ==== Begin SRU Justification ====
+ Impact: The impact of this bug is that a popular portion of "cloud-config" syntax [1] is not easily used in the 10.04 images.  If the user specifies commands to run, they cannot rely on other portions of cloud-init having finished before those scripts run.  The big examples is that if the user installs a package via 'pkgs', they cannot rely on it being present in their 'runcmd'.  The ordering is simply not guaranteed.
+ Solution: The solution is to make the upstart script that executes the user's commands depend on 'stopped' of each of the other upstart jobs.  In this manner, it will not execute until the other jobs are finished.
+ Patch: Available in branch attached to this bug [2]
+ Regression Potential: There should be low potential for regression and low realistic change of user expectations.  Previously, the order was non-deterministic, this will guarantee that jobs run after packages are installed.
+ 
+ TEST Case:
+  * launch ec2 instance (ubuntu-lucid-10.04-i386-server-20100427.1, such as ami-fd4aa494) with user data having 'packages' and 'runcmd' section.  Such as:
+ | #cloud-config
+ | packages: [ bzr, ubuntu-dev-tools, ccache, vim-nox, git-core, lftp ]
+ | runcmd:
+ |  - [ sudo, -Hu, ubuntu, sh, -c 'bzr branch lp:ubuntu/lucid-proposed/cloud-init  2>&1 | tee cmd.log' ]
+  * without a fix for this bug, the ordering is indeterminable, but most likely, the 'bzr branch' command will run before bzr is installed.  With the fix, it is guaranteed to run afterwards.
+ 
+ --
+ [1] http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/lucid/cloud-init/lucid-proposed/annotate/head%3A/doc/examples/cloud-config.txt
+ [2] http://bazaar.launchpad.net/~smoser/ubuntu/lucid/cloud-init/bug613309/revision/17
+ ==== End SRU Justification =====

-- 
cloud-run-user-script.conf upstart script needs to run after all other cloud-init processes
https://bugs.launchpad.net/bugs/613309
You received this bug notification because you are a member of Ubuntu
Server Team, which is a direct subscriber.



More information about the Ubuntu-server-bugs mailing list