conda macos_使用Conda在MacOS上管理Ansible环境

论坛 期权论坛 脚本     
匿名技术用户   2021-1-6 18:10   24   0

conda macos

如果您是使用MacOS的Python开发人员并参与Ansible管理,则可能要使用Conda软件包管理器将Ansible的工作与核心OS和其他本地项目分开。

Ansible基于Python。 不需要Conda在MacOS上运行Ansible,但这确实使管理Python版本和程序包依赖关系更加容易。 这使您可以在MacOS上使用升级的Python版本,并使系统,Ansible和其他编程项目之间的Python软件包依赖关系保持独立。

还有其他方法可以在MacOS上安装Ansible。 您可以使用Homebrew ,但是如果您从事Python开发(或Ansible开发),则可能会发现在Python虚拟环境中管理Ansible可以减少一些混乱。 我发现这比较简单; 与其尝试将Python版本和依赖项加载到系统中或/ usr / local中 ,Conda可以帮助我将Ansible所需的所有内容都存储到虚拟环境中,并使它们与其他项目完全分开。

本文重点介绍如何使用Conda将Ansible作为Python项目进行管理,以使其保持清洁并与其他项目分开。 继续阅读以了解如何安装Conda,创建新的虚拟环境,安装Ansible并进行测试。

序幕

最近,我想学习Ansible ,所以我需要找出安装它的最佳方法。

因此,我使用本地Ubuntu 18.04虚拟机开始了Ansible工作。 这提供了真正的安全隔离级别,但是我很快发现管理它很乏味。 我着手研究如何在本机MacOS上获得灵活但隔离的Ansible系统。

由于Ansible基于Python,因此Conda似乎是理想的解决方案。

安装Conda

Conda是一个开放源代码实用程序,提供了便捷的打包和环境管理功能。 它可以帮助您管理Python的多个版本,安装程序包依赖性,执行升级以及维护项目隔离。 如果您手动管理Python虚拟环境,Conda将帮助您简化和管理工作。 继续浏览Conda文档以获取所有详细信息。

我选择在工作站上安装Miniconda Python 3.7,因为我想要最新的Python版本。 无论选择哪个版本,您都可以始终使用其他版本的Python安装新的虚拟环境。

要安装Conda,请下载PKG格式文件,双击鼠标,然后选择“仅为我安装”选项。 我的系统安装了大约158MB的空间。

安装后,打开终端以查看您所拥有的。 您应该看到:

  • 家里有一个新的miniconda3目录
  • shell提示符已修改为在单词“(base)”之前加上
  • .bash_profile更新了Conda特定设置

现在已经安装了基础,您将拥有第一个Python虚拟环境。 运行常规的Python版本检查应证明这一点,并且您的PATH将指向新位置:


   
( base ) $ which python
/ Users / jfarrell / miniconda3 / bin / python
( base ) $ python --version
Python 3.7.1

现在已经安装了Conda,下一步是设置虚拟环境,然后安装并运行Ansible。

为Ansible创建虚拟环境

我想将Ansible与其他Python项目分开,所以我创建了一个新的虚拟环境并切换到该环境:


   
( base ) $ conda create --name ansible-env --clone base
( base ) $ conda activate ansible-env
( ansible-env ) $ conda env list

第一个命令将Conda库克隆到名为ansible-env的新虚拟环境中。 该克隆引入了Python 3.7版本和一堆默认的Python模块,您可以根据需要添加,删除或升级这些模块。

第二个命令将shell上下文更改为这个新的ansible-env环境。 它为Python及其包含的模块设置了正确的路径。 请注意,在conda激活ansible-env命令之后,您的shell提示符就会更改。

不需要第三条命令; 它列出了安装了哪些Python模块及其版本和其他数据。

您始终可以使用Conda的activate命令从虚拟环境切换到另一个环境。 这将带您回到基础: conda activate base

安装Ansible

有多种安装Ansible的方法,但使用Conda会将Ansible版本和所有所需的依赖项打包在一个地方。 Conda提供了灵活性,既可以使所有内容分离,又可以根据需要添加其他新环境(如我稍后将演示的那样)。

要安装相对较新版本的Ansible,请使用:


   
( base ) $ conda activate ansible-env
( ansible-env ) $ conda install -c conda-forge ansible

由于Ansible不属于Conda的默认频道,因此-c用于从备用频道搜索和安装。 现在,Ansible已安装到ansible -env虚拟环境中并可以使用。

使用Ansible

现在您已经安装了Conda虚拟环境,就可以使用它了。 首先,确保要控制的节点已将工作站的SSH密钥安装到正确的用户帐户。

调出一个新的shell并运行一些基本的Ansible命令:


   
( base ) $ conda activate ansible-env
( ansible-env ) $ ansible --version
ansible 2.8.1
config file = None
configured module search path = [ '/Users/jfarrell/.ansible/plugins/modules' , '/usr/share/ansible/plugins/modules' ]
ansible python module location = / Users / jfarrell / miniconda3 / envs / ansibleTest / lib / python3.7 / site-packages / ansible
executable location = / Users / jfarrell / miniconda3 / envs / ansibleTest / bin / ansible
python version = 3.7.1 ( default, Dec 14 2018 , 13 : 28 : 58 ) [ Clang 4.0.1 ( tags / RELEASE_401 / final ) ]
( ansible-env ) $ ansible all -m ping -u ansible
192.168.99.200 | SUCCESS = > {
"ansible_facts" : {
"discovered_interpreter_python" : "/usr/bin/python"
} ,
"changed" : false ,
"ping" : "pong"
}

现在Ansible可以使用了,您可以将剧本从源代码控制中拉出来,然后从MacOS工作站开始使用它们。

为Ansible开发克隆新的Ansible

这部分纯粹是可选的。 仅当您希望其他虚拟环境修改Ansible或安全地尝试可疑的Python模块时才需要它。 您可以使用以下命令将您的主要Ansible环境克隆到开发副本中:


   
( ansible-env ) $ conda create --name ansible-dev --clone ansible-env
( ansible-env ) $ conda activte ansible-dev
( ansible-dev ) $

要注意的问题

有时候,您可能会遇到Conda的麻烦。 通常,您可以使用以下方法删除不良环境:


   
$ conda activate base
$ conda remove --name ansible-dev --all

如果遇到无法解决的错误,通常可以通过在/ miniconda3 / envs中找到环境并删除整个目录来直接删除该环境。 如果基础损坏,则可以删除整个/ miniconda3目录,然后从PKG文件中重新安装它。 只要确保保留/ miniconda3 / envs中所需的任何环境,或使用Conda工具转储环境配置并在以后重新创建即可。

sshpass程序不包含在MacOS中。 仅当您的Ansible工作要求您向Ansible提供SSH登录密码时才需要它。 您可以在SourceForge上找到当前的sshpass源

最后,基本的Conda Python模块列表可能缺少一些工作所需的Python模块。 如果需要安装,则首选conda install <package>命令,但可以在需要的地方使用pip ,Conda会识别安装模块。

结论

Ansible是功能强大的自动化实用程序,值得您全力学习。 Conda是一种简单有效的Python虚拟环境管理工具。

在MacOS环境中保持软件安装分开是一种谨慎的方法,可以在日常工作环境中保持稳定性和理智性。 Conda对升级您的Python版本,将Ansible与其他项目分开以及对Ansible进行安全破解特别有用。

翻译自: https://opensource.com/article/19/8/using-conda-ansible-administration-macos

conda macos

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP