azure - 使用 Ansible AWX playbook 在 Azure Kubernetes 中运行的 ubuntu pod 中安装任何应用程序
问题描述
我正在尝试使用 Ansible Playbook 在 AKS 上运行的 ubuntu 容器中安装 python3。这是我在剧本中遵循的步骤。
- 使用 ubuntu 最新镜像创建一个 pod(使用 k8s 模块的部署文件)。
- 将 pod 名称添加到主机。
- 使用以下代码段在 ubuntu 容器上安装 python3。
我在 AWX 作业的控制台中收到此错误:
知道如何纠正这个吗?是否有另一种方法可以使用 ubuntu pod 的部署文件直接安装 python3 ?
解决方案
初步说明:
- 请编辑您的问题并将您的图像切换为代码块。我在上面的评论中解释了原因。
- 我在这里回答你的确切问题。但是除非你在一个特定的用例中(测试一个剧本/角色/集合,特定的开发环境......),在部署后在一个正在运行的容器中部署带有 ansible(或实际上其他任何东西)的软件在全球范围内是一个坏主意。构建一个包含您需要的所有工具的映像并直接部署它。
现在到你的问题。所有ansible 模块,除了和需要在目标机器上安装 python的唯一例外。看起来这个要求没有得到满足。raw
script
因此,您需要使用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 图像作为一个简单的示例。
推荐阅读
- .net-core - dotnet 测试未加载 resharper 测试适配器
- c++ - C++ 中的模板化成员变量
- python - 使用 Selenium Python 登录 Gmail 不起作用
- r - 在不使用唯一 ID 的情况下将列与来自不同数据帧的行匹配
- c# - 如何检测贝塞尔曲线是否与指定的椭圆相交?
- javascript - 在选项中隐藏美元符号字符之前的文本而不完全删除
- android - 尝试在片段之间传递数据时出现空指针异常
- angular - 为什么 get request 在 Postman 中可以正常工作,但在本地却不行?
- django-rest-framework - Django Rest 将 url 中的参数发送到查询集
- javascript - 我构建了我的 HOC,因此它可以被调用两次。在这种情况下如何连接 redux