trove manual installation 翻译

目标

此文件提供了一步一步的指导手动安装trove在一个现有OpenStack的环境为了开发。

该文件将不包括:

OpenStack的设置

trove服务配置

要求

正在运行的OpenStack的环境是必需的,包括以下组件:

计算 (Nova)

镜像服务 (Glance)

身份认证 (Keystone)

一个网络组件 (either Neutron or Nova-Network)

如果你想在块存储卷提供数据存储,还需要块存储(Cinder)

如果你想要做的备份/恢复和复制,你也需要对象存储(Swift)

在刚安装了Ubuntu14.04 LTS的环境中运行trove服务。这将被称为“本地环境”

AMQP服务(RabbitMQ的或QPID)

MySQL(SQLite,PostgreSQL)数据库用来满足trove的内部需求,从当地的环境访问。

某些OpenStack的服务必须是从虚拟机可以访问的:

Swift

虚拟机必须从本地环境访问,用来开发/调试

openstack服务必须直接从本地环境访问,例如:

Nova

Cinder

Swift

Heat

安装

收集信息

以下信息对现有环境要求:

Keystone的主机和端口(S)

OpenStack的管理员的用户名,租户名称和密码

Nova的URL

Cinder的URL

Swift的URL

Heat的URL

AMQP连接凭证(服务器URL,用户密码)

trove的控制器端连接字符串(MySQL的和SQLite的,PostgreSQL的)

安装依赖

对于Trove¶必需的程序包

要安装的软件包列表:

$ sudo apt-get install build-essential libxslt1-dev qemu-utils mysql-client \

git python-dev python-pexpect python-pymysql libmysqlclient-dev

Python的设置

要找出哪个版本setuptools的最新的,请检查setuptools的repo。

要找出哪个pip版本是最新的,请访问pip的repo。

在Ubuntu软件仓库中有些软件包已经过时。请务必更新从适当来源的最新版本。

使用最新的setuptools:

$ cd ~
$ wget https://pypi.python.org/packages/source/s/setuptools/setuptools-{{latest}}.tar.gz
$ tar xfvz setuptools-{{latest}}.tar.gz
$ cd setuptools-{{latest}}
$ python setup.py install --user

使用最新的pip:

$ wget https://pypi.python.org/packages/source/p/pip/pip-{{latest}}.tar.gz
$ tar xfvz pip-{{latest}}.tar.gz
$ cd pip-{{latest}}
$ python setup.py install --user

注意上面的‘-user‘ - 我们在用户的home目录安装的软件包,在$HOME/.local/bin中,所以我们需要将它添加到环境变量:

$ echo PATH="$HOME/.local/bin:$PATH" >> ~/.profile
$ . ~/.profile

安装virtualenv,创建环境,并激活它:

$ pip install virtualenv --user
$ virtualenv --system-site-packages env
$ source env/bin/activate

获取trove

获得OpenStack的资料库中trove源组件:

$ cd ~
$ git clone https://git.openstack.org/openstack/trove.git
$ git clone https://git.openstack.org/openstack/python-troveclient.git

安装Trove¶

首先,安装要求:

$ cd ~/trove
$ pip install -r requirements.txt -r test-requirements.txt

然后安装trove

$ sudo python setup.py develop

最后安装trove client

$ cd ~/python-troveclient
$ sudo python setup.py develop
$ cd ~

其他所需的OpenStack的客户端(python-novaclient,python-keystoneclient等)应该已经被作为trove的一部分安装了。

为OpenStack准备trove:

你首先需要创建一个名为“trove_for_trove_usage‘租户。接下来,创建用户名为“regular_trove_user‘和‘admin_trove_user” - 使用“宝库”作为密码。这些都是用来提供trove服务所使用的帐户。此外,您将需要注册trove作为OpenStack的服务及其端点:

$ keystone --os-username <OpenStackAdminUsername> --os-password <OpenStackAdminPassword> --os-tenant-name <OpenStackAdminTenant> --os-auth-url http://<KeystoneIP>:<KeystonePort>/v2.0 tenant-create --user trove_for_trove_usage
 
