摘要:恰好最近在學(xué)習(xí),決定使用來(lái)部署的多版本環(huán)境。說(shuō)明這里一個(gè)只能建立一個(gè)開(kāi)發(fā)環(huán)境,多個(gè)開(kāi)發(fā)環(huán)境需要執(zhí)行多次由于具有冪等性,多次相同的執(zhí)行并不會(huì)導(dǎo)致覆蓋。
背景
在學(xué)習(xí)python過(guò)程中,centos系統(tǒng)自帶的python版本比較滯后。在測(cè)試過(guò)程中,往往需要多個(gè)版本,但又不想影響系統(tǒng)自帶的版本;尤其是在學(xué)習(xí)django過(guò)程中,python版本切換更加頻繁,因此有了多版本切換需求。
在網(wǎng)上查了相關(guān)的文檔,起初寫(xiě)了幾個(gè)腳本,完成多版本的部署和切換,最終效果不太理想。
恰好最近在學(xué)習(xí)ansible,決定使用ansible來(lái)部署python的多版本環(huán)境。
更新說(shuō)明v1.0 基本實(shí)現(xiàn)了python多環(huán)境的部署;
v1.1 使用role重新組織了playbook,增加了卸載功能pyuninstall
v1.1.1 由于網(wǎng)絡(luò)問(wèn)題,安裝python往往過(guò)慢,增加使用本地安裝包進(jìn)行安裝,默認(rèn)并沒(méi)有啟用,可以修改use_local_python_targz: true啟用。
克隆并配置好對(duì)應(yīng)主機(jī)的ip后,直接運(yùn)行playbook,默認(rèn)會(huì)安裝python3.6.0;
在命令行運(yùn)行py360即可啟動(dòng)虛擬環(huán)境,運(yùn)行pyd即可關(guān)閉虛擬環(huán)境;
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組中加入你的主機(jī)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版本,所要安裝的版本已經(jīng)存在時(shí),安裝步驟會(huì)跳過(guò);
python_version_to_deploy 指向的python_version_to_install已經(jīng)存在或者正在被安裝,則會(huì)創(chuàng)建python的虛擬環(huán)境,別名為python_alias;實(shí)際上就是用哪個(gè)版本創(chuàng)建python虛擬開(kāi)發(fā)環(huán)境;
python_alias:創(chuàng)建虛擬環(huán)境的別名
ansible-play pyinstall.yml6 運(yùn)行playbook進(jìn)行卸載
ansible-play pyuninstall.yml
部署結(jié)束
使用方法前面部署過(guò)程中已經(jīng)添加了python_alias別名,可以直接使用別名來(lái)啟動(dòng)python虛擬環(huán)境。
說(shuō)明這里一個(gè)只能建立一個(gè)開(kāi)發(fā)環(huán)境,多個(gè)開(kāi)發(fā)環(huán)境需要執(zhí)行多次;由于ansible具有冪等性,多次相同的執(zhí)行并不會(huì)導(dǎo)致覆蓋。
目錄說(shuō)明(默認(rèn))/usr/local/pyenv 主目錄 /usr/local/pyenv/path.d/ 自定義的PATH變量聲明
此項(xiàng)目直接引用了以下兩個(gè)開(kāi)源項(xiàng)目
https://github.com/yyuu/pyenv...
https://github.com/yyuu/pyenv...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40767.html
摘要:行業(yè)內(nèi)各巨頭的自動(dòng)化運(yùn)維架構(gòu)都各種功能各種酷炫,如下圖,讓人可望不可及。面對(duì)這么多問(wèn)題,我就想啊,如何在低成本情況下實(shí)現(xiàn)自動(dòng)化運(yùn)維。自動(dòng)擴(kuò)縮容通過(guò)配置告警規(guī)則,調(diào)用相應(yīng)就可以實(shí)現(xiàn)實(shí)戰(zhàn)以上就是筆者關(guān)于自動(dòng)化運(yùn)維的一些實(shí)踐。 行業(yè)內(nèi)各巨頭的自動(dòng)化運(yùn)維架構(gòu)都各種功能各種酷炫,如下圖,讓人可望不可及?,F(xiàn)在最終的樣子大家都知道了,但問(wèn)題是如何根據(jù)自己團(tuán)隊(duì)當(dāng)前的情況一步步向那個(gè)目標(biāo)演進(jìn)?筆者所在團(tuán)隊(duì),三...
摘要:前言第一次接觸到是因?yàn)榭吹蕉鱾ゴ笊竦氖褂霉芾砟愕捻?xiàng)目,之前可能和大家的選擇類(lèi)似使用或者來(lái)管理的包環(huán)境。是針對(duì)的包的多版本管理,通過(guò)將包安裝到一個(gè)模塊來(lái)作為的包虛擬環(huán)境,通過(guò)切換目錄來(lái)實(shí)現(xiàn)不同包環(huán)境間的切換。 前言 第一次接觸到 pipenv 是因?yàn)榭吹紷董明偉大神的《使用pipenv管理你的項(xiàng)目》,之前可能和大家的選擇類(lèi)似使用 virtualenv 或者 pyenv 來(lái)管理 pyth...
摘要:該文章用于概述一個(gè)小型持續(xù)集成環(huán)境的搭建的方案什么是持續(xù)集成持續(xù)集成作為當(dāng)今軟件開(kāi)發(fā)實(shí)踐,可以簡(jiǎn)單理解為團(tuán)隊(duì)開(kāi)發(fā)相對(duì)頻繁的集成他們的工作,一般讓每個(gè)成員每天至少集成一次,而這回造成每天會(huì)有多次的版本發(fā)布。 該文章用于概述一個(gè)小型持續(xù)集成環(huán)境的搭建的方案 什么是持續(xù)集成? 持續(xù)集成作為當(dāng)今軟件開(kāi)發(fā)實(shí)踐,可以簡(jiǎn)單理解為團(tuán)隊(duì)開(kāi)發(fā)相對(duì)頻繁的集成他們的工作,一般讓每個(gè)成員每天至少集成一次,而這回...
摘要:在只有少量服務(wù)器的情況下,大多數(shù)運(yùn)維人員會(huì)選擇手動(dòng)更新,減少自動(dòng)化部署發(fā)布的開(kāi)發(fā)成本。五自動(dòng)化部署發(fā)布示例簡(jiǎn)要說(shuō)明下我們的項(xiàng)目如何使用實(shí)現(xiàn)了多個(gè)環(huán)境的自動(dòng)化部署發(fā)布。 showImg(https://segmentfault.com/img/bVJEL6?w=500&h=250); 一、面臨的問(wèn)題 一個(gè)完整的程序開(kāi)發(fā)流程少不了部署發(fā)布這個(gè)環(huán)節(jié),而部署發(fā)布是一個(gè)重復(fù)的過(guò)程,最基本的操作包...
閱讀 3609·2021-11-23 09:51
閱讀 2813·2021-11-23 09:51
閱讀 693·2021-10-11 10:59
閱讀 1693·2021-09-08 10:43
閱讀 3244·2021-09-08 09:36
閱讀 3306·2021-09-03 10:30
閱讀 3309·2021-08-21 14:08
閱讀 2214·2021-08-05 09:59