Conda将Ansible所需的一切收集到一个虚拟环境中,并将其与其他项目分开。如果您是使用MacOS并参与Ansible管理的Python开发人员,您可能希望使用Conda包管理器将Ansible工作与核心操作系统和其他本地项目分开。Ansible基于Python。Ansible在MacOS上工作不需要Conda,但它确实让您更容易管理Python版本和包依赖项。这允许您在MacOS上使用升级版本的Python,并在您的系统中,在Ansible和其他编程项目之间保持Python包的依赖关系彼此分离。还有其他方法可以在MacOS上安装Ansible。您可以使用Homebrew,但如果您对Python开发(或与此相关的Ansible开发)感兴趣,您可能会发现在单独的Python虚拟环境中管理Ansible不会那么令人困惑。我觉得这更容易;与其尝试将Python版本和依赖项加载到系统或/usr/local目录中,不如使用Conda帮助我将Ansible所需的一切收集到一个虚拟环境中,并将其与其他项目完全分开。本文重点介绍如何使用Conda将Ansible作为Python项目进行管理,以保持其干净并与其他项目分离。继续阅读并了解如何安装Conda、创建新的虚拟环境、安装Ansible并进行测试。Prologue最近想学习Ansible,所以需要找到最好的安装方式。我通常对在我的日常工作站上安装东西持谨慎态度。我特别不喜欢对供应商的默认操作系统安装进行手动更新(这是我多年来作为Unix系统管理员的习惯)。我真的很想使用Python3.7,但MacOSPython包是旧的2.7,我不会安装任何可能干扰核心MacOS系统的全局Python包。因此,我在本地Ubuntu18.04虚拟机上开始了我的Ansible工作。这提供了真正意义上的安全隔离,但我很快发现管理起来很乏味。所以我开始研究如何在原生MacOS上获得一个灵活但独立的Ansible系统。由于Ansible基于Python,Conda似乎是理想的解决方案。安装CondaConda是一款开源软件,提供便捷的包和环境管理功能。它可以帮助您管理多个版本的Python、安装包依赖项、执行升级和维护项目隔离。如果您手动管理Python虚拟环境,Conda将帮助简化和管理您的工作。浏览Conda文档以获取更多详细信息。我选择MinicondaPython3.7安装在我的工作站上,因为我想要最新的Python版本。无论选择哪个版本,都可以使用其他版本的Python安装新的虚拟环境。要安装Conda,请下载PKG格式的文件,按常规双击,然后选择“只为我安装”选项。安装在我的系统上占用了大约158兆字节的空间。安装后,调出一个终端来查看你有什么。您应该看到:您的主目录中的miniconda3目录shell提示已更改为(base).bash_profile文件已更新为一些特定于Conda的设置现在base已安装,您拥有了第一个Python虚拟环境。运行Python版本检查将证明这一点,并且您的PATH将指向新位置:(base)$whichpython/Users/jfarrell/miniconda3/bin/python(base)$python--versionPython3.7.1Condaisnowinstalled,下一步是设置一个虚拟环境,然后启动并运行Ansible。为Ansible创建一个虚拟环境我想将Ansible与我的其他Python项目分开,所以我创建了一个新的虚拟环境并切换到它:(base)$condacreate--nameansible-env--clonebase(base)$condaactivateansible-env(ansible-env)$condaenvlist第一个命令将Conda存储库克隆到一个名为ansible-env的新虚拟环境中。克隆引入了Python3.7版本和一组默认的Python模块,您可以根据需要添加、删除或升级这些模块。第二个命令将shell上下文更改为这个新环境。它为Python及其包含的模块设置正确的路径。请注意,您的shell提示符在condaactivateansible-env命令后会发生变化。第三个命令不是必须的;它列出了安装了哪些Python模块、它们的版本和其他数据。您可以随时使用Conda的激活命令切换到另一个虚拟环境。这将带您回到基础环境:condabase。安装Ansible有多种方法可以安装Ansible,但使用Conda可以让您将Ansible版本和所有必需的依赖项打包在一个地方。Conda提供了将所有内容分开并根据需要添加其他新环境的灵活性(我将在稍后演示)。要安装相对较新版本的Ansible,请使用:从备用频道搜索和安装安装。Ansible现已安装到ansible-env虚拟环境中,可以使用了。使用Ansible现在您已经安装了Conda虚拟环境,您可以使用它了。首先,确保您要控制的节点已将工作站的SSH密钥安装到正确的用户帐户。打开一个新的shell并运行一些基本的Ansible命令:(base)$condaactivateansible-env(ansible-env)$ansible--versionansible2.8.1configfile=Noneconfiguredmodulesearchpath=['/Users/jfarrell/.ansible/plugins/modules','/usr/share/ansible/plugins/modules']ansiblepython模块位置=/Users/jfarrell/miniconda3/envs/ansibleTest/lib/python3.7/site-packages/ansibleexecutablelocation=/Users/jfarrell/miniconda3/envs/ansibleTest/bin/ansiblepythonversion=3.7.1(default,Dec142018,13:28:58)[Clang4.0.1(tags/RELEASE_401/final)](ansible-env)$ansibleall-mping-uansible192.168.99.200|SUCCESS=>{"ansible_facts":{"discovered_interpreter_python":"/usr/bin/python"},"changed":false,"ping":"pong"}现在Ansible正在运行,您可以在控制台中放松并从您的MacOS工作站使用它们。关于为Ansible开发克隆新Ansible的部分完全是可选的;只有当你想要额外的虚拟环境来修改Ansible或安全地使用有问题的Python模块时才需要它。您可以通过以下方式将主要的Ansible环境克隆到开发副本中:需要注意的问题有时您可能会在使用Conda时遇到问题。您通常可以通过以下方式删除不需要的环境:$condaactivatebase$condaremove--nameansible-dev--all如果您遇到未解决的错误,您通常可以在~/miniconda3/envs中找到环境并删除整个目录以删除直接环境。如果基础环境损坏,可以删除整个~/miniconda3并从PKG文件重新安装。只需确保保留~/miniconda3/envs,或使用Conda工具导出环境配置并稍后重新创建。MacOS中不包含sshpass程序。仅当您的Ansible作业要求您向Ansible提供SSH登录密码时才需要它。您可以在SourceForge上找到当前的sshpass源代码。最后,基本的CondaPython模块列表可能缺少您工作所需的一些Python模块。如果需要安装模块,首选命令是condainstallpackage,但如果需要也可以使用pip,Conda会识别安装的模块。结论Ansible是一个强大的自动化工具,值得学习。Conda是一款简单有效的Python虚拟环境管理工具。在MacOS环境中保持软件安装独立是保持日常工作环境的稳定性和健全性的谨慎方法。Conda特别有助于升级您的Python版本,将Ansible与其他项目分开,并安全地使用Ansible。