$ keystone --os-username <OpenStackAdminUsername> --os-password <OpenStackAdminPassword> --os-tenant-name <OpenStackAdminTenant> --os-auth-url http://<KeystoneIP>:<KeystonePort>/v2.0 user-create --user regular_trove_user --pass trove --tenant trove_for_trove_usage
 
$ keystone --os-username <OpenStackAdminUsername> --os-password <OpenStackAdminPassword> --os-tenant-name <OpenStackAdminTenant> --os-auth-url http://<KeystoneIP>:<KeystonePort>/v2.0 user-create --user admin_trove_user --pass trove --tenant trove_for_trove_usage
 
$ keystone --os-username <OpenStackAdminUsername> --os-password <OpenStackAdminPassword> --os-tenant-name <OpenStackAdminTenant> --os-auth-url http://<KeystoneIP>:<KeystonePort>/v2.0 user-role-add --user admin_trove_user --tenant trove_for_trove_usage --role admin
 
$ keystone --os-username <OpenStackAdminUsername> --os-password <OpenStackAdminPassword> --os-tenant-name <OpenStackAdminTenant> --os-auth-url http://<KeystoneIP>:<KeystonePort>/v2.0 service-create --user trove --type database
 
$ keystone --os-username <OpenStackAdminUsername> --os-password <OpenStackAdminPassword> --os-tenant-name <OpenStackAdminTenant> --os-auth-url http://<KeystoneIP>:<KeystonePort>/v2.0 endpoint-create --service trove --region RegionOne --publicurl ‘http://<EnvironmentPublicIP>:<EnvironmentPort>/v1.0/$(tenant_id)s‘ --adminurl ‘http://<EnvironmentPublicIP>:<EnvironmentPort>/v1.0/$(tenant_id)s‘ --internalurl ‘http://<EnvironmentPublicIP>:<EnvironmentPort>/v1.0/$(tenant_id)s‘

其中,<EnvironmentPublicIP>和<EnvironmentPort>是指安装了Trove的服务器的IP地址和端口。该IP应该可以访问任何要与trove交流的主机。

准备trove配置文件¶

有几个trove的配置文件:

api-paste.ini and trove.conf - trove-API服务

trove-taskmanager.conf - trove - taskmanager服务

trove-guestagent.conf - trove-guestagent服务

trove - conductor.conf - trove-conductor服务

<datastore_manager>.cloudinit -虚拟机调配期间的用户数据

Cloud-init scripts是用户数据被用于不同的数据存储类型,如MySQL/ Percona的,cassandra,MongoDB的,Redis的,couchbase同时提供新计算实例。

上述例子在:~/trove/etc/trove/ as *.conf.sample files.

如果干净的Ubuntu镜像被用作用于trove实例源镜像,Cloud-init scripts必须安装和在实例中运行guestagent。

作为替代方案,你可以考虑创建一个自定义镜像与预安装和预配置的trove

 

源镜像

至于trove实例源图像,我们将使用trove兼容Ubuntu的镜像:

$ export DATASTORE_TYPE="mysql"
$ wget http://tarballs.openstack.org/trove/images/ubuntu/${DATASTORE_TYPE}.qcow2
$ glance --os-username admin_trove_user --os-password trove --os-tenant-name trove_for_trove_usage --os-auth-url http://<KeystoneIP>:<KeystoneAdminPort>/v2.0 image-create --name trove-image --is-public True --container-format ovf --disk-format qcow2 --owner ${DATASTORE_TYPE}.qcow2

注:http://tarballs.openstack.org/trove/images包括MySQL和Percona的,MongoDB的trove兼容的镜像。

在这一步,请记住镜像ID或存储在一个环境变量(IMAGEID)。

$ glance --os-username trove --os-password trove --os-tenant-name trove --os-auth-url http://<KeystoneIP>:<KeystoneAdminPort>/v2.0
    image-create --name trove-image --is-public true --container-format ovf --disk-format qcow2 --owner trove < precise.qcow2
 
$ export IMAGEID=<glance_image_id>

Cloud-init scripts

Cloud-init location

