DavidWittman/ansible-redis

Install on Ubuntu 16 fails with "No such file or directory: 'make'"

adriaandotcom opened this issue · 4 comments

When I run the role I get this in my console:

TASK [DavidWittman.redis : compile redis] *********************************************************************
task path: /Users/me/.ansible/roles/DavidWittman.redis/tasks/install.yml:11
Using module file /usr/local/lib/python2.7/site-packages/ansible/modules/commands/command.py
<xxx.xxx.xxx.xx> ESTABLISH SSH CONNECTION FOR USER: root
<xxx.xxx.xxx.xx> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=root -o ConnectTimeout=10 -o ControlPath=/Users/me/.ansible/cp/b2607c52e2 xxx.xxx.xxx.xx '/bin/sh -c '"'"'echo ~ && sleep 0'"'"''
<xxx.xxx.xxx.xx> (0, '/root\n', 'OpenSSH_7.4p1, LibreSSL 2.5.0\r\ndebug1: Reading configuration data /Users/me/.ssh/config\r\ndebug1: /Users/me/.ssh/config line 1: Applying options for *\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 69751\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\n')
<xxx.xxx.xxx.xx> ESTABLISH SSH CONNECTION FOR USER: root
<xxx.xxx.xxx.xx> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=root -o ConnectTimeout=10 -o ControlPath=/Users/me/.ansible/cp/b2607c52e2 xxx.xxx.xxx.xx '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1522193665.58-145433144292880 `" && echo ansible-tmp-1522193665.58-145433144292880="` echo /root/.ansible/tmp/ansible-tmp-1522193665.58-145433144292880 `" ) && sleep 0'"'"''
<xxx.xxx.xxx.xx> (0, 'ansible-tmp-1522193665.58-145433144292880=/root/.ansible/tmp/ansible-tmp-1522193665.58-145433144292880\n', 'OpenSSH_7.4p1, LibreSSL 2.5.0\r\ndebug1: Reading configuration data /Users/me/.ssh/config\r\ndebug1: /Users/me/.ssh/config line 1: Applying options for *\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 69751\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\n')
<xxx.xxx.xxx.xx> PUT /var/folders/b4/_ml44mdj0yv1s07z87zbryk40000gn/T/tmpHMbRYJ TO /root/.ansible/tmp/ansible-tmp-1522193665.58-145433144292880/command.py
<xxx.xxx.xxx.xx> SSH: EXEC sftp -b - -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=root -o ConnectTimeout=10 -o ControlPath=/Users/me/.ansible/cp/b2607c52e2 '[xxx.xxx.xxx.xx]'
<xxx.xxx.xxx.xx> (0, 'sftp> put /var/folders/b4/_ml44mdj0yv1s07z87zbryk40000gn/T/tmpHMbRYJ /root/.ansible/tmp/ansible-tmp-1522193665.58-145433144292880/command.py\n', 'OpenSSH_7.4p1, LibreSSL 2.5.0\r\ndebug1: Reading configuration data /Users/me/.ssh/config\r\ndebug1: /Users/me/.ssh/config line 1: Applying options for *\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 69751\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug2: Remote version: 3\r\ndebug2: Server supports extension "posix-rename@openssh.com" revision 1\r\ndebug2: Server supports extension "statvfs@openssh.com" revision 2\r\ndebug2: Server supports extension "fstatvfs@openssh.com" revision 2\r\ndebug2: Server supports extension "hardlink@openssh.com" revision 1\r\ndebug2: Server supports extension "fsync@openssh.com" revision 1\r\ndebug3: Sent message fd 8 T:16 I:1\r\ndebug3: SSH_FXP_REALPATH . -> /root size 0\r\ndebug3: Looking up /var/folders/b4/_ml44mdj0yv1s07z87zbryk40000gn/T/tmpHMbRYJ\r\ndebug3: Sent message fd 8 T:17 I:2\r\ndebug3: Received stat reply T:101 I:2\r\ndebug1: Couldn\'t stat remote file: No such file or directory\r\ndebug3: Sent message SSH2_FXP_OPEN I:3 P:/root/.ansible/tmp/ansible-tmp-1522193665.58-145433144292880/command.py\r\ndebug3: Sent message SSH2_FXP_WRITE I:4 O:0 S:32768\r\ndebug3: SSH2_FXP_STATUS 0\r\ndebug3: In write loop, ack for 4 32768 bytes at 0\r\ndebug3: Sent message SSH2_FXP_WRITE I:5 O:32768 S:32768\r\ndebug3: Sent message SSH2_FXP_WRITE I:6 O:65536 S:1477\r\ndebug3: SSH2_FXP_STATUS 0\r\ndebug3: In write loop, ack for 5 32768 bytes at 32768\r\ndebug3: SSH2_FXP_STATUS 0\r\ndebug3: In write loop, ack for 6 1477 bytes at 65536\r\ndebug3: Sent message SSH2_FXP_CLOSE I:4\r\ndebug3: SSH2_FXP_STATUS 0\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\n')
<xxx.xxx.xxx.xx> ESTABLISH SSH CONNECTION FOR USER: root
<xxx.xxx.xxx.xx> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=root -o ConnectTimeout=10 -o ControlPath=/Users/me/.ansible/cp/b2607c52e2 xxx.xxx.xxx.xx '/bin/sh -c '"'"'chmod u+x /root/.ansible/tmp/ansible-tmp-1522193665.58-145433144292880/ /root/.ansible/tmp/ansible-tmp-1522193665.58-145433144292880/command.py && sleep 0'"'"''
<xxx.xxx.xxx.xx> (0, '', 'OpenSSH_7.4p1, LibreSSL 2.5.0\r\ndebug1: Reading configuration data /Users/me/.ssh/config\r\ndebug1: /Users/me/.ssh/config line 1: Applying options for *\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 69751\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\n')
<xxx.xxx.xxx.xx> ESTABLISH SSH CONNECTION FOR USER: root
<xxx.xxx.xxx.xx> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=root -o ConnectTimeout=10 -o ControlPath=/Users/me/.ansible/cp/b2607c52e2 -tt xxx.xxx.xxx.xx '/bin/sh -c '"'"'/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1522193665.58-145433144292880/command.py; rm -rf "/root/.ansible/tmp/ansible-tmp-1522193665.58-145433144292880/" > /dev/null 2>&1 && sleep 0'"'"''
<xxx.xxx.xxx.xx> (0, '\r\n{"rc": 2, "invocation": {"module_args": {"_raw_params": "make -j2", "creates": "/usr/local/src/redis-2.8.24/src/redis-server", "_uses_shell": false, "stdin": null, "chdir": "/usr/local/src/redis-2.8.24", "warn": true, "executable": null, "removes": null}}, "exception": "  File \\"/tmp/ansible_v5cfctcj/ansible_modlib.zip/ansible/module_utils/basic.py\\", line 2786, in run_command\\n    cmd = subprocess.Popen(args, **kwargs)\\n  File \\"/usr/lib/python3.5/subprocess.py\\", line 947, in __init__\\n    restore_signals, start_new_session)\\n  File \\"/usr/lib/python3.5/subprocess.py\\", line 1551, in _execute_child\\n    raise child_exception_type(errno_num, err_msg)\\n", "failed": true, "msg": "[Errno 2] No such file or directory: \'make\'", "cmd": "make -j2"}\r\n', 'OpenSSH_7.4p1, LibreSSL 2.5.0\r\ndebug1: Reading configuration data /Users/me/.ssh/config\r\ndebug1: /Users/me/.ssh/config line 1: Applying options for *\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 69751\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 0\r\nShared connection to xxx.xxx.xxx.xx closed.\r\n')
The full traceback is:
  File "/tmp/ansible_v5cfctcj/ansible_modlib.zip/ansible/module_utils/basic.py", line 2786, in run_command
    cmd = subprocess.Popen(args, **kwargs)
  File "/usr/lib/python3.5/subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.5/subprocess.py", line 1551, in _execute_child
    raise child_exception_type(errno_num, err_msg)

