作為個人學習筆記分享,有任何問題歡迎交流!
note:若是想要用pdb調試openstack,必須通過devstack安裝它。
1. 使用一般使用者(非root使用者),從github上擷取devstack代碼
git clonehttps://github.com/openstack-dev/devstack.git
2. 使用一般使用者運作
cd devstack; ./stack.sh
3.安裝過程中要求輸入一些密碼,這些密碼将記錄在localrc檔案中,該檔案還可以用來配置安裝的openstack元件,預設的隻會安裝glance,keystone,nova,horizon.
4. 建立檔案creds:
exportservice_token=xxx(3中輸入的密碼)
exportos_tenant_name=admin
exportos_username=admin
export os_password=xxx
exportos_auth_url=http://localhost:5000/v2.0/
exportservice_endpoint=http://localhost:35357/v2.0
source creds就可以使用openstack了
5. 若想更改已安裝的元件,再./stack.sh即可
1. 修改代碼
在需要調試的地方加入:
import pdb; pdb.set_trace()(以在nova/compute/api.py:get_all()中加入pdb為例)
2. 使用附錄上的腳步restart_stack.sh重新開機服務(該腳本隻針對預設安裝的元件有效)
3. 開始調試:
顯示有兩個screen
screen –x stack
進入如下界面:
最下一行表示,每一個程序都有一個screen。帶*号的表示目前的screen,可以同時按下ctrl+a+8和ctrl+a+2分别前進和後退,來切換不同的screen.
4. 在0$中輸入nova list;切換到4$ n-api:
5. 開始使用pdb進行調試
1. 在./restart_stack後,如果某個服務一直在waiting,說明這個服務運作到了你設定的斷點,那麼可以使用ctrl+z,把目前的進行切換到背景,然後screen –x stack,找到該服務對應的視窗進行調試,如果不需要在服務啟動時就進行調試的話,按‘c’,讓它繼續執行。之後ctrl+a +d退出screen,用jobs指令檢視背景運作的程序,fg+程序id, 就可以把./restart_stack.sh的背景程序調出來繼續執行了。
2. ./restart_stack後,horizon使用不了。