【发布时间】:2021-01-22 17:03:36
【问题描述】:
我目前正在尝试设置一个“自动化服务器”,以便每天在我们的本地基础设施中使用它。
我的需要是在与不同用户共享的 Debian 10 虚拟机上使用 Ansible 2.10 + AWX,所以大家应该在自己的配置文件下使用 Ansible 和 CLI,以及在 web 上使用 AWX。
(我在使用 pywinrm 库和 kerberos 客户端时遇到问题,所以我希望尽可能多地使用 Debian 10 + Ansible 2.10)
经过多次试验,我对如何正确处理 Ansible 以便在我的 VM 上进行协作使用感到困惑。
第一次尝试 - Ansible 与 pip3 :
Ansible 官方文档强烈反对使用 pip3 全局安装 Ansible,因此我们必须使用 pip3 install ansible --user
这样做,这意味着bin/ 文件夹链接到我的主页配置文件,也就是如果我删除我的配置文件,没有人可以再使用 ansible。
第二次尝试 - Ansible 在 virtualenv 中运行:
应该是隔离它的最佳解决方案(使用 python 库等......),所以我在/home/ansible_venv/ 中创建了我的虚拟环境,与必须访问 ansible 的人共享,然后将 ansible bin 文件夹链接到$PATH 设置它对每个用户可用。
这似乎是协作使用的完美解决方案,因为每个用户都可以管理他的剧本、图书馆...
...直到我安装需要安装 ansible-playbook cli 的 AWX。
这是我需要的一些建议:
- 你们如何管理与不同用户共享的单个 VM 上的协作使用?不共享 Ansible 环境会更好吗?
- 为我的服务器中的每个用户安装 Ansible 2.10 的最佳方式应该是什么?
- 我该如何处理其中的 AWX 安装?
非常感谢!
【问题讨论】:
-
在
first try中我真的不明白你的意思。pip对于没有系统目录写入权限的任何人,默认情况下将下拉到用户安装。为用户安装会将文件放在~/.local/bin中,这意味着您是默认情况下唯一访问它的人。然后每个用户都应该pip install自己的版本。如果您删除您的帐户,所有其他用户仍然可以使用他们的版本。 -
是的,这就是为什么我说我的第一次尝试。我的目标是为多用户环境设置 Ansible(为 X 用户安装 1 个 ansible)我想避免 1 个安装 = 1 个用户。
-
然后全局安装 pip 是一个选项。文档并没有说不要这样做,只是警告您应该知道自己在做什么。我在 debian 和 centos 上使用了多年,没有任何特别的问题,特别是因为盒子只是用来做这个的。并且 awx 在一组 docker 容器中的同一个盒子上运行(这是我知道的唯一支持的安装方法)。
-
这是另一种选择,但它吓坏了我,因为我不知道如果我在全球范围内安装它会发生什么变化。我应该试一试,让我们在更新后的几个月内看看;)(肯定有之前的快照!)
标签: ansible python-3.7 ansible-awx