默认情况下,trove-taskmanager将着眼于为/etc/trove/cloudinit for <datastore_manager>.cloudinit.

Cloud-init content

对于trove兼容镜像的每个cloud-init script应包含:

Trove的安装

与trove代码在内的自定义镜像

等待被加入

准备数据库

创建trove数据库模式:

连接到存储后端(MySQL,PostgreSQL)

创建数据库,名字为trove(这个数据库将被用于存储trove的ORM)

撰写的连接字符串。例如:MYSQL + pymysql://<用户>:<密码>@ <backend_host>:<backend_port>/<数据库>

初始化数据库

一旦创建了trove数据库,其结构需要填充。

$ trove-manage db_sync

设置trove数据存储

数据存储

数据存储是一种数据结构,描述一组数据存储版本,其中包含的:

- ID -- simple auto-generated UUID
- Name -- user-defined attribute, actual name of a datastore
- Datastore Versions

例如:

- mysql, cassandra, redis, etc.

数据存储版本

数据存储版本是一个数据结构,它描述了一个版本,固定到数据存储特定的数据库,其中包括的:

- ID — Simple auto-generated UUID
- Datastore ID — Reference to Datastore
- Name — User-defined attribute, actual name of a database version
- Datastore manager — trove-guestagent manager that is used for datastore management
- Image ID — Reference to a specific Glance image ID
- Packages — Operating system specific packages that would be deployed onto datastore VM
- Active — Boolean flag that defines if version can be used for instance deployment or not

例如:

- ID - edb1d22a-b66d-4e86-be60-756240439272
- Datastore ID - 9c3d890b-a2f2-4ba5-91b2-2997d0791502
- Name - mysql-5.6
- Datastore manager - mysql
- Image ID - d73a402-3953-4721-8c99-86fc72e1cb51
- Packages - mysql-server=5.5, percona-xtrabackup=2.1
- Active - True

数据存储和数据存储版本注册

要注册的数据存储,你必须执行

$ export DATASTORE_TYPE="mysql" # available options: mysql, mongodb, postgresql, redis, cassandra, couchbase, couchdb, db2, vertica, etc.
 
$ export DATASTORE_VERSION="5.6" # available options: for cassandra 2.0.x, for mysql: 5.x, for mongodb: 2.x.x, etc.
 
$ export PACKAGES="mysql-server-5.6" # available options: cassandra=2.0.9, mongodb=2.0.4, etc
 
$ export IMAGEID="9910350b-77e3-4790-86be-b971d0cf9175" # Glance image ID of the relevant Datastore version (see Source images section)
 
$ trove-manage datastore_update ${DATASTORE_TYPE} ""
 
$ trove-manage datastore_version_update ${DATASTORE_TYPE} ${DATASTORE_VERSION} ${DATASTORE_TYPE} ${IMAGEID} ${PACKAGES} 1
 
$ trove-manage datastore_update ${DATASTORE_TYPE} ${DATASTORE_VERSION}

运行trove

trove服务配置和tuning¶

等待被加入

开始trove服务

运行trove的API:

$ trove-api --config-file=${TROVE_CONF_DIR}/trove-api.conf &

运行 trove-taskmanager:

$ trove-taskmanager --config-file=${TROVE_CONF_DIR}/trove-taskamanger.conf &

运行 trove-conductor:

$ trove-conductor --config-file=${TROVE_CONF_DIR}/trove-conductor.conf &

trove互动

Keystonerc

你需要构建一个kenstonerc文件,包含数据用来简化在使用客户端的时候的认证过程:

export OS_TENANT_NAME=trove
 
export OS_USERNAME=regular_trove_user
 
export OS_PASSWORD=trove
 
export OS_AUTH_URL="http://<KeystoneIP>:<KeystonePort>/v2.0/"
 
export OS_AUTH_STRATEGY=keystone

trove部署验证

首先,你需要执行:

$ . keystonerc

要查看某个特定命令的帮助:

$ trove help <command>

创建一个用例:

