No Ubuntu 14.04.3, ansible não instalará python-keyczar em hosts selecionados - manual apt-get install python-keyczar -y funciona

-1

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.

    
por user3124718 30.03.2016 / 17:24

1 resposta

0

Estou tendo o mesmo problema. Se você está ansible script está escrito bem, e pode ter certeza que nenhum processo está bloqueando apt, então você pode ter certeza que o bloqueio não existe antes de executar o módulo apt.

Você pode fazer isso com o modelo de arquivo com become: true state=absent no arquivo de bloqueio.

Esse é um trabalho horrível, mas eu culpo o ubuntu: P eu não encontro problemas com o Arch Linux

    
por user447518 29.09.2016 / 09:59