关闭

用pdb调试OpenStack

682人阅读 评论(0) 收藏 举报
分类:

点击打开链接

1.  创建文件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了

2. 若想更改已安装的组件,再./stack.sh即可


Pdb调试Havana过程

1.      修改代码

在需要调试的地方加入:

import pdb; pdb.set_trace()(以在nova/compute/api.py:get_all()中加入pdb为例)

2.      重启服务

在相应的screen中用ctrl+c终止当前进程,然后按向上的方向键,就会出现启动服务的命令,按enter服务就起来了。

3.      开始调试:


显示有两个screen

screen –x stack

进入如下界面:

最下一行表示,每一个进程都有一个screen。带*号的表示当前的screen,可以同时按下ctrl+a+8和ctrl+a+2分别前进和后退,来切换不同的screen.

4.      在0$中输入nova list;切换到4$ n-api:


5.      开始使用pdb进行调试



6. 物理机重启后,可使用rejoin-stack.sh启动openstack服务

7. ctrl+a+shift+", 可以选择screen , 主要就不需要通过ctrl + a  or ctrl + p 来回切换了:)。


参考资料

1.使用pdb调试openstack (How to debug openstackusing pdb )

http://blog.csdn.net/hackerain/article/details/8373597

2. linux screen 命令详解

http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html


