Проблема:

В логах Ansible появляются ошибки, вида:

STDERR:

E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 4692 (unattended-upgr)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?



MSG:

'/usr/bin/apt-get -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold"       install 'keepalived=1:2.2.4-0.2build1'' failed: E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 4692 (unattended-upgr)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

Решение:

Ошибка говорит о том, что в момент запуска Ansible утилита apt не смогла получить lock-файл /var/lib/dpkg/lock-frontend, потому что пакетный менеджер уже используется другим процессом — в данном случае unattended-upgr (служба автоматических обновлений).

Пока unattended-upgrades обновляет пакеты, любой параллельный вызов apt (в том числе из Ansible) получит E: Could not get lock.

Варианты решения:

  • Дождаться завершения процесса unattended-upgr

Проверить можно, используя команду:

sudo apt update

Если появляются ошибки аналогичного формата - процесс ещё не завершён

  • Принудительно остановить процесс (не рекомендуется)

Ищем в ошибке Ansible следующую строку:

E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 4692 (unattended-upgr)

Откуда берём код процесса и останавливаем его (в нашем случае код процесса 4692)

sudo kill 4692


  • Нет меток