Eu recebo esta série de erros ao tentar fazer uma instalação de serviço usando o módulo apt com Ansible em uma caixa do Ubuntu 14.x.
Na maioria das outras caixas do Ubuntu 14.x ele funciona bem.
Há um punhado que não funciona.
A área relevante do playbook nas tarefas principais yaml:
name: Install the required packages for keyczar
apt: name={{ keyczar_name }} state=installed
A definição em vars main e debian yaml:
keyczar_name: python-keyczar
Antes da execução, o arquivo de bloqueio /var/lib/dpkg/lock
não existe. Após a execução com falha, ele existe. Removê-lo manualmente com rm e executar novamente não faz nada. A CLI equivalente que está sendo executada é apt-get install python-keyczar -y
, o que, se executado manualmente, funciona. Isso me preocupa porque é a primeira vez que vejo um pacote ser rejeitado quando executado sob o Ansible, mas funciona bem quando é instalado manualmente. Não faz sentido.
O erro específico é:
fatal: [qaevt5.channel-corp.com]: FAILED! => {"cache_update_time": 0, "cache_updated": false, "changed": false, "failed": true, "msg": "'/usr/bin/ap\
t-get -y -o \"Dpkg::Options::=--force-confdef\" -o \"Dpkg::Options::=--force-confold\" --simulate install 'python-keyczar'' failed: E: Could not ge\
t lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)\nE: Unable to lock the administration directory (/var/lib/dpkg/), is another\
process using it?\n", "stderr": "E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)\nE: Unable to lock the admi\
nistration directory (/var/lib/dpkg/), is another process using it?\n", "stdout": "", "stdout_lines": []}
fuser e lsof não mostram nenhum outro processo segurando o bloqueio.
Depois que o apt-get install python-keyczar -y
for executado manualmente e o ansible run execute novamente, sem problemas. Pacote "ok".
O arquivo de bloqueio acima possui outros arquivos associados após a execução manual.
ls -l /var/cache/apt/archives/lock /var/lib/apt/lists/lock /var/lib/dpkg/lock
-rw-r----- 1 root root 0 Aug 5 2015 /var/cache/apt/archives/lock
-rw-r----- 1 root root 0 Mar 30 00:03 /var/lib/apt/lists/lock
-rw-r----- 1 root root 0 Mar 30 15:13 /var/lib/dpkg/lock
Eu vou fazer o manual na meia dúzia de caixas onde isso está acontecendo. As outras dezenas não tinham esse problema.
Claro, até que isso seja esclarecido, tem que ser feito manualmente, o que realmente anula o propósito.