From d4a3cb6c05b9ff6b3cf466d8cc427032b42b4cd3 Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Thu, 7 Dec 2017 14:53:09 +0100 Subject: [PATCH] ansible: handle mount of /sys the same way IPA does it * Mount with -t sysfs instead of a bind mount * Retry umounting of each directory several times. I'm seeing occasional failures unmounting /sys, as it's still busy. This patch should fix it. Change-Id: I4bc6dfd6939699f7a4ed7cc59e2e503b46bbaeaf --- .../playbooks/roles/configure/defaults/main.yaml | 2 ++ .../playbooks/roles/configure/tasks/grub.yaml | 13 ++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml b/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml index 9fdad71fb2..ec8bde2d59 100644 --- a/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml +++ b/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml @@ -1 +1,3 @@ tmp_rootfs_mount: /tmp/rootfs +umount_retry_count: 5 +umount_retry_delay: 3 diff --git a/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml b/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml index 2c40e81647..c237aa3711 100644 --- a/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml +++ b/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml @@ -48,9 +48,12 @@ command: mount -o bind /{{ item }} {{ tmp_rootfs_mount }}/{{ item }} with_items: - dev - - sys - proc +- name: mount /sys for chroot + become: yes + command: mount -t sysfs sysfs {{ tmp_rootfs_mount }}/sys + - block: - name: get grub version string become: yes @@ -70,10 +73,14 @@ become: yes command: chroot {{ tmp_rootfs_mount }} /bin/sh -c '{{ grub_config_cmd }} -o {{ grub_config_file }}' always: - - name: unmount dirs for chroot + - name: unmount /{{ item }} for chroot become: yes command: umount {{ tmp_rootfs_mount }}/{{ item }} + register: task_result + retries: '{{ umount_retry_count }}' + delay: '{{ umount_retry_delay }}' + until: task_result.rc == 0 with_items: - - dev - sys - proc + - dev