Gerenciando Host do FreeBSD com Ansible falha: Objeto compartilhado \ "libdl.so.1 \" não encontrado, requerido por \ "python \" \ r \ n

1

O gerenciamento do FreeBSD no Raspberry pi 3 (FreeBSD-aarch64-12.0-GENERIC-320146M do projeto RaspBSD - link ) falha.

Host de controle é o MacOS 10.13.2.

python é instalado com sucesso no host gerenciado ( rpi3_freebsd ):

$ ansible -m raw -a "sudo pkg install -y python27" --user drew --ask-pass rpi3_freebsd
SSH password:
rpi | SUCCESS | rc=0 >>
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
The most recent version of packages are already installed

No entanto, quando tento executar um manual, ansible retorna o seguinte erro:

$ ansible-playbook --user drew --ask-pass bootstrap.yml -vvvv
ansible-playbook 2.4.3.0
  config file = /Users/drew/SynologyDrive/rpi-scripts/ansible/ansible.cfg
  configured module search path = [u'/Users/drew/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/Cellar/ansible/2.4.3.0/libexec/lib/python2.7/site-packages/ansible
  executable location = /usr/local/bin/ansible-playbook
  python version = 2.7.10 (default, Jul 15 2017, 17:16:57) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)]
Using /Users/drew/SynologyDrive/rpi-scripts/ansible/ansible.cfg as config file
SSH password:
setting up inventory plugins
Parsed /Users/drew/SynologyDrive/rpi-scripts/ansible/hosts inventory source with ini plugin
Loading callback plugin skippy of type stdout, v2.0 from /usr/local/Cellar/ansible/2.4.3.0/libexec/lib/python2.7/site-packages/ansible/plugins/callback/skippy.pyc

PLAYBOOK: bootstrap.yml ******************************************************************************************************************
 1 plays in bootstrap.yml

PLAY [raspberrypi_3] *********************************************************************************************************************

TASK [Gathering Facts] *******************************************************************************************************************
Using module file /usr/local/Cellar/ansible/2.4.3.0/libexec/lib/python2.7/site-packages/ansible/modules/system/setup.py
<172.16.42.6> ESTABLISH CONNECTION FOR USER: drew on PORT 22 TO 172.16.42.6
<172.16.42.6> EXEC /bin/sh -c 'echo ~ && sleep 0'
<172.16.42.6> EXEC /bin/sh -c '( umask 77 && mkdir -p "' echo /home/drew/.ansible/tmp/ansible-tmp-1522353818.07-1230475463058 '" && echo ansible-tmp-1522353818.07-1230475463058="' echo /home/drew/.ansible/tmp/ansible-tmp-1522353818.07-1230475463058 '" ) && sleep 0'
<172.16.42.6> PUT /var/folders/2c/m_z3y5gs3fz1m2b2lwzk7yl80000gn/T/tmpgWCvx_ TO /home/drew/.ansible/tmp/ansible-tmp-1522353818.07-1230475463058/setup.py
<172.16.42.6> EXEC /bin/sh -c 'chmod u+x /home/drew/.ansible/tmp/ansible-tmp-1522353818.07-1230475463058/ /home/drew/.ansible/tmp/ansible-tmp-1522353818.07-1230475463058/setup.py && sleep 0'
<172.16.42.6> EXEC /bin/sh -c '/usr/local/bin/python /home/drew/.ansible/tmp/ansible-tmp-1522353818.07-1230475463058/setup.py; rm -rf "/home/drew/.ansible/tmp/ansible-tmp-1522353818.07-1230475463058/" > /dev/null 2>&1 && sleep 0'
fatal: [rpi]: FAILED! => {
    "changed": false,
    "module_stderr": "",
    "module_stdout": "Shared object \"libdl.so.1\" not found, required by \"python\"\r\n",
"msg": "MODULE FAILURE",
"rc": 0
}
to retry, use: --limit @/Users/drew/SynologyDrive/rpi-scripts/ansible/bootstrap.retry

PLAY RECAP *******************************************************************************************************************************
rpi                        : ok=0    changed=0    unreachable=0    failed=1

A única dependência de ansible é python, o que é satisfeito.

O que está errado e como posso corrigi-lo?

Obrigado.

    
por Drew 29.03.2018 / 22:16

2 respostas

0

Eu tive um problema semelhante ao fazer a transição do FreeBSD 11.1 para 11.2, mas foi gnutls que relatou o problema com a falta de libdl.so.1 .

Minha solução surgiu de uma dica que encontrei em:

link

Primeiro, faça um backup de /etc/pkg/FreeBSD.conf :

# cp -vp /etc/pkg/FreeBSD.conf /etc/pkg/FreeBSD.conf.safety

Em seguida, edite /etc/pkg/FreeBSD.conf e altere a linha url: a ser:

url: "pkg+http://pkg.FreeBSD.org/${ABI}/release_2",

Salve o arquivo e saia do vi.

# pkg update
# pkg install -f python27

Agora, tente seu ansioso playbook novamente.

Se isso funcionar, para você, e se você tiver atualizado outras portas recentemente, convém fazer uma invocação superficial para garantir que elas não apresentem problemas semelhantes.

Eu não sou um especialista, mas espero que esse problema desapareça assim que o seu sistema operacional chegar a uma versão mais recente. No meu caso, acredito que o problema surgiu porque o repositório pkg estava fornecendo pacotes vinculados para o 11.2, que possui um libdl.so.1, e eu os estava instalando em uma cadeia que ainda estava na versão 11.1, o que não ocorre. / p>

Depois de atualizar para um lançamento atualizado, você deve reverter seu /etc/pkg/FreeBSD.conf para a cópia de backup que você fez e retomar o rastreamento do repo de pacote de compra mais recente.

    
por 10.11.2018 / 01:13
0

Problema semelhante com a dependência ausente no bash e o wget foi corrigido ao criar um link

ln -sf /lib/libc.so.7 /usr/lib/libdl.so.1
    
por 12.11.2018 / 16:10