成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

利用docker調(diào)試OpenStack服務(wù)

ysl_unh / 982人閱讀

摘要:而且恰巧接觸到了強(qiáng)大的,所以經(jīng)過(guò)不斷的摸索,我最終能夠利用非常方便對(duì)自己的代碼進(jìn)行調(diào)試。但是其他的組件應(yīng)該也是適用,特別是除外與不依賴于特定環(huán)境的組件。安裝目前支持,和。我們暫且先用后者做一個(gè)自己的鏡像,并以調(diào)試為例。

背景

從工作開(kāi)始就一直做openstack的開(kāi)發(fā),期間經(jīng)歷了做私有云的開(kāi)發(fā),到現(xiàn)在在做公有云網(wǎng)絡(luò)控制器的開(kāi)發(fā)。開(kāi)發(fā)調(diào)試的時(shí)候,最讓我頭疼的是不是調(diào)試代碼和找bug。而是將自己改動(dòng)的OpenStack部署到測(cè)試環(huán)境進(jìn)行測(cè)試,哪怕是一個(gè)簡(jiǎn)單的業(yè)務(wù)邏輯修改?;旧?0%以上的時(shí)間都花在了部署環(huán)境上。由于后面要開(kāi)發(fā)的業(yè)務(wù)邏輯實(shí)在太多,時(shí)間太短。而且恰巧接觸到了強(qiáng)大的docker,所以經(jīng)過(guò)不斷的摸索,我最終能夠利用docker非常方便對(duì)自己的Neutron代碼進(jìn)行調(diào)試。方便到什么程度?只要不與數(shù)據(jù)傳輸層相關(guān),neutron業(yè)務(wù)代碼的調(diào)試就如本地調(diào)試python腳本一樣。再也不需要部署任何環(huán)境,甚至都不需要安裝。由于我現(xiàn)在只做OpenStack neutron的開(kāi)發(fā),以下的介紹都基于neutron。但是其他的OpenStack組件應(yīng)該也是適用,特別是除nova外與不依賴于特定環(huán)境的組件。

基本思路

利用docker的共享volume將自己的neutron代碼庫(kù)映射到容器里面,在容器內(nèi)部再將這些代碼軟連接到python的dist-packages里面。如果這一步軟連接都想省掉,則可以將本地代碼庫(kù)直接映射到容器的dist-packages里面。由于容器內(nèi)的代碼與本地主機(jī)是共享的,所以本地的修改可以自動(dòng)應(yīng)用容器里面。這意味著,你用pycharm修改了neutron的一個(gè)業(yè)務(wù)邏輯,只要在容器里將對(duì)應(yīng)的neutron服務(wù)重啟即可。

開(kāi)發(fā)環(huán)境

目前我的開(kāi)發(fā)環(huán)境是基于mac os,開(kāi)發(fā)工具是pycharm。但是本套調(diào)試方案也可以基于windows和linux。

安裝docker

Dock目前支持windows,mac os和linux。其中windows server2016和linux都支持native模式。windows 10和mac os只能靠虛擬機(jī)里面的docker模式支持。以下是安裝方法:

Docker for Mac (macOS)

Docker for Windows (Microsoft Windows 10)

Ubuntu

CentOS

Windows native

注:windows的命令行是cmd,為了方便使用,建議下載一個(gè)方便的命令行工具,比如babun。

制作鏡像

制作docker鏡像可以通過(guò)dockerfile,也可以使用base鏡像自己根據(jù)需要安裝好必要的工具后,再commit成一個(gè)新的鏡像。我們暫且先用后者做一個(gè)自己的鏡像,并以調(diào)試neutron為例。

下載鏡像

docker pull ubuntu:latest

運(yùn)行容器

docker run -it -v /your_neutron_repo:/neutron ubuntu:latest bash

安裝必要的軟件
運(yùn)行容器后,我們安裝一些必要的軟件.比如pip,git,telnet等等你后面覺(jué)得你會(huì)在debug code用的上的一些工具。但是最重要的是要把neutron的依賴包給裝上。

cd /neutron;pip install -r requirements

保存鏡像

docker commit container_id neutron:latest
在容器里運(yùn)行neutron-server 啟動(dòng)容器
docker run -it -v /your_neutron/repo:/neutron/ -v /your_neutron_confs:/confs/ -p 9696:9696 --hostname server --name neutron_server neutron:lastest bash

-v選項(xiàng)是docker volume共享功能,可以將本地的文件夾映射到容器內(nèi)部,前面本地文件夾,后面是容器內(nèi)部的路徑.”your_neutron_confs"是neutron的配置文件(neutron庫(kù)里的etc/*.conf文件和*.ini文件),包含了mq的連接信息,mysql的連接信息等。之所把這個(gè)映射進(jìn)去是為了方便在外面修改這些配置文件,并將這些配置文件共享給其他的容器(比如dhcp-agent),

