摘要:恰好最近在學習,決定使用來部署的多版本環境。說明這里一個只能建立一個開發環境,多個開發環境需要執行多次由于具有冪等性,多次相同的執行并不會導致覆蓋。
背景
在學習python過程中,centos系統自帶的python版本比較滯后。在測試過程中,往往需要多個版本,但又不想影響系統自帶的版本;尤其是在學習django過程中,python版本切換更加頻繁,因此有了多版本切換需求。
在網上查了相關的文檔,起初寫了幾個腳本,完成多版本的部署和切換,最終效果不太理想。
恰好最近在學習ansible,決定使用ansible來部署python的多版本環境。
更新說明v1.0 基本實現了python多環境的部署;
v1.1 使用role重新組織了playbook,增加了卸載功能pyuninstall
v1.1.1 由于網絡問題,安裝python往往過慢,增加使用本地安裝包進行安裝,默認并沒有啟用,可以修改use_local_python_targz: true啟用。
克隆并配置好對應主機的ip后,直接運行playbook,默認會安裝python3.6.0;
在命令行運行py360即可啟動虛擬環境,運行pyd即可關閉虛擬環境;
git clone https://git.coding.net/echohiyang/pyinstall.git
或者下載指定的版本
wget https://coding.net/u/echohiyang/p/pyinstall/git/archive/v1.1.1.zip3 修改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:創建虛擬環境的別名
ansible-play pyinstall.yml6 運行playbook進行卸載
ansible-play pyuninstall.yml
部署結束
使用方法前面部署過程中已經添加了python_alias別名,可以直接使用別名來啟動python虛擬環境。
說明這里一個只能建立一個開發環境,多個開發環境需要執行多次;由于ansible具有冪等性,多次相同的執行并不會導致覆蓋。
目錄說明(默認)/usr/local/pyenv 主目錄 /usr/local/pyenv/path.d/ 自定義的PATH變量聲明
此項目直接引用了以下兩個開源項目
https://github.com/yyuu/pyenv...
https://github.com/yyuu/pyenv...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40767.html
摘要:行業內各巨頭的自動化運維架構都各種功能各種酷炫,如下圖,讓人可望不可及。面對這么多問題,我就想啊,如何在低成本情況下實現自動化運維。自動擴縮容通過配置告警規則,調用相應就可以實現實戰以上就是筆者關于自動化運維的一些實踐。 行業內各巨頭的自動化運維架構都各種功能各種酷炫,如下圖,讓人可望不可及。現在最終的樣子大家都知道了,但問題是如何根據自己團隊當前的情況一步步向那個目標演進?筆者所在團隊,三...
摘要:前言第一次接觸到是因為看到董明偉大神的使用管理你的項目,之前可能和大家的選擇類似使用或者來管理的包環境。是針對的包的多版本管理,通過將包安裝到一個模塊來作為的包虛擬環境,通過切換目錄來實現不同包環境間的切換。 前言 第一次接觸到 pipenv 是因為看到@董明偉大神的《使用pipenv管理你的項目》,之前可能和大家的選擇類似使用 virtualenv 或者 pyenv 來管理 pyth...
摘要:該文章用于概述一個小型持續集成環境的搭建的方案什么是持續集成持續集成作為當今軟件開發實踐,可以簡單理解為團隊開發相對頻繁的集成他們的工作,一般讓每個成員每天至少集成一次,而這回造成每天會有多次的版本發布。 該文章用于概述一個小型持續集成環境的搭建的方案 什么是持續集成? 持續集成作為當今軟件開發實踐,可以簡單理解為團隊開發相對頻繁的集成他們的工作,一般讓每個成員每天至少集成一次,而這回...
摘要:在只有少量服務器的情況下,大多數運維人員會選擇手動更新,減少自動化部署發布的開發成本。五自動化部署發布示例簡要說明下我們的項目如何使用實現了多個環境的自動化部署發布。 showImg(https://segmentfault.com/img/bVJEL6?w=500&h=250); 一、面臨的問題 一個完整的程序開發流程少不了部署發布這個環節,而部署發布是一個重復的過程,最基本的操作包...
閱讀 3593·2021-11-23 09:51
閱讀 2795·2021-11-23 09:51
閱讀 676·2021-10-11 10:59
閱讀 1672·2021-09-08 10:43
閱讀 3223·2021-09-08 09:36
閱讀 3289·2021-09-03 10:30
閱讀 3293·2021-08-21 14:08
閱讀 2195·2021-08-05 09:59