首页 > 解决方案 > 使用 Ansible AWX playbook 在 Azure Kubernetes 中运行的 ubuntu pod 中安装任何应用程序

问题描述

我正在尝试使用 Ansible Playbook 在 AKS 上运行的 ubuntu 容器中安装 python3。这是我在剧本中遵循的步骤。

  1. 使用 ubuntu 最新镜像创建一个 pod(使用 k8s 模块的部署文件)。
  2. 将 pod 名称添加到主机。
  3. 使用以下代码段在 ubuntu 容器上安装 python3。

在此处输入图像描述

我在 AWX 作业的控制台中收到此错误:

在此处输入图像描述

知道如何纠正这个吗?是否有另一种方法可以使用 ubuntu pod 的部署文件直接安装 python3 ?

标签: azureansibledevopsansible-awx

解决方案


初步说明:

  • 请编辑您的问题并将您的图像切换为代码块。我在上面的评论中解释了原因。
  • 我在这里回答你的确切问题。但是除非你在一个特定的用例中(测试一个剧本/角色/集合,特定的开发环境......),在部署后在一个正在运行的容器中部署带有 ansible(或实际上其他任何东西)的软件在全球范围内是一个坏主意。构建一个包含您需要的所有工具的映像并直接部署它。

现在到你的问题。所有ansible 模块,除了和需要在目标机器上安装 python的唯一例外。看起来这个要求没有得到满足。rawscript

因此,您需要使用raw专门为此而制作的模块(并且您应该将其用作一种良好做法)

---
- name: install ansible requirements with the low down dirty raw module
  raw: apt-get update && apt-get -y --no-install-recommends install python3

但是再一次,即使在测试用例中,您也应该构建和部署一个已经包含 ansible 要求的图像(即已经有 python)。您可以轻松地使用来自 dockerhub的任何官方 python 图像作为一个简单的示例。


推荐阅读