[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. ADMIN_PASSWORD=password  
  2. MYSQL_PASSWORD=stackdb  
  3. RABBIT_PASSWORD=stackqueue  
  4. SERVICE_PASSWORD=$ADMIN_PASSWORD  
  5. #enable_service rally  
  6. SERVICE_TOKEN=password  
  7.   
  8. ## vnc  
  9.   
  10. #enable_service n-spice  
  11. #enable_service n-novnc  
  12. #enable_service n-xvnc  
  13.   
  14. #GIT_BASE=https://code.csdn.net  
  15. # Reclone each time  
  16. #RECLONE=yes  
  17. RECLONE=no  
  18.   
  19. ## For Keystone  
  20. KEYSTONE_TOKEN_FORMAT=PKI  
  21.   
  22. ## For Swift  
  23. #SWIFT_REPLICAS=1  
  24. #SWIFT_HASH=011688b44136573e209e  
  25.   
  26. # Enable Logging  
  27. LOGFILE=/opt/stack/logs/stack.sh.log  
  28. VERBOSE=True  
  29. LOG_COLOR=True  
  30. SCREEN_LOGDIR=/opt/stack/logs  
  31.   
  32. # Pre-requisite  
  33. ENABLED_SERVICES=rabbit,mysql,key  
  34.   
  35. ## If you want ZeroMQ instead of RabbitMQ (don't forget to un-declare 'rabbit' from the pre-requesite)  
  36. #ENABLED_SERVICES+=,-rabbit,-qpid,zeromq  
  37.   
  38. ## If you want Qpid instead of RabbitMQ (don't forget to un-declare 'rabbit' from the pre-requesite)  
  39. #ENABLED_SERVICES+=,-rabbit,-zeromq,qpid  
  40.   
  41. # Horizon (Dashboard UI) - (always use the trunk)  
  42. ENABLED_SERVICES+=,horizon  
  43. HORIZON_REPO=https://github.com/openstack/horizon  
  44. HORIZON_BRANCH=master  
  45.   
  46. # Nova - Compute Service  
  47. ENABLED_SERVICES+=,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch  
  48.   
  49. ######vnc  
  50. ENABLED_SERVICES+=,n-novnc,n-xvnc  
  51.   
  52.   
  53. #jjIMAGE_URLS+=",https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img"  
  54. #IMAGE_URLS+=",http://172.28.0.1/image/cirros-0.3.0-x86_64-disk.img"  
  55.   
  56.   
  57. # Nova Network - If you don't want to use Neutron and need a simple network setup (old good stuff!)  
  58. #ENABLED_SERVICES+=,n-net  
  59.   
  60. ## Nova Cells  
  61. #ENABLED_SERVICES+=,n-cell  
  62.   
  63. # Glance - Image Service  
  64. ENABLED_SERVICES+=,g-api,g-reg  
  65.   
  66. # Swift - Object Storage  
  67. #ENABLED_SERVICES+=,s-proxy,s-object,s-container,s-account  
  68.   
  69. # Neutron - Networking Service  
  70. # If Neutron is not declared the old good nova-network will be used  
  71. ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron  
  72.   
  73. ## Neutron - Load Balancing  
  74. ENABLED_SERVICES+=,q-lbaas  
  75.   
  76. ## Neutron - VPN as a Service  
  77. ENABLED_SERVICES+=,q-vpn  
  78.   
  79. ## Neutron - Firewall as a Service  
  80. ENABLED_SERVICES+=,q-fwaas  
  81.   
  82. # VLAN configuration  
  83. #Q_PLUGIN=ml2  
  84. #ENABLE_TENANT_VLANS=True  
  85.   
  86. # GRE tunnel configuration  
  87. Q_PLUGIN=ml2  
  88. ENABLE_TENANT_TUNNELS=True  
  89.   
  90. # VXLAN tunnel configuration  
  91. #Q_PLUGIN=ml2  
  92. #Q_ML2_TENANT_NETWORK_TYPE=vxlan     
  93.   
  94. # Cinder - Block Device Service  
  95. VOLUME_GROUP="cinder-volumes"  
  96. ENABLED_SERVICES+=,cinder,c-api,c-vol,c-sch,c-bak  
  97.   
  98. # Heat - Orchestration Service  
  99. ENABLED_SERVICES+=,heat,h-api,h-api-cfn,h-api-cw,h-eng  
  100. #IMAGE_URLS+=",http://fedorapeople.org/groups/heat/prebuilt-jeos-images/F17-x86_64-cfntools.qcow2"  
  101.   
  102. # Ceilometer - Metering Service (metering + alarming)  
  103. #ENABLED_SERVICES+=,ceilometer-acompute,ceilometer-acentral,ceilometer-collector,ceilometer-api  
  104. #ENABLED_SERVICES+=,ceilometer-alarm-notify,ceilometer-alarm-eval  
  105.   
  106. # Apache fronted for WSGI  
  107. #APACHE_ENABLED_SERVICES+=keystone,swift  
  108. APACHE_ENABLED_SERVICES+=keystone  
以上为localrc文件,用于devstack安装时的配置文件,用git clone一份devstack的源码,将localrc文件copy过去,然后./stack,就可以了。

1.  创建文件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了

2. 若想更改已安装的组件,再./stack.sh即可


Pdb调试Havana过程

1.      修改代码

在需要调试的地方加入:

import pdb; pdb.set_trace()(以在nova/compute/api.py:get_all()中加入pdb为例)

2.      重启服务

在相应的screen中用ctrl+c终止当前进程,然后按向上的方向键,就会出现启动服务的命令,按enter服务就起来了。

3.      开始调试:


显示有两个screen

screen –x stack

进入如下界面:

最下一行表示,每一个进程都有一个screen。带*号的表示当前的screen,可以同时按下ctrl+a+8和ctrl+a+2分别前进和后退,来切换不同的screen.

4.      在0$中输入nova list;切换到4$ n-api:


5.      开始使用pdb进行调试



6. 物理机重启后,可使用rejoin-stack.sh启动openstack服务

7. ctrl+a+shift+", 可以选择screen , 主要就不需要通过ctrl + a  or ctrl + p 来回切换了:)。


参考资料

1.使用pdb调试openstack (How to debug openstackusing pdb )

http://blog.csdn.net/hackerain/article/details/8373597

2. linux screen 命令详解

http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:99278次
    • 积分:2705
    • 等级:
    • 排名:第13821名
    • 原创:178篇
    • 转载:21篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论