-p選項(xiàng)是docker的端口映射功能,由于neutron的api使用的9696端口,所以我們必須把容器內(nèi)部的9696端口映射出來(lái)。和-v一樣,前面的port是本地的port,后面的port是容器內(nèi)部的port

--hostname是指定容器的honstname

--name是指定容器的名稱

配置

進(jìn)入容器后,我們先用install一下neutron的代碼,這樣的話可以在bin下生成neutron-server等可執(zhí)行文件。

cd /neutron;python setup.py install

刪除dist-packages下面的neutron代碼,并做好軟連接:

rm -rf /usr/local/lib/python2.7/dist-packages/neutron
ln -s /neutron/neutron /usr/local/lib/python2.7/dist-packages/neutron
啟動(dòng)服務(wù)

上面的都完成后就可以啟動(dòng)neutron-server了。

neutron-server --config-file /confs/neutron.conf

至此,neutron-server就已經(jīng)起來(lái)了。而你的代碼修改只是在本地的pycharm里面做即可,修改代碼后,想調(diào)試,直接將容器的服務(wù)重啟下就可以了。

Tips

每次用完容器,可以不用刪除容器,下次直接start,再attach即可。這樣速度快,而且不用重新開(kāi)啟容器。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27043.html

相關(guān)文章

  • OpenStack 與 Rancher 融合的新玩法

    摘要:本次分享給大家?guī)?lái)與能夠融合使用的一些玩法。計(jì)算節(jié)點(diǎn)的進(jìn)程不能在運(yùn)行在中。部署的過(guò)程需要拉取很多鏡像,需要耐心的等待。之前的計(jì)劃應(yīng)該是在版會(huì)添加的支持,差不多就是今年月份左右。 OpenStack是開(kāi)源Iaas云的事實(shí)標(biāo)準(zhǔn),功能大而全,除了能管理虛機(jī)同時(shí)也能管理容器,OpenStack項(xiàng)目中的Magnum、Kuryr、Kolla、Murano、Nova-docker等都是與容器場(chǎng)景很不...

    android_c 評(píng)論0 收藏0
  • 虛擬化實(shí)踐

    摘要:本文并非虛擬化的科普文章,主要將我們?cè)谒接性茖?shí)踐過(guò)程中的一些思想和遇到的問(wèn)題拿出來(lái)跟大家討論分享。我們虛擬化實(shí)踐包含了傳統(tǒng)的基于協(xié)議的以及目前流行的。 引言 這里的虛擬化等于私有云。本文并非虛擬化的科普文章,主要將我們?cè)谒接性茖?shí)踐過(guò)程中的一些思想和遇到的問(wèn)題拿出來(lái)跟大家討論分享。我們虛擬化實(shí)踐包含了傳統(tǒng)的基于libvirt協(xié)議的KVM以及目前流行的docker。 為什么要虛擬化 虛擬化...

    newsning 評(píng)論0 收藏0
  • OpenStackDocker不能,ServerLess能決定云計(jì)算勝負(fù)嗎?

    摘要:彼時(shí),從虛擬化管理到公有云,熱鬧異常。雖然年才明顯放棄公有云的全面競(jìng)爭(zhēng),但在年決定發(fā)起和開(kāi)源項(xiàng)目是,不說(shuō)明確,至少已經(jīng)隱隱覺(jué)得肯定搞不過(guò)亞馬遜了。年前賣的多火,被視為虛擬主機(jī)的升級(jí)版。當(dāng)然不是新堆棧,而是傳統(tǒng)堆棧。 還記得在十多年前,SaaS鼻祖SalesForce喊出的口號(hào)『No Software』嗎?SalesForce在這個(gè)口號(hào)聲中開(kāi)創(chuàng)了SaaS行業(yè),并成為當(dāng)今市值460億美元的Saa...

    gitmilk 評(píng)論0 收藏0
  • 明與暗角力!開(kāi)源云平臺(tái)中的拼圖“玩具”

    摘要:開(kāi)源云平臺(tái)中的拼圖玩具對(duì)于云平臺(tái),如今基本就意味著開(kāi)源。明與暗角力開(kāi)源云平臺(tái)中的拼圖玩具為什么會(huì)產(chǎn)生這種混淆正如之前談到由兩大部分組成和的計(jì)算引擎。 開(kāi)源云平臺(tái)中的拼圖玩具?對(duì)于云平臺(tái),如今基本就意味著開(kāi)源。提及開(kāi)源技術(shù),著實(shí)在云計(jì)算和大數(shù)據(jù)下火起來(lái)。面對(duì)撲面而來(lái)的云服務(wù),無(wú)論是何種服務(wù)對(duì)于企業(yè)和用戶來(lái)說(shuō)都是熟悉的陌生人,熟悉是因?yàn)橹涝朴?jì)算的人都能說(shuō)出IaaS、PaaS和SaaS這幾個(gè)詞,...

    1treeS 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

ysl_unh

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<