使用ansible搭建python多版本開發環境

背景

在學習python過程當中,centos系統自帶的python版本比較滯後。在測試過程當中,每每須要多個版本,但又不想影響系統自帶的版本;尤爲是在學習django過程當中,python版本切換更加頻繁,所以有了多版本切換需求。python

在網上查了相關的文檔,起初寫了幾個腳本,完成多版本的部署和切換,最終效果不太理想。git

剛好最近在學習ansible,決定使用ansible來部署python的多版本環境。github

更新說明

v1.0 基本實現了python多環境的部署;
v1.1 使用role從新組織了playbook,增長了卸載功能pyuninstall
v1.1.1 因爲網絡問題,安裝python每每過慢,增長使用本地安裝包進行安裝,默認並無啓用,能夠修改use_local_python_targz: true啓用。django

快速使用

克隆並配置好對應主機的ip後,直接運行playbook,默認會安裝python3.6.0;
在命令行運行py360便可啓動虛擬環境,運行pyd便可關閉虛擬環境;centos

部署方法

1 確保你所使用的環境已經安裝的ansible,並能夠正常使用;遠程執行的密鑰已經添加;

2 下載playbook

git clone https://git.coding.net/echohiyang/pyinstall.git

或者下載指定的版本網絡

wget https://coding.net/u/echohiyang/p/pyinstall/git/archive/v1.1.1.zip

3 修改hosts文件,在pythonserver組中加入你的主機ip

4 修改變量 python版本 roles/pyinstall/vars/main.yml

python_version_to_install: 3.6.0
python_version: 3.6.0
python_alias: py360

python_version_to_install 將要安裝的python版本,所要安裝的版本已經存在時,安裝步驟會跳過;
python_version_to_deploy 指向的python_version_to_install已經存在或者正在被安裝,則會建立python的虛擬環境,別名爲python_alias;實際上就是用哪一個版本建立python虛擬開發環境;
python_alias:建立虛擬環境的別名學習

5 運行playbook進行安裝

ansible-play pyinstall.yml

6 運行playbook進行卸載

ansible-play pyuninstall.yml

部署結束測試

使用方法

前面部署過程當中已經添加了python_alias別名,能夠直接使用別名來啓動python虛擬環境。.net

說明

這裏一個只能創建一個開發環境,多個開發環境須要執行屢次;因爲ansible具備冪等性,屢次相同的執行並不會致使覆蓋。命令行

目錄說明(默認)

/usr/local/pyenv            主目錄
/usr/local/pyenv/path.d/    自定義的PATH變量

聲明

此項目直接引用瞭如下兩個開源項目
https://github.com/yyuu/pyenv...
https://github.com/yyuu/pyenv...

相關文章
相關標籤/搜索