upgrading apt packages, getting stderr: /bin/sh: apt-get: command not found

Hi,

Having just provisioned a Digital Ocean droplet, in my next pre_task, I proceed to attempt to upgrade apt packages:

apt: upgrade=full update_cache=yes

…using this command form…

ansible-playbook -i hosts basic.yml -vvvv

…I obtain the following error:

failed: [127.0.0.1] => {“cmd”: “apt-get update && apt-get install python-apt -y -q”, “failed”: true, “rc”: 127}
stderr: /bin/sh: apt-get: command not found
msg: /bin/sh: apt-get: command not found

Shelling into the newly-provisioned droplet as root, however, I am able to execute apt-get update normally.

Any thoughts?

Thanks,

Gallagher

Hi,

my two cents would be:

  1. Make sure you use absolute paths when invoking the “apt-get update” and “apt-get install” commands (whereis apt-get helps here…)
  2. Make sure you use the “shell” module instead of the “command” module since the shell module allows redirection and pipe and that kind of stuff
    Cheers
    Ralph

Hi Ralph,

He’s using the apt module not shelling out to apt directly.

The basic initial questions are “what versions of Ansible are you using” and “what is the OS version you are using”.

We can go from there.

Thanks!

…ahh sorry, my mistake. My eyes sort of went straight to the error. I should’ve grabbed a coffee before answering…

…I obtain the following error:

failed: [127.0.0.1] => {“cmd”: “apt-get update && apt-get install python-apt -y -q”, “failed”: true, “rc”: 127}
stderr: /bin/sh: apt-get: command not found
msg: /bin/sh: apt-get: command not found

Resolution: I had failed to use the add_host module and the command was failing because it was being run on the wrong machine, namely, localhost.

Hopeful Request: Can someone please point to an example of Digital Ocean provisioning plus configuration with Ansible? (I’ve seen examples of one or the other, not both.)

Thanks,

G