fatal: [xxx.xxx.xxx.xx]: FAILED! => {
    "changed": false, 
    "cmd": "make -j2", 
    "invocation": {
        "module_args": {
            "_raw_params": "make -j2", 
            "_uses_shell": false, 
            "chdir": "/usr/local/src/redis-2.8.24", 
            "creates": "/usr/local/src/redis-2.8.24/src/redis-server", 
            "executable": null, 
            "removes": null, 
            "stdin": null, 
            "warn": true
        }
    }, 
    "msg": "[Errno 2] No such file or directory: 'make'", 
    "rc": 2
}
	to retry, use: --limit @/Users/me/Developer/ansible/create-droplet.retry

PLAY RECAP **************************************************************************
xxx.xxx.xxx.xx             : ok=10   changed=7    unreachable=0    failed=1   
localhost                  : ok=4    changed=2    unreachable=0    failed=0   

That does not look too nice.

The OS is: Ubuntu 16.04.4 x64

Could this issue be related? #31

The funny thing is, when I install all the Debian dependencies for this Ubuntu version as well it works:

- name: install dependecies
  apt:
    name: "{{ item }}"
    state: latest
  with_items:
    - gcc
    - make
    - libc6-dev

- name: run redis role
  include_role:
    name: DavidWittman.redis
  vars:
    redis_bind: 127.0.0.1

I use DigitalOcean.

I had no issues when running this role directly against a fresh 16.04.4 instance on DigitalOcean. This might be a bug in Ansible or a side-effect of this role not yet switching to include_tasks.

Could you provide your Ansible version and playbook if possible?

Closing due to inactivity. Please feel free to reopen if you're still having issues.