defunctzombie / ansible-coreos-bootstrap

[NOT MAINTAINED] bootstrap a coreos machine for control via ansible

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

defunctzombie.coreos-bootstrap role fails during bootstrap.sh task: " /lib64/libssl.so.1.0.0: no version information available" errors

jl-montes opened this issue · comments

When executing an Ansible playbook using the 'role' defunctzombie.coreos-bootstrap, the task which runs the bootstrap.ah script always fails with the message "/lib64/libssl.so.1.0.0: no version information available (required by /home/jmontes/pypy/bin/libpypy-c.so)"

Ansible workstation: Centos 6.8, Ansible 2.1.10
Remote systems have CoreOS version: 835.11.0 (One of my CoreOS systems at 1122.2.0 does not fail like the others)

Playbook example:
hosts: coreos
gather_facts: False

roles:
defunctzombie.coreos-bootstrap

Host file variables example
[coreos:vars]
ansible_ssh_user=jmontes

ansible_python_interpreter="PATH=/home/jmontes/bin:$PATH python"

ansible_python_interpreter=/home/jmontes/bin/python

Sample Error message when manually running the bootstrap script (cleaner output compared to ansible output)
The same error occurs when Ansible executes the bootstrap script, but the text output is harder to read, the example below is just a manual execution of the same exact bash script.

jmontes@coreos01 ~ $ ./bootstrap.sh
--2016-09-11 17:31:32-- https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.0-linux64.tar.bz2
Resolving bitbucket.org... 104.192.143.1, 104.192.143.2, 104.192.143.3, ...
Connecting to bitbucket.org|104.192.143.1|:443... connected.
HTTP request sent, awaiting response... 302 FOUND
Location: https://bbuseruploads.s3.amazonaws.com/54220cd1-b139-4188-9455-1e13e663f1ac/downloads/b4819e39-76fe-4453-8315-9d76fcbec5a2/pypy-5.1.0-linux64.tar.bz2?Signature=pMuXVJ1xtSYaEsOZvBUWbAAQ7lg%3D&Expires=1473615171&AWSAccessKeyId=AKIAIWY5XSVPZPDQYRQQ&versionId=rbOyQ3EO5dhbTuz.gl60O6iXfntn7QM1&response-content-disposition=attachment%3B%20filename%3D%22pypy-5.1.0-linux64.tar.bz2%22 [following]
--2016-09-11 17:31:33-- https://bbuseruploads.s3.amazonaws.com/54220cd1-b139-4188-9455-1e13e663f1ac/downloads/b4819e39-76fe-4453-8315-9d76fcbec5a2/pypy-5.1.0-linux64.tar.bz2?Signature=pMuXVJ1xtSYaEsOZvBUWbAAQ7lg%3D&Expires=1473615171&AWSAccessKeyId=AKIAIWY5XSVPZPDQYRQQ&versionId=rbOyQ3EO5dhbTuz.gl60O6iXfntn7QM1&response-content-disposition=attachment%3B%20filename%3D%22pypy-5.1.0-linux64.tar.bz2%22
Resolving bbuseruploads.s3.amazonaws.com... 54.231.48.152
Connecting to bbuseruploads.s3.amazonaws.com|54.231.48.152|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 23264958 (22M) [application/x-tar]
Saving to: 'STDOUT'

100%[==================================================================================>] 22.19M 4.55MB/s in 5.3s
2016-09-11 17:31:39 (4.16 MB/s) - written to stdout [23264958/23264958]

/home/jmontes/pypy/bin/pypy: /lib64/libssl.so.1.0.0: no version information available (required by /home/jmontes/pypy/bin/libpypy-c.so)
/home/jmontes/pypy/bin/pypy: /lib64/libssl.so.1.0.0: no version information available (required by /home/jmontes/pypy/bin/libpypy-c.so)
/home/jmontes/pypy/bin/pypy: /lib64/libcrypto.so.1.0.0: no version information available (required by /home/jmontes/pypy/bin/libpypy-c.so)
/home/jmontes/pypy/bin/pypy: relocation error: /home/jmontes/pypy/bin/libpypy-c.so: symbol EC_KEY_free, version OPENSSL_1.0.0 not defined in file libcrypto.so.1.0.0 with link time reference

Is the version of pypy too old for your system? or too new maybe? Alternatively, maybe you need to ensure you have libssl installed which maybe isn't there on your platform by default.

You can try to download the latest version of portable pypy : https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.6-linux_x86_64-portable.tar.bz2. It's work for me.

In your hostfile use:

[coreos:vars]
ansible_ssh_user=core
ansible_python_interpreter=/home/core/bin/python

I can reproduce this with CoreOS versions, 835.12.0, and 835.13.0. This is in addition to the original poster's version 835.11.0. Seems that the versions of /lib64/libcrypto.so.1.0.0 and /lib64/libssl.so.1.0.0 shipped with certain CoreOS releases does not play nice with libpypy-c.so which says it was linked against another version of the library:

/home/jmontes/pypy/bin/pypy: relocation error: /home/jmontes/pypy/bin/libpypy-c.so: symbol EC_KEY_free, version OPENSSL_1.0.0 not defined in file libcrypto.so.1.0.0 with link time reference

Fix would be to find the right version of pypy which was linked against the CoreOS host SSL & crypto libraries (looks like OpenSSL 1.0.2f 28 Jan 2016). The portable-pypy may sidestep the issue by using a statically linked OpenSSL library (the library is built into the binary instead of linked against a version expected to be on the system)

As @bithavoc said just set your the ansible_python_interpreter path to ansible_python_interpreter=/home/core/bin/python to resolve the issue seems to work for me.

Using the portable pypy solved this issue for me.