使用 Conda 管理 MacOS 上的 Ansible 環境
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 作為 Python 專案來管理 Ansible,以保持它的乾淨並與其他專案分開。請繼續閱讀,並瞭解如何安裝 Conda、建立新的虛擬環境、安裝 Ansible 並對其進行測試。
序幕
最近,我想學習 Ansible,所以我需要找到安裝它的最佳方法。
我通常對在我的日常工作站上安裝東西很謹慎。我尤其不喜歡對供應商的預設作業系統安裝應用手動更新(這是我多年作為 Unix 系統管理的習慣)。我真的很想使用 Python 3.7,但是 MacOS 的 Python 包是舊的 2.7,我不會安裝任何可能干擾核心 MacOS 系統的全域性 Python 包。
所以,我使用本地 Ubuntu 18.04 虛擬機器上開始了我的 Ansible 工作。這提供了真正意義上的的安全隔離,但我很快發現管理它是非常乏味的。所以我著手研究如何在本機 MacOS 上獲得一個靈活但獨立的 Ansible 系統。
由於 Ansible 基於 Python,Conda 似乎是理想的解決方案。
安裝 Conda
Conda 是一個開源軟體,它提供方便的包和環境管理功能。它可以幫助你管理多個版本的 Python、安裝軟體包依賴關係、執行升級和維護專案隔離。如果你手動管理 Python 虛擬環境,Conda 將有助於簡化和管理你的工作。瀏覽 Conda 文件可以瞭解更多細節。
我選擇了 Miniconda Python 3.7 安裝在我的工作站中,因為我想要最新的 Python 版本。無論選擇哪個版本,你都可以使用其他版本的 Python 安裝新的虛擬環境。
要安裝 Conda,請下載 PKG 格式的檔案,進行通常的雙擊,並選擇 “Install for me only” 選項。安裝在我的系統上佔用了大約 158 兆的空間。
安裝完成後,調出一個終端來檢視你有什麼了。你應該看到:
- 在你的家目錄中的
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 上下文更改為這個新的環境。它為 Python 及其包含的模組設定了正確的路徑。請注意,在 conda activate ansible-env
命令後,你的 shell 提示符會發生變化。
第三個命令不是必須的;它列出了安裝了哪些 Python 模組及其版本和其他資料。
你可以隨時使用 Conda 的 activate
命令切換到另一個虛擬環境。這將帶你回到基本環境:conda 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 工具匯出環境配置並在以後重新建立即可。
MacOS 上不包括 sshpass
程式。只有當你的 Ansible 工作要求你向 Ansible 提供 SSH 登入密碼時,才需要它。你可以在 SourceForge 上找到當前的 sshpass 原始碼。
最後,基礎的 Conda Python 模組列表可能缺少你工作所需的一些 Python 模組。如果你需要安裝一個模組,首選命令是 conda install package
,但是需要的話也可以使用 pip
,Conda 會識別安裝的模組。
結論
Ansible 是一個強大的自動化工具,值得我們去學習。Conda 是一個簡單有效的 Python 虛擬環境管理工具。
在你的 MacOS 環境中保持軟體安裝分離是保持日常工作環境的穩定性和健全性的謹慎方法。Conda 尤其有助於升級你的 Python 版本,將 Ansible 從其他專案中分離出來,並安全地使用 Ansible。
via: https://opensource.com/article/19/8/using-conda-ansible-administration-macos
作者:James Farrell 選題:lujun9972 譯者:heguangzhi 校對:wxy
相關文章
- conda管理python環境Python
- 使用 SSH 移植 Conda 環境
- conda環境配置
- macOS 上搭建Flutter開發環境MacFlutter開發環境
- 使用Conda建立NodeJS虛擬環境NodeJS
- pycharm切換conda環境PyCharm
- Ubuntu檢視conda環境,進入、退出環境Ubuntu
- 【Ansible】ansible容器學習環境搭建
- Linux Conda 使用activate無法進入環境,但list中有環境的路徑Linux
- 配置conda建立環境存放位置
- pycharm新增conda虛擬環境PyCharm
- ubuntu環境中安裝condaUbuntu
- 搭建Ansible實驗環境
- 使用conda&pip在指定環境下安裝需要的包
- Linux無管理員許可權,使用conda安裝jupyter的R語言環境LinuxR語言
- 牆內搭建高效的Conda開發環境開發環境
- 使用ansible搭建python多版本開發環境Python開發環境
- ansible 設定環境變數變數
- ansible設定環境變數變數
- macOS 安裝 LNMP 環境MacLNMP
- Haskell 在 macOS 下的環境搭建HaskellMac
- Anacodna之conda與 virtualenv對比使用教程,建立虛擬環境
- linux 上conda環境遷移時找不到python直譯器LinuxPython
- ansible-playbook 批量部署lnmp環境LNMP
- MacOS 下利用 pyenv 管理Python 版本和虛擬環境MacPython
- 使用Ansible管理WindowsWindows
- ansible批量管理服務 上
- windows10用conda搭建tensorflow的gpu環境WindowsGPU
- 2024版Pycharm匯入conda環境PyCharm
- conda環境變數+常用操作+配置映象源變數
- NVIDIA驅動,CUDA,CONDA環境安裝
- MacOS 配置 Flutter 開發環境MacFlutter開發環境
- MacOS 搭建 Tensorflow PyCharm 環境MacPyCharm
- MacOS PHP 開發環境配置MacPHP開發環境
- 如何在Windows、MacOS上搭建Flutter開發環境(詳細篇)WindowsMacFlutter開發環境
- Windows和Linux系統下的Conda環境遷移WindowsLinux
- Anaconda(conda)在windows安裝與環境配置Windows
- 原樣壓縮conda環境,並遷移環境至另一伺服器伺服器