分类 编程 下的文章

我们经常在开源的一些Python代码中看到 *args**kwargs 这样函数参数定义, 到底他们是含义? 又如何使用呢?

在回答这个问题前,我们先来介绍下, Python 参数传递的方式.

函数定义中的 *args**kwargs

在Python中,参数总是通过赋值传递的, 俗称值传递, 在默认情况下, 参数是通过其位置进行匹配的, 但是Python也是支持关键字的参数匹配形式的.

按位置进行匹配

这是Python的默认行为,通过其位置进行匹配, 从左到右,必须精确的传递和函数头部参数名一样多的参数。这种方式我们平常用的最多,比如:

def foo(a, b, c):
    print(a, b, c)

foo(1, 2, 3)

- 阅读剩余部分 -

使用OpenStack计算服务来托管和管理云计算系统。OpenStack计算服务是基础设施即服务(IaaS)系统的主要部分,模块主要由Python实现。

OpenStack计算组件请求OpenStack Identity服务进行认证;请求OpenStack Image服务提供磁盘镜像;为OpenStack dashboard提供用户与管理员接口。磁盘镜像访问限制在项目与用户上;配额以每个项目进行设定(例如,每个项目下可以创建多少实例)。OpenStack组件可以在标准硬件上水平大规模扩展,并且下载磁盘镜像启动虚拟机实例。

OpenStack计算服务由下列组件所构成:

nova-api 服务

接收和响应来自最终用户的计算API请求。此服务支持OpenStack计算服务API,Amazon EC2 API,以及特殊的管理API用于赋予用户做一些管理的操作。它会强制实施一些规则,发起多数的编排活动,例如运行一个实例。

nova-api-metadata 服务

接受来自虚拟机发送的元数据请求。nova-api-metadata服务一般在安装nova-network服务的多主机模式下使用。更详细的信息,请参考OpenStack管理员手册中的链接Metadata servicein the OpenStack Administrator Guide。

- 阅读剩余部分 -

这个部分将描述如何在控制节点上安装和配置 Compute 服务,即 nova。

先决条件

在安装和配置 Compute 服务前,你必须创建数据库服务的凭据以及 API endpoints。

  1. 为了创建数据库,必须完成这些步骤:

    • 用数据库连接客户端以 root 用户连接到数据库服务器:
    $ mysql -u root -p
    • 创建 nova_api 和 nova 数据库:
    CREATE DATABASE nova_api;
    CREATE DATABASE nova;

- 阅读剩余部分 -

这部分描述如何在计算节点上安装并配置计算服务。计算服务支持多种虚拟化方式 hypervisors to deploy instances or VMs. For simplicity, this configuration uses the QEMU hypervisor with the :term:KVM <kernel-based VM (KVM)>计算节点需支持对虚拟化的硬件加速。对于传统的硬件,本配置使用generic qumu的虚拟化方式。你可以根据这些说明进行细微的调整,或者使用额外的计算节点来横向扩展你的环境。

这部分假设你已经一步一步的按照之前的向导配置好了第一个计算节点。如果你想要配置额外的计算节点,像:ref:example architectures <overview-example-architectures>部分中第一个计算节点那样准备好。每个额外的计算节点都需要一个唯一的IP地址。

安装并配置组件

默认配置文件在各发行版本中可能不同。你可能需要添加这些部分,选项而不是修改已经存在的部分和选项。另外,在配置片段中的省略号(...)表示默认的配置选项你应该保留。
  1. 安装软件包:
# yum install openstack-nova-compute

- 阅读剩余部分 -

平常我们都会上网上去下载一些操作系统的ISO文件或者一些其他官方软件,为了确保和官网下载的文件严格一致,也避免被篡改,我们需要检验文件的完整性.
通常官方在发布时,都会对文件生成MD5的Hash校验码,以便使用, 对与各个Linux发行版本,一般都集成有 md5sum 生成和校验工具, 该程序是 coreutils包的一部分.

接下来我们看看 md5sum 的使用方式.

计算文件MD5值

计算文件MD5值,较简单, 格式为 md5sum filename, 这里已 gentoominimal 安装iso文件为例:

# md5sum install-amd64-minimal-20170907.iso 
bff7c5c8ea05d64804ab018d46a7fe02  install-amd64-minimal-20170907.iso

- 阅读剩余部分 -

这个部分描述如何在控制节点上安装和配置镜像服务,即 glance。简单来说,这个配置将镜像保存在本地文件系统中。

先决条件

安装和配置镜像服务之前,你必须创建创建一个数据库、服务凭证和API端点。

  1. 完成下面的步骤以创建数据库:

    • 用数据库连接客户端以 root 用户连接到数据库服务器:
    $ mysql -u root -p
    • 创建 glance 数据库:
    CREATE DATABASE glance;
    • glance数据库授予恰当的权限:
    GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
    IDENTIFIED BY 'GLANCE_DBPASS';
    GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
    IDENTIFIED BY 'GLANCE_DBPASS';

- 阅读剩余部分 -

使用CirrOS对镜像服务进行验证,CirrOS是一个小型的Linux镜像可以用来帮助你进行 OpenStack部署测试。

关于如何下载和构建镜像的更多信息,参考OpenStack Virtual Machine Image Guide。关于如何管理镜像的更多信息,参考OpenStack用户手册

在控制节点上执行这些命令。

  1. 获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
$ . admin-openrc
  1. 下载源镜像:
$ wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

- 阅读剩余部分 -

镜像服务 (glance) 允许用户发现、注册和获取虚拟机镜像。它提供了一个 REST API,允许您查询虚拟机镜像的 metadata 并获取一个现存的镜像。您可以将虚拟机镜像存储到各种位置,从简单的文件系统到对象存储系统—-例如 OpenStack 对象存储, 并通过镜像服务使用。

重要
简单来说,本指南描述了使用file`作为后端配置镜像服务,能够上传并存储在一个托管镜像服务的控制节点目录中。默认情况下,这个目录是 /var/lib/glance/images/。
继续进行之前,确认控制节点的该目录有至少几千兆字节的可用空间。
关于后端要求的更多信息,参考 配置参考

OpenStack镜像服务是IaaS的核心服务,如同 :ref:get_started_conceptual_architecture所示。它接受磁盘镜像或服务器镜像API请求,和来自终端用户或OpenStack计算组件的元数据定义。它也支持包括OpenStack对象存储在内的多种类型仓库上的磁盘镜像或服务器镜像存储。

- 阅读剩余部分 -