Ubuntu Release Upgrade

851 views
Skip to first unread message

Paul Wolstenholme

unread,
Oct 25, 2013, 9:36:13 PM10/25/13
to ansible...@googlegroups.com
I'm just starting using Ansible a few weeks ago. Using:
ansible 1.4 (devel a002a24973) last updated 2013/09/25 17:14:03 (GMT -700)


Currently, I'm using it with Vagrant, VirtualBox with Ansible as a provisioner to build a clustered Varnish test suite. It works awesome.

In our dev/qa/production environments we've been running Varnish on Ubuntu Lucid. I'd like to upgrade to Precise. Time to upgrade. I thought this  might be good test for Ansible. I've downloaded the standard lucid64 box and created a simple playbook:

- name: Update apt cache
  action: apt update_cache=true
  tags: ubuntu_upgrade
 
- name: Distribution Upgrade {{dist_upgrade}}
  apt: pkg=update-manager-core state=latest
  when: ${dist_upgrade}
  register: upgrade
  tags: ubuntu_upgrade
 
- name: Do Release Upgrade
  command: /usr/bin/do-release-upgrade -f DistUpgradeViewNonInteractive
  when: (upgrade|success) and (${dist_upgrade})
  tags: ubuntu_upgrade


When I run the playbook, the do-release fails task fails and Ansible hangs.  I thought at some point it may timeout or someting but I let in run all night and the console indicated it was still working on the task.

When I log into the machines while the tasks are executing. It seems to start off okay on one machine but after a few minutes activity on the box decreases to an idle state. One thing I noticed is a precise process that has gone into a zombie state.  The task does not kick off on the other box.

I am curious if anyone might be able to shed some light on doing a release upgrade on Ubuntu using Ansible.

If I ssh into the guest machine I can  run it manually.

Cheers,
Paul





Michael DeHaan

unread,
Oct 26, 2013, 11:23:19 AM10/26/13
to ansible...@googlegroups.com
I would probably consider async mode (see docs on async), though I would expect you to encounter an SSH timeout.   It is probably that this command is not daemonizing correctly.

I should point out your use of legacy variables is discouraged:

  when: (upgrade|success) and (${dist_upgrade})

Can be written as:

   when:  (upgrade|success) and dist_upgrade

Similarly:

  when: ${dist_upgrade}

Should be:

  when: dist_upgrade




--
You received this message because you are subscribed to the Google Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



--
Michael DeHaan <mic...@ansibleworks.com>
CTO, AnsibleWorks, Inc.
http://www.ansibleworks.com/

Alex Rodenberg

unread,
Oct 29, 2013, 10:57:41 AM10/29/13
to ansible...@googlegroups.com
do-release-upgrade is slow.. can take from 1 - 2 hours to complete depending on your internet speeds.

Have you checked the screen that it creates during the processing when you think it is idling ?

do a:
sudo screen -list

It should list the one running there with something like this:

There is a screen on:
    2953.ubuntu-release-upgrade-screen-window   (09/13/2012 04:48:02 AM)    (Detached)
1 Socket in /var/run/screen/S-root.

Then you can run:
sudo screen -d -r root/2953.ubuntu-release-upgrade-screen-window

I'm not 100% sure that screen gets run when you do a DistUpgradeViewNonInteractive.. but have a look..

I would suggest running this command without waiting for it in a shell script or something like that, so Ansible doesn't wait forever/until SSH times out. As this can't really be timed or checked if succeeded before the machine have rebooted and you see a new distro version.

Michael DeHaan

unread,
Oct 29, 2013, 9:54:31 PM10/29/13
to ansible...@googlegroups.com
Ansible has an async option that can be used to poll on long running tasks, BTW.




--
You received this message because you are subscribed to the Google Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Alex Rodenberg

unread,
Nov 1, 2013, 6:48:31 AM11/1/13
to ansible...@googlegroups.com
Nice I didn't even notice that.

What would happen if the box restarts though ? (Which happens after do-release-upgrade is done)

Alex Rodenberg

unread,
Nov 1, 2013, 6:49:26 AM11/1/13
to ansible...@googlegroups.com
At least one can run it with poll 0, but would be cool if it can still run after reboot to continue doing a play.
Reply all
Reply to author
Forward
0 new messages