$ trove create <name> <flavor_id>
                [--size <size>]
                [--databases <databases> [<databases> ...]]
                [--users <users> [<users> ...]] [--backup <backup>]
                [--availability_zone <availability_zone>]
                [--datastore <datastore>]
                [--datastore_version <datastore_version>]
                [--nic <net-id=net-uuid,v4-fixed-ip=ip-addr,port-id=port-uuid>]
                [--configuration <configuration>]
                [--replica_of <source_id>]

故障排除

在‘trove show <instance_id>’命令输出中没有实例的Ips

如果trove实例创建成功,则显示活动状态和工作,但没有IP地址的显示,在命令‘trove show <instance_id>‘的输出中,然后确认确认以下行添加到了trove.conf

network_label_regex = ^NETWORK_NAME$

NETWORK_NAME应该替换为真实姓名的实例连接到网络。

决定你要哪个网络附加一个trove实例,运行以下命令:

$ nova net-list

或者

$ neutron net-list

一种可能的方法来查找网络名称是执行“nova list”命令。输出将为租户列出所有OpenStack的实例,包括网络信息。

比如:

NETWORK_NAME=IP_ADDRESS

更多信息:http://www.cnblogs.com/S-tec-songjian/

时间: 2024-07-30 02:51:18

trove manual installation 翻译的相关文章

P6 EPPM Manual Installation Guide (Oracle Database)

Contents Oracle Database Manual Configuration Overview ,,★★5 Oracle Database Installation ,,★★6 Creating the Database Structure for Oracle and Loading Application Data ,,★★7 Creating the P6 EPPM Database Structure for Oracle ,,★★7 Copying the Script

trove 开发者阅读翻译

介绍 Trove为OpenStack提供数据库的服务.它的设计运行完全符合OpenStack,目标是让用户能快速.轻松地利用关系数据库的特点,没有负担的处理复杂的管理任务.云用户和数据库管理员可以根据需要提供和管理多个数据库实例. 最初,该服务将专注于提供在资源隔离下的高性能,自动化复杂的管理任务包括部署.配置.修补.备份.恢复和监控. 为深入研究项目的设计和结构,看到宝库设计页面. 安装和部署 Trove在不断发展.安装trove的最简单方法是使用集成脚本,可以找到trove-integrat

【socket编程】select manual page翻译

原文: select manual page 依赖的头文件 /* According to POSIX.1-2001, POSIX.1-2008 */ #include <sys/select.h> /* According to earlier standards */ #include <sys/time.h> #include <sys/types.h> #include <unistd.h> 方法定义 int select(int nfds, fd_

[翻译] EAIntroView

EAIntroView https://github.com/ealeksandrov/EAIntroView   This is highly customizable drop-in solution for introduction views. Some features (remember, most features are optional and can be turned off): 这是一个高度可定制的导航页解决方案,这是一些特性(记住,大部分特性都是可选的,以及可以关闭的)

Installation and Upgrading

Cumulative Feature Overview Identifies product features available to you when upgrading. This tool requires Microsoft Excel. Any user should consult this document, as needed. Note: Make sure to enable macros when prompted to do so. Otherwise, the Mic

[翻译]lithium 安装

<h2 id="安装"><a name="安装" href="#安装"></a>安装</h2><h4 id="要求"><a name="要求" href="#要求"></a>要求</h4><ul><li><h5 id="web服务器">&

Cloudera 5.8.2 Installation guide

Envireronment: VMware® Workstation 12 Pro 12.0.1 build-3160714(Host: Windows 7 Ultimate) Centos 6.5 x64 Cloudera 5.8.2 Resource: Cloudera Manager 5 Requirements and Supported Versions Installation Path B - Manual Installation Using Cloudera Manager P

[翻译] AYVibrantButton

AYVibrantButton https://github.com/a1anyip/AYVibrantButton AYVibrantButton is a stylish button with iOS 8 vibrancy effect. It is a subclass of UIButton that has a simple yet elegant appearance and built-in support for UIVisualEffectView and UIVibranc

How to Install WordPress – Complete WordPress Installation Tutorial

WordPress is known as the most popular blogging platform and content management system. New users are often surprised when we tell them that WordPress is also well known for its ease of installation. All best WordPress web hosting companies allow you