glance-0.1.7 分析(八)—— glance/util.py 辅助工具

本文介绍了Glance项目中util.py文件的功能,包括元数据转换为HTTP头部信息的函数,如image_meta_to_http_headers等,以及从HTTP头部提取元数据的函数get_image_meta_from_headers等。

glance/util.py

    提供 glance 使用的一些工具函数

    def image_meta_to_http_headers(image_meta)

        将元数据解析填充到HTTP头中,填充是x-image-meta-property-和x-image-meta-

    def inject_image_meta_into_headers(response, image_meta)

        封装了image_meta_to_http_headers(image_meta),添加属性到response.headers

    def get_image_meta_from_headers(response)

        解析HTTP头,提取x-image-meta-property-和x-image-meta-信息

    def has_body(req)

        检测一个请求是否含有body
#修改成自己的ip openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.80.144 openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron true openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata openstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:123456@manager.node openstack-config --set /etc/nova/nova.conf api auth_strategy keystone openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://manager.node:5000/v3 openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers manager.node:11211 openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name default openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name default openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova openstack-config --set /etc/nova/nova.conf keystone_authtoken password nv123456 openstack-config --set /etc/nova/nova.conf vnc enabled true openstack-config --set /etc/nova/nova.conf vnc server_listen 0.0.0.0 openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address '$my_ip' openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://manager.node:6080/vnc_auto.html openstack-config --set /etc/nova/nova.conf glance api_servers http://manager.node:9292 openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp openstack-config --set /etc/nova/nova.conf placement region_name RegionOne openstack-config --set /etc/nova/nova.conf placement project_domain_name Default openstack-config --set /etc/nova/nova.conf placement project_name service openstack-config --set /etc/nova/nova.conf placement auth_type password openstack-config --set /etc/nova/nova.conf placement user_domain_name Default openstack-config --set /etc/nova/nova.conf placement auth_url http://manager.node:5000/v3 openstack-config --set /etc/nova/nova.conf placement username placement openstack-config --set /etc/nova/nova.conf placement password pm123456控制节点是manager.node,计算节点是master.node
06-21
### 配置 OpenStack Nova 服务的相关参数 在 OpenStack 中,`openstack-config` 命令可以用来设置配置文件中的参数。以下是针对 `Nova` 服务的各个参数配置方法: #### 配置 `my_ip` 通过以下命令设置 Nova 的 IP 地址: ```bash openstack-config --set /etc/nova/nova.conf DEFAULT my_ip <your-ip-address> ``` 这将指定 Nova 使用的 IP 地址[^1]。 #### 集成 Neutron 启用 Neutron 并设置防火墙驱动程序: ```bash openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron True openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver ``` 上述命令启用了 Neutron,并禁用了防火墙功能[^3]。 #### 设置认证策略 启用的 API 和认证策略可以通过以下命令进行配置: ```bash openstack-config --set /etc/nova/nova.conf api enabled_apis osapi_compute,metadata openstack-config --set /etc/nova/nova.conf api auth_strategy keystone ``` 这确保了仅允许经过 Keystone 认证的用户访问 Nova API[^4]。 #### 消息队列配置 设置消息队列的传输 URL: ```bash openstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://<user>:<password>@<rabbitmq-host>:5672/ ``` 此命令定义了 RabbitMQ 的连接信息[^3]。 #### Keystone 认证令牌 配置 Keystone 认证令牌相关参数: ```bash openstack-config --set /etc/nova/nova.conf keystone_authtoken www_authenticate_uri http://<controller-ip>:5000/v3 openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://<controller-ip>:5000/v3 openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers <controller-ip>:11211 openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova openstack-config --set /etc/nova/nova.conf keystone_authtoken password <nova-password> ``` 这些参数确保了 Nova 能够正确地与 Keystone 进行身份验证[^4]。 #### VNC 设置 配置 VNC 相关参数以支持远程控制台访问: ```bash openstack-config --set /etc/nova/nova.conf vnc enabled True openstack-config --set /etc/nova/nova.conf vnc vncserver_listen 0.0.0.0 openstack-config --set /etc/nova/nova.conf vnc vncserver_proxyclient_address <compute-node-ip> openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://<controller-ip>:6080/vnc_auto.html ``` 这为计算节点上的虚拟机实例启用了 VNC 控制台访问[^1]。 #### Glance API 配置 设置 Glance API 的地址: ```bash openstack-config --set /etc/nova/nova.conf glance api_servers http://<controller-ip>:9292 ``` 此命令指定了 Glance API 的地址,以便 Nova 可以获取镜像信息。 #### 并发控制 配置并发控制参数以限制线程和进程数量: ```bash openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp ``` 这设置了锁路径以避免多线程冲突[^2]。 #### Placement 服务配置 确保 Placement 服务被正确配置: ```bash openstack-config --set /etc/nova/nova.conf placement region_name RegionOne openstack-config --set /etc/nova/nova.conf placement project_domain_name Default openstack-config --set /etc/nova/nova.conf placement project_name service openstack-config --set /etc/nova/nova.conf placement auth_type password openstack-config --set /etc/nova/nova.conf placement auth_url http://<controller-ip>:5000/v3 openstack-config --set /etc/nova/nova.conf placement username placement openstack-config --set /etc/nova/nova.conf placement password <placement-password> ``` 这些参数确保了 Nova 能够与 Placement 服务交互以管理资源分配。 ### 示例代码 以下是一个完整的脚本示例,用于批量配置上述参数: ```bash #!/bin/bash # 定义变量 MY_IP="<your-ip-address>" RABBITMQ_USER="<user>" RABBITMQ_PASSWORD="<password>" RABBITMQ_HOST="<rabbitmq-host>" CONTROLLER_IP="<controller-ip>" NOVA_PASSWORD="<nova-password>" PLACEMENT_PASSWORD="<placement-password>" # 配置 my_ip openstack-config --set /etc/nova/nova.conf DEFAULT my_ip $MY_IP # 配置 Neutron openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron True openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver # 配置认证策略 openstack-config --set /etc/nova/nova.conf api enabled_apis osapi_compute,metadata openstack-config --set /etc/nova/nova.conf api auth_strategy keystone # 配置消息队列 openstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://$RABBITMQ_USER:$RABBITMQ_PASSWORD@$RABBITMQ_HOST:5672/ # 配置 Keystone 认证令牌 openstack-config --set /etc/nova/nova.conf keystone_authtoken www_authenticate_uri http://$CONTROLLER_IP:5000/v3 openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://$CONTROLLER_IP:5000/v3 openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers $CONTROLLER_IP:11211 openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name Default openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name Default openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova openstack-config --set /etc/nova/nova.conf keystone_authtoken password $NOVA_PASSWORD # 配置 VNC openstack-config --set /etc/nova/nova.conf vnc enabled True openstack-config --set /etc/nova/nova.conf vnc vncserver_listen 0.0.0.0 openstack-config --set /etc/nova/nova.conf vnc vncserver_proxyclient_address $MY_IP openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://$CONTROLLER_IP:6080/vnc_auto.html # 配置 Glance API openstack-config --set /etc/nova/nova.conf glance api_servers http://$CONTROLLER_IP:9292 # 配置并发控制 openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp # 配置 Placement openstack-config --set /etc/nova/nova.conf placement region_name RegionOne openstack-config --set /etc/nova/nova.conf placement project_domain_name Default openstack-config --set /etc/nova/nova.conf placement project_name service openstack-config --set /etc/nova/nova.conf placement auth_type password openstack-config --set /etc/nova/nova.conf placement auth_url http://$CONTROLLER_IP:5000/v3 openstack-config --set /etc/nova/nova.conf placement username placement openstack-config --set /etc/nova/nova.conf placement password $PLACEMENT_PASSWORD ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值