在 Debian 10 上安装 Ansible 2.10 和 AWX 的建议

问题描述

我目前正在尝试设置一个自动化服务器”,以便每天在我们的内部部署基础架构中使用它。

我的需求是在与不同用户共享的 Debian 10 虚拟机上使用 Ansible 2.10 + AWX,所以人们应该在他们自己的配置文件下使用 Ansible 和 CLI,以及网络上的 AWX。

(我在使用 pywinrm 库和 kerberos 客户端时遇到问题,所以我想尽可能多地使用 Debian 10 + Ansible 2.10)

经过多次试验,我对如何正确处理 Ansible 以在我的 VM 上进行协作使用感到困惑。

第一次尝试 - 使用 pip3 进行 Ansible:

Ansible 官方文档强烈建议不要使用 pip3 全局安装 Ansible,因此我们必须使用 pip3 install ansible --user

这样做,这意味着 bin/ 文件链接到我的个人资料,也就是如果我删除我的个人资料,没有人可以再使用 ansible。

第二次尝试 - 在 vi​​rtualenv 中运行 Ansible :

应该是隔离它的最好的解决方案(使用 python 库等等...),所以我在 /home/ansible_venv/ 中创建了我的虚拟环境,与必须访问 ansible 的人共享,然后链接 ansible bin文件夹到 $PATH 以设置它对每个用户可用。

这似乎是协作使用的完美解决方案,因为每个用户都可以管理他的剧本、图书馆......

...直到我安装需要 ansible-playbook cli 的 AWX。

这是我需要的一些建议:

  • 你们如何管理与不同用户共享的单个 VM 上的协作使用?不共享 Ansible 环境会更好吗?
  • 为服务器中的每个用户安装 Ansible 2.10 的最佳方式是什么?
  • 我该如何处理其中的 AWX 安装?

非常感谢!

解决方法

看到你的问题陈述,我能想到的最快的补救方法是使用容器。

  • 在容器中运行 Ansible AWX; https://hub.docker.com/r/ansible/awx
  • 要求用户使用 Ansible docker 镜像来运行 playbook;类似于 https://github.com/initanmol/ansible 的东西。
    • 轻松管理主机 m/c 上的 Ansible 安装。
    • 用户可以运行 docker run 命令从他们的帐户执行他们的剧本。您只需将它们添加到 docker 组。