在Amazon Linux AMI中运行Ansible时出现”No such file or directory”错误

35次阅读
没有评论

问题描述

在Amazon Linux AMI实例中尝试运行以下命令时遇到了错误:

- name: Run docker
  shell: systemctl enable docker && systemctl start docker

他收到了以下错误消息:

"stderr": "/bin/sh: systemctl: No such file or directory"

他已经尝试使用command、Ansible systemd模块和/usr/bin/systemctl,但仍然无法解决问题。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

解决方案1

Amazon Linux AMI默认不支持systemctl命令,因为它使用的是init系统而不是systemd。要在Amazon Linux AMI中启用和启动Docker服务,可以使用以下步骤:
1. 使用yum命令安装Docker:

sudo yum install docker -y
  1. 启用Docker服务:
sudo service docker start
  1. 将当前用户添加到docker组中,以便无需使用sudo运行Docker命令:
sudo usermod -aG docker $USER
  1. 重新登录以使用户组更改生效。

解决方案2

如果你需要在Amazon Linux AMI中使用systemctl命令,你可以考虑使用其他AMI,如Ubuntu。以下是在Ubuntu中安装和启动Docker服务的步骤:
1. 使用apt命令安装Docker:

sudo apt update
sudo apt install docker.io -y
  1. 启动Docker服务:
sudo systemctl start docker
  1. 将当前用户添加到docker组中,以便无需使用sudo运行Docker命令:
sudo usermod -aG docker $USER
  1. 重新登录以使用户组更改生效。

解决方案3

根据最佳回答,将Ubuntu镜像更改为ansible-runner可能是解决问题的另一种方法。你可以尝试使用ansible-runner镜像来运行你的Ansible任务。

以上是在Amazon Linux AMI中解决”No such file or directory”错误的几种方法。根据你的需求和环境选择适合你的解决方案。

希望这些解决方案能帮助到你!

正文完