openstack grizzly版cloud控制节点安装
openstack-ubuntu-create
参考官方文档
三个节点:
cloud :控制节点
内网:10.10.10.10
外网:172.16.56.252
network:网络节点
内网:10.10.10.9
外网:172.16.56.100
c01:计算节点
内网:10.10.10.11
外网:172.16.56.153
一.cloud:控制节点的配置.
1.安装完操作系统已经apt源配置完成之后,一定要执行 apt-get update
root@cloud:~# mv /etc/apt/sources.list /etc/apt/sources.list.bak #备份一下原来的源
root@cloud:~# vi /etc/apt/sources.list
deb http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse #加入163源,163源每6个小时与官方源站同步一次。
root@cloud:~# apt-get update
root@cloud:~# apt-get install ubuntu-cloud-keyring #安装cloud版本密钥(我这么理解)
root@cloud:~# vi /etc/apt/sources.list.d/cloud-archive.list #加入版本库地址
deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main
2.加入版本库地址.
root@cloud:~# vi /etc/apt/sources.list.d/cloud-archive.list
deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main
root@cloud:~# apt-get update && apt-get upgrade
3.配置grizzly源
root@cloud:~# vi /etc/apt/sources.list.d/grizzly.list 加入grizzly源
deb http://archive.gplhost.com/debian grizzly main
deb http://archive.gplhost.com/debian grizzly-backports main
root@cloud:~# apt-get update #执行的时候会出错,记录NO_PUBKEY后面的密钥。
W: GPG error: http://archive.gplhost.com grizzly Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 64AA94D00B849883
W: GPG error: http://archive.gplhost.com grizzly-backports Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 64AA94D00B849883
上面错误解决办法:(注意--recy-key 后面的内容,是你出错时记录的,不要原本照着复制 ) root@cloud:~# gpg --keyserver pgpkeys.mit.edu --recv-key 64AA94D00B849883
root@cloud:~# gpg -a --export 64AA94D00B849883 | sudo apt-key add -
root@cloud:~# apt-get update
root@cloud:~# apt-get install gplhost-archive-keyring
root@cloud:~# apt-get upgrade
4.网卡配置:/etc/network/interface
auto lo
iface lo inet loopback # The eth0 network interface
auto eth0
iface eth0 inet static
address 10.10.10.10
netmask 255.255.255.0 # The eth1 network interface
auto eth1
iface eth1 inet dhcp #我的网卡是自动获取的
5.开启包检查:
root@cloud:~# vi /etc/sysctl.conf #添加如下内容。
net.ipv4.conf.all.rp_filter = #reverse-path filtering 反向过滤技术,系统在接收到一个IP包后,检查该IP是不是合乎要求,不合要求的IP包会被系统丢弃
net.ipv4.conf.default.rp_filter = 0
重启网卡:
root@cloud:~# /etc/init.d/networking restart
应用网卡设置:
root@cloud:~# sysctl -e -p /etc/sysctl.conf
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
root@cloud:~#
6.修改hosts文件:
root@cloud:~# vi /etc/hosts 添加如下设置. 10.10.10.10 cloud
10.10.10.9 network
10.10.10.11 c01
7.安装ntp:
root@cloud:~# apt-get install -y ntp
root@cloud:~# /etc/init.d/ntp restart
#可以设置自己的时钟源,但是必须保持以后三个节点的时间一致
8.安装mysql
root@cloud:~# apt-get install -y python-mysqldb mysql-server
这个过程会要求你设置mysql的root用户的密码。 root@cloud:~# /etc/init.d/mysql restart
允许其他两个节点访问mysql: root@cloud:~# sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
root@cloud:~# /etc/init.d/mysql restart
9 .建立:nova,cinder,glance,keystone,quantum库
mysql -u root -p <<EOF
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'openstack';
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'openstack';
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'openstack';
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'openstack';
CREATE DATABASE quantum;
GRANT ALL PRIVILEGES ON quantum.* TO 'quantum'@'localhost' IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON quantum.* TO 'quantum'@'10.10.10.9' IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON quantum.* TO 'quantum'@'10.10.10.11' IDENTIFIED BY 'openstack';
FLUSH PRIVILEGES;
EOF
10.安装rabbitmq消息队列服务:
root@cloud:~# apt-get install -y rabbitmq-server #rabbitmqctl status 查看rabbitmq的状态;
#rabbitmqctl user # rabbitmqctl list_users 查看rabbit用户
Listing users ...
guest [administrator] #guest 用户 admin...权限
...done. #rabbitmqctl change_passowrd guest openstack #修改guest用户密码,如果nova,glance,等服务不能访问rabbit,检查用户密码,
#没有问题的话就强制重置rabbit,然后再执行一次修改密码,(看rabbitmqctl --help)
11.keystone 验证服务安装:
root@cloud:~# apt-get install -y keystone python-keystone python-keystoneclient
root@cloud:~# vi /etc/keystone/keystone.conf #编辑keystone配置文件
[DEFAULT]
admin_token = openstack
debug = True # 开启测试信息记录
verbose = True #开启日志的冗长记录
[sql]
connection = mysql://keystone:openstack@localhost/keystone #使用mysql数据库,kesytone数据库用户,
#openstack数据库密码,最后一个keytsone是要使用的数据库
root@cloud:~# service keystone restart
keystone stop/waiting
keystone start/running, process 32376
root@cloud:~# keystone-manage db_sync #初始化keystone
root@cloud:~#
##############################
查看keystone的日志,默认在/var/log/keystone/下。没有任何错误之后继续余下的工作。
2013-10-25 14:09:41 DEBUG [migrate.versioning.script.base] Script /usr/lib/python2.7/dist-packages/keystone/common/sql/migrate_repo/versions/019_fixup_role.py loaded successfully
2013-10-25 14:09:41 DEBUG [migrate.versioning.script.base] Loading script /usr/lib/python2.7/dist-packages/keystone/common/sql/migrate_repo/versions/020_migrate_metadata_table_roles.py...
2013-10-25 14:09:41 DEBUG [migrate.versioning.script.base] Script /usr/lib/python2.7/dist-packages/keystone/common/sql/migrate_repo/versions/020_migrate_metadata_table_roles.py loaded successfully
2013-10-25 14:09:41 DEBUG [migrate.versioning.script.base] Loading script /usr/lib/python2.7/dist-packages/keystone/common/sql/migrate_repo/versions/021_add_trust_to_token.py...
2013-10-25 14:09:41 DEBUG [migrate.versioning.script.base] Script /usr/lib/python2.7/dist-packages/keystone/common/sql/migrate_repo/versions/021_add_trust_to_token.py loaded successfully
日志结尾会提示大量的successfully 新建一个隐藏环境变量文件,并使其开机之后也能生效 (为了安全起见建议建立隐藏文件): root@cloud:~# vi .openrc export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=openstack
export OS_AUTH_URL="http://10.10.10.10:5000/v2.0/" #这里的两个url必须与后面endpoint端口中建立的url一致.
export OS_SERVICE_ENDPOINT="http://10.10.10.10:35357/v2.0" #这里的两个url必须与后面endpoint端口中建立的url一致.
export OS_SERVICE_TOKEN=openstack
root@cloud:~# source /root/.openrc
root@cloud:~# echo "source /root/.openrc" >> .bashrc #这一步非常重要,如果不导入 ,你在开启一个,新的ssh服务没有这一步,没有办法执行keystone
测试: root@cloud:~# keystone user-list
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored). root@cloud:~#
说明keystone成功。 官方给出的脚本我只执行成功了一次,所以以后就没用过,手动建立keystone服务,后期的研究一下这个脚本。
建立三个租户(类似房东,承租人),一个admin,一个demo,一个service
root@cloud:~# keystone user-list
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored). root@cloud:~# keystone tenant-create --name=admin
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | |
| enabled | True |
| id | 139ea7b2f2444bcd85c327c1671708e1 |
| name | admin |
+-------------+----------------------------------+
root@cloud:~# keystone tenant-create --name=demo
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | |
| enabled | True |
| id | 8d428dd34477470d95ad6ad4df0d2dd4 |
| name | demo |
+-------------+----------------------------------+
root@cloud:~# keystone tenant-create --name=service
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | |
| enabled | True |
| id | 9fa61d1bd95d49d4be39658dc5b2a527 |
| name | service |
+-------------+----------------------------------+
root@cloud:~#
root@cloud:~# keystone tenant-list #查看tenant
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+----------------------------------+---------+---------+
| id | name | enabled |
+----------------------------------+---------+---------+
| 139ea7b2f2444bcd85c327c1671708e1 | admin | True |
| 8d428dd34477470d95ad6ad4df0d2dd4 | demo | True |
| 9fa61d1bd95d49d4be39658dc5b2a527 | service | True |
+----------------------------------+---------+---------+
root@cloud:~# keystone手动创建用户点击这里
12.镜像服务器的安装和配置:
root@cloud:~# vi /etc/glance/glance-api.conf
sql_connection = mysql://glance:openstack@localhost/glance
[keystone_authtoken]
admin_tenant_name = service
admin_user = glance
admin_password = openstack
[paste_deploy]
flavor=keystone
sql_connection = mysql://glance:openstack@localhost/glance
[keystone_authtoken]
admin_tenant_name = service
admin_user = glance
admin_password = openstack
[paste_deploy]
flavor=keystone 因为之前我们没有在keystone中建立keystone验证,这里再创创建。 root@cloud:~# keystone user-create --name=glance --pass=openstack --tenant-id 9fa61d1bd95d49d4be39658dc5b2a527 --email=glance@domain.com
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | glance@domain.com |
| enabled | True |
| id | 1e57c770917242f0b516917e36552c4f |
| name | glance |
| tenantId | 9fa61d1bd95d49d4be39658dc5b2a527 |
+----------+----------------------------------+ root@cloud:~# keystone user-role-add --tenant-id 9fa61d1bd95d49d4be39658dc5b2a527 --user-id 1e57c770917242f0b516917e36552c4f --role-id 844d47b695c04c74bc8799b41450dc90
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
root@cloud:~#
建立端口: root@cloud:~# keystone service-list
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+----------------------------------+----------+----------+------------------------------+
| id | name | type | description |
+----------------------------------+----------+----------+------------------------------+
| 09dd98bd962b4e61b4377ba70a5d9c69 | cinder | volume | OpenStack Volume Service |
| d2738dff2cd54615b7b2002081e21ff9 | ec2 | ec2 | OpenStack EC2 service |
| e0ef8e829b914147b6c49d281e4817db | glance | image | OpenStack Image Service |
| 9ccb0db9159648d89f276527c339cc40 | keystone | identity | OpenStack Identity |
| 50195c63e78749c4bfb0c4da8a121033 | nova | compute | OpenStack Compute Service |
| 8b3f86f20bf146068b898aac0dd3334f | quantum | network | OpenStack Networking service |
+----------------------------------+----------+----------+------------------------------+ root@cloud:~# keystone endpoint-create --region RegionOne --service-id e0ef8e829b914147b6c49d281e4817db --publicurl 'http://10.10.10.10:9292' --adminurl 'http://10.10.10.10:9292' --internalurl 'http://10.10.10.10:9292'
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| adminurl | http://10.10.10.10:9292 |
| id | 5843789e7cd24907930d4a953d67c0b3 |
| internalurl | http://10.10.10.10:9292 |
| publicurl | http://10.10.10.10:9292 |
| region | RegionOne |
| service_id | e0ef8e829b914147b6c49d281e4817db |
+-------------+----------------------------------+
root@cloud:~#
root@cloud:/var/log/glance# service glance-api restart && service glance-registry restart 启动glance服务
glance-api stop/waiting
glance-api start/running, process 1196
glance-registry stop/waiting
glance-registry start/running, process 1201
root@cloud:/var/log/glance#
root@cloud:/var/log/glance#
root@cloud:/var/log/glance# glance-manage db_sync #初始化
2013-10-25 21:17:42.988 1212 INFO glance.db.sqlalchemy.migration [-] Upgrading database to version latest
2013-10-25 21:17:43.000 1212 INFO glance.db.sqlalchemy.migrate_repo.schema [-] creating table images
2013-10-25 21:17:43.025 1212 INFO glance.db.sqlalchemy.migrate_repo.schema [-] creating table image_properties
2013-10-25 21:17:43.093 1212 INFO glance.db.sqlalchemy.migrate_repo.schema [-] creating table image_members
2013-10-25 21:17:43.193 1212 INFO glance.db.sqlalchemy.migrate_repo.schema [-] creating table image_tags
2013-10-25 21:17:43.272 1212 INFO glance.db.sqlalchemy.migrate_repo.schema [-] creating table image_locations
root@cloud:/var/log/glance# glance image-list #这里测试一下,如果返回空说明成功 ,因为还没有导入镜像。 root@cloud:/var/log/glance#
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下载导入镜像:
root@cloud:~# wget http://download.cirros-cloud.net/0.3.1/cirros-0.3.1-x86_64-disk.img root@cloud:~# glance image-create --is-public true --disk-format qcow2 --container-format bare --name "CirrOS 0.3.1" < cirros-0.3.1-x86_64-disk.img
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | d972013792949d0d3ba628fbe8685bce |
| container_format | bare |
| created_at | 2013-10-25T13:27:29 |
| deleted | False |
| deleted_at | None |
| disk_format | qcow2 |
| id | 9e4f93e8-7adc-44e6-9512-8837a73947ed |
| is_public | True |
| min_disk | 0 |
| min_ram | 0 |
| name | CirrOS 0.3.1 |
| owner | 139ea7b2f2444bcd85c327c1671708e1 |
| protected | False |
| size | 13147648 |
| status | active |
| updated_at | 2013-10-25T13:27:30 |
+------------------+--------------------------------------+
root@cloud:~#
root@cloud:~# glance image-list #查看导入镜像(当你在web页面查看你的镜像没有镜像时,记得执行一下:glance index)
+--------------------------------------+--------------+-------------+------------------+----------+--------+
| ID | Name | Disk Format | Container Format | Size | Status |
+--------------------------------------+--------------+-------------+------------------+----------+--------+
| 9e4f93e8-7adc-44e6-9512-8837a73947ed | CirrOS 0.3.1 | qcow2 | bare | 13147648 | active |
+--------------------------------------+--------------+-------------+------------------+----------+--------+
root@cloud:~#
13.1控制服务安装配置
root@cloud:~# apt-get install -y nova-api nova-cert nova-common nova-conductor nova-scheduler python-nova python-novaclient nova-consoleauth novnc nova-novncproxy
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation: The following packages have unmet dependencies:
novnc : Depends: libjs-swfobject but it is not installable #这个错误的解决办法
E: Unable to correct problems, you have held broken packages.
root@cloud:~#
root@cloud:~# wget http://archive.ubuntu.com/ubuntu/pool/universe/libj/libjs-swfobject/libjs-swfobject_2.2+dfsg-1_all.deb
root@cloud:~# dpkg -i libjs-swfobject_2.2+dfsg-1_all.deb
root@cloud:~# apt-get install -y nova-api nova-cert nova-common nova-conductor nova-scheduler python-nova python-novaclient nova-consoleauth novnc nova-novncproxy
配置 nova
root@cloud:~# vi /etc/nova/api-paste.ini #编辑下面内容修改如下
[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 127.0.0.1
auth_port =
auth_protocol = http
admin_tenant_name = service
admin_user = nova
admin_password = openstack
root@cloud:~# vi /etc/nova/nova.conf
sql_connection=mysql://nova:openstack@localhost/nova
my_ip=10.10.10.10
rabbit_password=openstack
auth_strategy=keystone # Networking
network_api_class=nova.network.quantumv2.api.API
quantum_url=http://10.10.10.10:9696
quantum_auth_strategy=keystone
quantum_admin_tenant_name=service
quantum_admin_username=quantum
quantum_admin_password=openstack
quantum_admin_auth_url=http://10.10.10.10:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver # Security Groups
firewall_driver=nova.virt.firewall.NoopFirewallDriver
security_group_api=quantum
# Metadata
quantum_metadata_proxy_shared_secret=openstack
service_quantum_metadata_proxy=true
metadata_listen = 10.10.10.10
metadata_listen_port = 8775
13.2在keystone中建立nova用户以及服务,端点。
root@cloud:~# keystone user-create --name=nova --pass=openstack --email=nova@domain.com --tenant-id 9fa61d1bd95d49d4be39658dc5b2a527
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | nova@domain.com |
| enabled | True |
| id | 249c5a6dcd3943a5b2dfce2c60531b35 |
| name | nova |
| tenantId | 9fa61d1bd95d49d4be39658dc5b2a527 |
+----------+----------------------------------+
root@cloud:~# keystone user-role-add --tenant-id 9fa61d1bd95d49d4be39658dc5b2a527 --user-id 249c5a6dcd3943a5b2dfce2c60531b35 --role-id 844d47b695c04c74bc8799b41450dc90
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
root@cloud:~#
之前已经建立了compute的端点,这里查看一下:
root@cloud:~# keystone endpoint-list
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+----------------------------------+-----------+------------------------------------------+------------------------------+------------------------------------------+----------------------------------+
| id | region | publicurl | internalurl | adminurl | service_id |
+----------------------------------+-----------+------------------------------------------+------------------------------+------------------------------------------+----------------------------------+
| 520470e44d7a4bf088a93beb000a6f6b | RegionOne | http://10.10.10.10:8774/v2/$(tenant_id)s | | http://10.10.10.10:8774/v2/$(tenant_id)s | 50195c63e78749c4bfb0c4da8a121033 |
| 5843789e7cd24907930d4a953d67c0b3 | RegionOne | http://10.10.10.10:9292 | http://10.10.10.10:9292 | http://10.10.10.10:9292 | e0ef8e829b914147b6c49d281e4817db |
| 59f4ccf564ce47fe8b141692288cb497 | RegionOne | http://10.10.10.10:5000/v2.0 | http://10.10.10.10:5000/v2.0 | http://10.10.10.10:35357/v2.0 | 9ccb0db9159648d89f276527c339cc40 |
+----------------------------------+-----------+------------------------------------------+------------------------------+------------------------------------------+----------------------------------+
root@cloud:~#
-------+----------------------------------+
root@cloud:~# nova-manage db sync #初始化这行失败的原因,是/etc/nova/api-paste.ini配置文件里的密码写错了
Command failed, please check log for more info
2013-10-25 22:04:10.245 6203 CRITICAL nova [-] (OperationalError) (1045, "Access denied for user 'nova'@'localhost' (using password: YES)") None None
初始化之后:
root@cloud:~# /etc/init.d/nova-api restart
root@cloud:~# /etc/init.d/nova-cert restart
root@cloud:~# /etc/init.d/nova-conductor restart
root@cloud:~# /etc/init.d/nova-consoleauth restart
root@cloud:~# /etc/init.d/nova-novncproxy restart
root@cloud:~# /etc/init.d/nova-scheduler restart
root@cloud:~# 并且查看nova下面的相应的日志
nova-api.conf
.............
2013-10-25 22:12:57.697 6311 INFO nova.wsgi [-] osapi_compute listening on 0.0.0.0:8774
2013-10-25 22:12:57.697 6311 INFO nova.service [-] Starting 1 workers
2013-10-25 22:12:57.699 6311 INFO nova.service [-] Started child 6317
2013-10-25 22:12:57.701 6311 INFO nova.network.driver [-] Loading network driver 'nova.network.linux_net'
2013-10-25 22:12:57.702 6317 INFO nova.osapi_compute.wsgi.server [-] (6317) wsgi starting up on http://0.0.0.0:8774/ 2013-10-25 22:12:57.706 6311 INFO nova.wsgi [-] metadata listening on 10.10.10.10:8775
2013-10-25 22:12:57.706 6311 INFO nova.service [-] Starting 1 workers
2013-10-25 22:12:57.708 6311 INFO nova.service [-] Started child 6318
2013-10-25 22:12:57.811 6318 INFO nova.metadata.wsgi.server [-] (6318) wsgi starting up on http://10.10.10.10:8775/ root@cloud:/var/log/nova#
........................
nova-cert.conf
........................
2013-10-25 22:13:01.924 5895 INFO nova.service [-] Caught SIGTERM, exiting
2013-10-25 22:13:02.355 6343 AUDIT nova.service [-] Starting cert node (version 2013.1.3)
2013-10-25 22:13:02.619 INFO nova.openstack.common.rpc.common [req-7f16229f-16db-4f49-a65f-0057d3245544 None None] Connected to AMQP server on localhost:5672
root@cloud:/var/log/nova#
........................
nova-conductor.log
........................
2013-10-25 22:13:08.567 5931 INFO nova.service [-] Caught SIGTERM, exiting
2013-10-25 22:13:08.997 6367 AUDIT nova.service [-] Starting conductor node (version 2013.1.3)
2013-10-25 22:13:09.258 INFO nova.openstack.common.rpc.common [req-fba5feeb-696a-4665-8f73-55f1ca36d63a None None] Connected to AMQP server on localhost:5672
root@cloud:/var/log/nova#
........................................................................
14.安装块存储服务:(系统要求需要另外一块硬盘)
root@cloud:~# fdisk -l Disk /dev/sda: 32.2 GB, bytes
heads, sectors/track, cylinders, total sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disk identifier: 0x000edd32 Device Boot Start End Blocks Id System
/dev/sda1 * Linux
/dev/sda2 Extended
/dev/sda5 Linux swap / Solaris Disk /dev/sdb: 53.7 GB, 53687091200 bytes
heads, sectors/track, cylinders, total sectors
Units = sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disk identifier: 0x00000000 Disk /dev/sdb doesn't contain a valid partition table
root@cloud:~#
root@cloud:~# apt-get install -y cinder-api cinder-scheduler cinder-volume iscsitarget open-iscsi iscsitarget-dkms python-cinderclient linux-headers-`uname -r` The following packages have unmet dependencies:
cinder-volume : Depends: tgt but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
root@cloud:~#
上面的错误解决。
root@cloud:~# apt-get install libibverbs1
14.1配置iscsi存储:
root@cloud:~# sed -i 's/false/true/g' /etc/default/iscsitarget
root@cloud:~# service iscsitarget start
* Starting iSCSI enterprise target service [ OK ]
[ OK ]
root@cloud:~#
root@cloud:~# /etc/init.d/open-iscsi restart
* Disconnecting iSCSI targets [ OK ]
* Stopping iSCSI initiator service [ OK ]
* Starting iSCSI initiator service iscsid [ OK ]
* Setting up iSCSI targets [ OK ]
root@cloud:~#
14.2配置cinder服务:
root@cloud:~# vi /etc/cinder/cinder.conf 添加如下两行
sql_connection = mysql://cinder:openstack@localhost/cinder
rabbit_password = openstack root@cloud:~# vi /etc/cinder/api-paste.ini 修改下面内容
admin_tenant_name = service
admin_user = cinder
admin_password = openstack
14.3在keystone中为cinder添加用户:
root@cloud:~# keystone user-create --name=cinder --pass=openstack --email=cinder@domain.com --tenant-id 9fa61d1bd95d49d4be39658dc5b2a527
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | cinder@domain.com |
| enabled | True |
| id | 5e1aea243f8f4a40a4fe4fc1d0d6e2b1 |
| name | cinder |
| tenantId | 9fa61d1bd95d49d4be39658dc5b2a527 |
+----------+----------------------------------+
root@cloud:~# keystone user-role-add --tenant-id 9fa61d1bd95d49d4be39658dc5b2a527 --user-id 5e1aea243f8f4a40a4fe4fc1d0d6e2b1 --role-id 844d47b695c04c74bc8799b41450dc90
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
root@cloud:~#
root@cloud:~# keystone endpoint-create --region RegionOne --service-id 09dd98bd962b4e61b4377ba70a5d9c69 --publicurl 'http://10.10.10.10:8776/v1/$(tenant_id)s' --adminurl 'http://10.10.10.10:8776/v1/$(tenant_id)s' --internalurl 'http://10.10.10.10:8776/v1/$(tenant_id)s'
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+-------------+------------------------------------------+
| Property | Value |
+-------------+------------------------------------------+
| adminurl | http://10.10.10.10:8776/v1/$(tenant_id)s |
| id | 5554c424b983406fb955c90c1379d28e |
| internalurl | http://10.10.10.10:8776/v1/$(tenant_id)s |
| publicurl | http://10.10.10.10:8776/v1/$(tenant_id)s |
| region | RegionOne |
| service_id | 09dd98bd962b4e61b4377ba70a5d9c69 |
+-------------+------------------------------------------+
root@cloud:~#
14.4磁盘操作:
root@cloud:~# pvcreate /dev/sdb 初始化磁盘为物理卷
Physical volume "/dev/sdb" successfully created
root@cloud:~# root@cloud:~# vgcreate cinder-volumes /dev/sdb 创建名为cinder-volumes的卷组
Volume group "cinder-volumes" successfully created
root@cloud:~#
14.5初始化cinder:
root@cloud:~# cinder-manage db sync
-- :: INFO [migrate.versioning.api] -> ...
-- :: INFO [migrate.versioning.api] done
-- :: INFO [migrate.versioning.api] -> ...
-- :: INFO [migrate.versioning.api] done
-- :: INFO [migrate.versioning.api] -> ...
-- :: INFO [migrate.versioning.api] done
-- :: INFO [migrate.versioning.api] -> ...
-- :: INFO [004_volume_type_to_uuid] Created foreign key volume_type_extra_specs_ibfk_1
-- :: INFO [migrate.versioning.api] done
-- :: INFO [migrate.versioning.api] -> ...
-- :: INFO [migrate.versioning.api] done
-- :: INFO [migrate.versioning.api] -> ...
-- :: INFO [migrate.versioning.api] done
-- :: INFO [migrate.versioning.api] -> ...
-- :: INFO [migrate.versioning.api] done
-- :: INFO [migrate.versioning.api] -> ...
-- :: INFO [migrate.versioning.api] done
-- :: INFO [migrate.versioning.api] -> ...
-- :: INFO [migrate.versioning.api] done
root@cloud:~#
14.6重启cinder服务:
root@cloud:~# /etc/init.d/cinder-api restart
root@cloud:~# /etc/init.d/cinder-scheduler restart
root@cloud:~# /etc/init.d/cinder-volume restart
root@cloud:~#
一定要记得查看日志
15.控制节点网络服务安装:
root@cloud:~# apt-get install -y quantum-server
root@cloud:~# vi /etc/quantum/quantum.conf 修改如下内容
[DEFAULT]
verbose = True
rabbit_password = openstack
admin_tenant_name = service
admin_user = quantum
admin_password = openstack
root@cloud:~# vi /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini 修改如下内容
[DATABASE]
sql_connection = mysql://quantum:password@localhost/quantum
[OVS]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
enable_tunneling = True
local_ip = 10.10.0.2
[SECURITYGROUP]
firewall_driver = quantum.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver root@cloud:~# ln -s /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini /etc/quantum/plugin.ini 软连接配置文件
root@cloud:~#
在keystone中建立quantum用户,以及端点。
root@cloud:~# keystone user-create --name=quantum --pass=openstack --email=quantum@domain.com --tenant-id 9fa61d1bd95d49d4be39658dc5b2a527
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | quantum@domain.com |
| enabled | True |
| id | 32f1a0529b524c62b89668683b153bb3 |
| name | quantum |
| tenantId | 9fa61d1bd95d49d4be39658dc5b2a527 |
+----------+----------------------------------+
root@cloud:~#
root@cloud:~# keystone user-role-add --tenant-id 9fa61d1bd95d49d4be39658dc5b2a527 --role-id 844d47b695c04c74bc8799b41450dc90 --user-id 32f1a0529b524c62b89668683b153bb3
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
root@cloud:~# keystone endpoint-create --region RegionOne --service-id 8b3f86f20bf146068b898aac0dd3334f --publicurl 'http://10.10.10.10:9696/' --adminurl 'http://10.10.10.10:9696/' --internalurl 'http://10.10.10.10:9696/'
WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| adminurl | http://10.10.10.10:9696/ |
| id | 56b29aa9d7894a6e86450a930075c102 |
| internalurl | http://10.10.10.10:9696/ |
| publicurl | http://10.10.10.10:9696/ |
| region | RegionOne |
| service_id | 8b3f86f20bf146068b898aac0dd3334f |
+-------------+----------------------------------+
root@cloud:~#
重启 quantum:
root@cloud:~# service quantum-server restart
查看一下日志:
server.log
2013-10-25 23:26:59 INFO [quantum.service] Quantum service started, listening on 0.0.0.0:9696
root@cloud:/var/log/quantum# lsof -i:9696
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 19740 quantum 7u IPv4 61514 0t0 TCP *:9696 (LISTEN)
root@cloud:/var/log/quantum#
安装OpenStack web控制台(dashboard):
root@cloud:~# apt-get install -y openstack-dashboard memcached python-memcache 如果不喜欢ubuntu主题可以使用下面命令删除 :
apt-get remove --purge openstack-dashboard-ubuntu-theme
aaarticlea/png;base64,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" alt="" />
移除ubuntu主题之后:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYsAAAG6CAIAAAB2pP3UAAAgAElEQVR4nO3de3Bb9YHoce3uDH/euX/sndmWbXfb8Agt3QKmUAqlLS5tAmlLaJwG2vR1odAS+mACJrf3DpQBesOylI17c8kNuzyaJS0lQGhjJw1LQp4OtpNYjh1bTpzIkt+yrSPpyEc6r/vHzz4+lmRbsh3rJ53vZ36TkY+PjpQwfOd3fjqSfJZl2QBQbP39/UNDQ5FIJBqNxuNxVVXHxsZ8xX5WAGDbtq2qam9v78DAwPDwsKIoiUQimUxSKABSME0zFAr19vYODQ2Njo7GYjFVVSkUAFkEg8FQKNTf3y+mURQKgESCwWAwGOzt7RWrUYlEgkIBkEUwGDx37lw4HB4cHBwdHY3H4xQKgCyCweDZs2e7u7sHBgZGRkZisRiFAiCLYDDY2dkZDAbFUhSFAiCRYDAYCASCwWBfX59YLKdQAGThLlQkEqFQACQSDAY7OjrOnz8vXs6jUAAkQqEAyItCAZAXhQIgLwoFQF4UCoC8KBQAeVEoAPKiUADkRaEAyItCAZAXhQIgLwoFQF4UCoC8KBQAeVEoAPKiUADkRaEAyItCAZAXhQIgLwoFQF4UCoC8KBQuLD2mRJuORZuO9f/5zeCLNcEXawJPPup/YK3/gbUNd95y6HNLD31u6cEblr511aVHfv1EsZ8spEOhMC+iPtGmY6I+Z59/WtTnxPfuEPXJcxy8YelbV1/63ob1mqIU++8EiVAoTCve0Sbq0/P7l0WA2qofEAEqqD75RupzS9+6+tI/3nEbkYKDQnlUOqaMznbytfjj4OeWvn31ZUQKDgrlOemY0vnc0wduWPqf119+4IbilGjWSL2xkkjBtimUB9X/4id7PnP5/s8ulTlSO4kUbNumUF4z1Nb66pVL3r76Mvkj9c7Vl+0gUp5Hobylu/7I/7n8H1+9cslbV11Wd+3l711fzEg1fOHTTV+6pulL17R89Ya25Te1Lb/pzNcru+64teuOW/u+9Q0xzjx4n5mIF/ufDUVDobwlePTws0v+/reX/0NWpJYubKSO3PQJUZ/mW68X9Qms+KKoT+ibtzkBymcM/+qXxf5nQ9FQKG8JHj38zJKL/3nJ39dkReq9QiIl6tP0pWtEfdpvu1nU5/ydywqqT54jfe5ssf/lUBwUyltEoZ5ZcvE/L7k4Z6TevyGvk69FHtopf7H/5VAcFMpbnEJlR+r9Gz7h/8oN51ZekEkQhcLcUChvCeypcwolhojUzmuWdt0hY5solMdRKG859PyzGYUSkTr4pc8WPUMUCtkolLfkLNQzSy4+edstRc8QhUI2CuUt0xWq6A2iUMiJQnkLhUJpoVDeQqFQWiiUt1AolBYK5S39raf+9aorFq1QQ4/8fPhXvxz+1S+Vl1+Mvf5a6/qfvnLVUjHE4/7vJRfv/eLsLyNSKM+iUJ6TM1JzqM/guntFfaKb/zX2+mux119T972rnfJrp/zTvdc35wzuN5d9lEJhOhTKW4JHDx96/tk37/9hoYXq/8HdIkDzeYvc3M4xhx75Oe/L8ywK5S1zXodS97174R795G23HPryTXs+/5k9n//M9opPitPA5y/76DNLLj70/LPzf1yULgrlLXMu1IKcZ0336DOP2od/Pv+HRomiUN5SEoV6+VNLxKi97pNixE40zP/RUYoolLfkWajOlctP3nbLydtuee+Lnx36txdir7+mD/RfuEdv/GJF4xcrzn71hu7lN+YcY81N8390lCIK5S3TNUIs/Wz+xMdzzGhW3DqmRC/oo08XJgoFCuUtc1sJWqhIUSgUikJ5y3SNeP7Sj4ilnz9efblY+nn/xk+Lk6/TX75+oRpBoVAoCuUtxW0EhUKhKJS3UCiUFgrlLdM1QpzKUSjIhkJ5ywyv91MoSIhCeYuchfLf8hkKhZwolLfIWajFeXSUIgrlLcVtRPZ3YVEozIxCeUvRZzH+N/5AoZA/CuUtxS1UNNQd2FP38opbKRTyRKG8hXUolBYK5S1jSjR7CkOhIC0K5Tk5I0WhICcK5S3+N/6w/e5VRSlUOqbs+MrNz13ykfwL5b/lM8H7vzvwyDq9v3dB/vooORTKWy70LEaPKdGmY9GmY5H39wZfrAm+WHP2+af9D6z1P7D2wA1L6669/HdXLsmOlPhAhdc+fan4fIXnL53cYQE/nQqliEJ5yzwLFe9oEwHq+f3LIkCiPv4H1h763NJZh4jUtlyRmmEQKS+jUF5hWZZlWXMuVOPNn8qnQflEave1l2+7cslvJiL13Ccvee1L1//7FR/9/ZX/+M5VH3vnqo/tv3bJ4esuOXzdJac+d1nHTZd33HS5ery+2P9+KA4KVYYsyzJNU9f1VCqlaVpSVdWEqibURDzx3jO/nrlQZ796g/jguqOfv1p8lN2hGz/VePOnjtx4xYIUSkRqz2cu/49PLfnNpR95ZsnFNddeGbx/jSjRdINCeRaFKjeWZaVSqVgsFolE+vr6wqFwV1fXmc7Ojvb2tta2t35ZnbNQWz/xselOsp675O/3XHfZQuVpaqQu+c2lH6FQmAGFKjemaSaTyYGBgXNdXR3tHadOnTp54mTDBw3H6usPHjjwu589kP8CkDNe+eQ/NN694kJEavunLnnx+k9TKEyHQpUb0zTHksn+/v5AINDi9x9vOv7BsWOHDx1+f//7e+p2v3DPD3I2aMvSj+z4p/FlILEGdPi6S9yNaL3vroUt1JEvXXV02Wf3L7vpxI++3bW6kkIhJwpVhgzDiMfj4VC4tbX1eNPxY/X1hw4een/f/t21ddMVKqNH2aPQQh1b/tljyz/7wYqbmtYsb1qz/Pi3v9Zy312t993V9pO1nY/8+OwjPw7ct+bs/Wu67ll19s4vzPzQFMrLKFR5MgxDUZTz58+3+P1Oofbu+cu//+RHcytU2y/uOXrrtc70RwSocdWXRYBO/veq1vvuar3vrsAjPz77yI87H/hO531ruu5fc2btijN3LTt397Izt18vxqwxolBwo1BlK5VKDUciZzo7GxsaDx08tP+9fe/u3fvyuh/PrVBn7vxC+y/uOfPIj888dI+Y/pz5/h2ddy07d/eys3d+QdQnUPnpuQWIQmE6FKpsWZaladrQ4NDpttNHjxx5f9/+vX/5y5wLVdxBoTyLQpUzceXBwMBAS0vL4UOH3t2799WHH6JQKCEUqsyJmVRfX9+pllPv79u//bc1T378wxQKpYJClT/LspLJZH9/f1Nj4++3b3/6jhXZkaJQkBOF8gRxGWcwGKyrrX1m48b/8YUbMyIleaHSvaFi/xOiOCiUV1iWlVTVjvb2t95864lf/erRWz7vjpTMhepet7bY/3goGgrlIaZpxmKx1lOnfr99+6OPPvrQ1253IiVtoc6uumUs0FbsfzkUDYXyFnElZ1tb2+9+97sNGzb8bMVyESl5CtW57NrudWu7163te+rRkT+8bMSUYv+boZgolOcYhhGNRk8cP/HqK69u2LDhweVfffLjHz5xw2WLEyBRn+51a4f+bZMY6vF69Xg9EyXkRKG8yDCM0dHRE8dPvPbaa9WPVP/0tmXOZ8XN84zMmf6I+sTf3ysCxFQIc0OhPEpE6nRb2x9+/4cnnnji1fu+n+f0J7zhJ6I+I394WdSHF9pw4VAo7xKXIPT09Jw4caK+vr790IHQb5/p+b/P9r3wL/3/7zfRY4eUDw7HG48YhmFZVrGfLDyKQnmaZVmGYWiaNjY2pmmaruuGYZimSZIgCQoFQF4UCoC8KBQAeVEoAPKiUADkRaEAyItCodwk29s67/1u573fHd75ZrGfC+aLQqHcxBuOnbzmipPXXNH3Qk2xnwvmi0Kh3FCockKhUDTxhmOD2165EIelUGWDQqE4Wm+vPHnNFZ33fnfBj0yhygmFQnGIiFAozIxClQlVVfPcMxKJLOxusz50zg+HmrVQRkzJ/1OlUj1h5zaFKicUqrSpqrpt27afTti0aVMoNOXTmgKBgPhVIBCor6+vrq6ebk9n/40bNzoH3LFjh/u3tbW1YnsoFKqtrXWO9vjjjzc3N2ccKt5wrH3NShELEaNke5s90abs4dyr66F17u3BxzZMl6q+F2rE2aKzpz1NoTrv/a7YyCUIpYVClTBVVd01cQQCAWcfp1DukAnV1dUZ05/m5ubso23bti17h5yP605e9L292Q3Kp1BOStyjfc3KjEgZMcWdPzHCzz5t5yrU8M43neMs8H8DXGAUqoRt3brViUggEHAmOI8//rizj1MokaTa2tp9+/Y5cx93fVRVFdurq6ubm5ubm5sff/zxjORlHG3fvn319fXObu6jOVObwW2vxBuODe980zmhizcccyLSvmal+DHecEz8dnDbK533fjf63l5xL//N1znHcf/dnZC13l4pHiL87NPiIBmFMmKK82REIlFCKFSpikQi2T1yJkr19eNf0utuinMi5t7oTKOcwGX3aOvWrdl3zN6turpabEm2t7knNTnluVLuzMXcezoNar29MvsEMKNQfS/UsCxVuihUqXKC4sTInrEp7pDZtr1p06aMbImpUMZuYqOTHudoGzdudO/mTMrEj/msVef/Wp7Y03/zdc4WZ6Eq56KS+9FTPWExC2u9vXLWB4KEKFSpchKTseCdMZ1xmrJp0yb3bk7gamtrbdeMzH2m5n6UjKM5Bcy5mzOHyjnHEQotlLNQZedqlpu7UMHHNojbzlkkSguFKlXOWvXM252miBI5nO3i1Tp3yGpdnKOJc7rpjpZRKHvqOlHO1Z+ZCxVvOBZ8bEPGqrnzq1nv67y0N+vJJiRHoUqVsx6Usd2JhVhgmrVQYm7lXmDKqdBCJdvbnEXunKd701XGiCk5X87LLtR03XF2mOHRUSooVKmatVDi7K/QQj3++OObcpm5d9mFsm072d7mviBAXKzkmK5Qzl3a16wc3vmm+6IqscOsi1zZhfLffB1fKVqiKFSpmrVQ4sdZCyVWlKbbLUNBhRLCzz7tlMK9GJSzUIPbXhHbux5a52x0plTix/znUP6br3PW1JlGlSgKVaqmi4JzdZL4cbqmONdeiu0Zy1LTmUOh7Gm6k7NQTozc72KZrlCzrkOFn3061RNmGlXSKFSpci7XdF9Brqqqc7Imtsz6Wt6+ffts12t5GZcRZJhboexcPcpZGWdx3b3Rud4yY7eT11yRMzoZp4HOejnTqFJEoUrVvn37smc9zszIuWgg+3JKwXmRzrlYwZl8zfCe4TkXKvuzVpzFJvdu2RcWGDEle6OzMpXz46UyCsU0qqRRqFLlzHrcb69zSpHzfSpOVurr6zOmWrZrVrVx48bpPq6goNfynNtOMrLP8jJO6Jz0OCtWzhXh7kI577Pz33xd9oVO2UvprEaVLgpVwnbs2OGEpra21smE+3LKjMsItm7d6n4LsfsDCVRVdaZR1dXV27Ztq62t3bp1a3V1tTPPyrNQ4orN9jUr3ddMZqyUOzFqvb3S+dYDp0f+m6/LuK+7UPbUNxi3r1nZ9dC69jUrxZQqu1DutXOmUaWFQpWwnJ9tkDEDcq9DZeyZcfm4bduhUMiJlJtYq7LzLpR74uOMjHeoZHz4gbgWIfsTC9yvx7nvnvOzDfL59BWmUaWFQpW8+vp656olJyUOd1MCgcDWrVvFntkf5ySoqlpfX+/stm3btvr6eid5kUhEXGvuXp4Xz0FsFz8aMWV455tdD60T3woVfvbpnJeVR9/b6+zjrCgZMaXvhRqxMfjYhlRPON5wrO+FmpxlcT9K8LENYo6W6gmL/d1TtmR7m9h4IT4ZHRcOhSpzeV7oBMiJQpU5CoWSRqHKHIVCSaNQZY5CoaRRqDJHoVDSKFSZo1AoaRQKgLwoFAB5USgA8qJQAORFoUqYaVmGyShsmJZV7P9uKACFKlWWZcW1NGMOg0SVEApVqgyTQs1xGCaNKhkUqlRRKArlBRSqVC1CoXY3tLy0+8Dmd94N9AyILdv3Hd3vbxe33z7c9PbhJvHj24ebms+F41r6uTfq4lo60DPw3Bt1L+0+IH47FEts33d0+76jOY+z+Z133z7ctPmdd8WPT/3HTrEzhYJNoUrXIhRKdGcolnDysX3f0Zd2HxC3RYzcezobm8+F3z7c5Py4u6FFtGmG42zfd9R9BHfOKJSXUahStWiFcqoxFEu8fbjJKcvmd951z6cyCvXS7gO7G1qOtXe5W5bzOGLjS7sPdA+NZjeOQnkchSpVi1+oY+1d+/3tL+0+MBRLiB1e2n1AdEQU5+3DTf/rpT+6CyVO1jIKlXEccT6YESwKBYFClarFLJQ4OxMLT5vfeVfMjNxBmfksz4lRzuOIfTIqtt/f7n4UCuVZFKpULVqhdje0iNyIvgR6BsSP3UOj3UOjYu6Ts1DdQ6PiLsfau8RSlJhSZRzHaZxYeHrujbruodHn3qhzZmoUyssoVKlahEKJ0Dgr1s6qk7ixu6Fld0OL6EjzubBYRRK/6h4aFS/zOZVpPhfOuLtzQ/wZ6BkQD5RxRwrlcRSqVHE9FIXyAgpVqigUhfICClWqeF/e3EaC9+WVFApVwiw+26DwYfHZBiWFQgGQF4UCIC8KBUBeFAqAvCgUAHlRKADyolAA5EWhAMiLQgGQF4UCIC8KBUBeFAqAvCgUAHlRKADyolAA5EWhAMiLQgGQF4UCIC8KBUBeFAqAvCgUAHlRKADyolAA5EWhAMiLQgGQF4UCIC8KBUBeFAqAvCgUAHlRKADyWvhC7aqprqhYXVNTXbmquse2W3durqioqKio3NXck2vPma1uneezAVDKFqBQPc27KrPSsnnnztUVFU/V1FRWVFTXvFq9qnLzzgJqI+JVXbOr0CcDoJwsyByqp3pVpZjviBnT6vWbbdvevH51RUWFmEm5b+eDQgGwF+osT0yjqmtqVrsyJDauXr95V011RUXlqztfrcw6a5s4B8yNQgEet2DrUJvX37NqVaV7val156vr198zt9YwhwJgL2ihVq9ev1mczblUTkQqx0r5DCYKVTNxOJbMAS9amEKJME23Fj51Kb1yV3NPVsgyVa6qfnX8lb7VrXbr6ukPDqCMzb9QrasrKioqVu90rZFn/Xa6vogl9vGzOSdkYueJH5k9Ad4130KJq59ap7nmII817/GEVdfsco5Quaq6uXlX5cQlC8yeAM9asHUo55W7jM3OhQjTEUtOm3e2iiPcs36906kCFq4AlKMFLtQ0Zj9Tc64vr67Z5TRrbs8EQNlYsEK17tyc/YLdrpqnVq1aNfOreBOr5uKCKXE+OL4+RaQAj1vI9+WJyy9dZ2dTFsJz7lyRtTQ+sfP4+lTWaSMAD1ngdw6LCZHIimhQzjw553TuWdLUQtlO4GZbawdQtuZZqCkRyUeu9e8pB8k4s3NeKwTgQfJ8PlRP9apKJkoA3OQpFABkolAA5EWhAMiLQgGQF4UCIC8KBUBeFAqAvCgUAHlRKADyolAA5EWhAMiLQgGQF4UCIC8KBUBeOQo1AgByYA4FQF4UCoC8KBQAeVEoAPKiUADkRaEAyItCAZAXhQIgLwoFQF4UCoC8KBQAeVEoAPKiUADkRaEAyItCAZAXhQIgLwoFQF4UCoC8ilaoqqqqqqqqhdoNQFlagEJVzWjWO+Zz8EKfEoDysGCFmvl2xs555mwO1QNQTopTqJkPMoe7AyhLi32Wl2ehqqqqdu3alb2RPAGeIu8cytnupIo8AV4j9TqUe/9CnxWAMiDpWV6hhwVQlmQ5y8veJ3sdKv8jACgPi1qoQuNCoQCPK4FCcZYHeNZ8CzXDNCfjV3MoC3MowON45zAAeVEoAPKiUADkRaEAyItCAZAXhQIgLwoFQF4UCoC85lUoy7J6enr8fn8jAMzI7/eHw2HLshavUD09Pa2trUNDQwoAzGhoaOj06dM9PT2LVyi/3z8yMqJpWhoAZqRp2sjIiN/vX7xCNTY2appW6LQNgAdZlqVpWmNjY0H3mm+h0ul0gc8TgEel02kKBUBSFAqAvCgUAHlRKADykq1Q9Zuq1u8IFfR8AJQtCgVAXhQKgLzkKFT9pvEvUdi0yVWoya314/uFdqyv2rRjx3pnc8h1e3IXgdIBJU+GQtVvmihMaMf6ibKEdqx3bRyvjev3ol+T+4pbk4dy3wRQoiQo1JQTu4kfJgPl3sO9Ndft3PcCUKqKXyjXFMmeWii3/Ao1JUpTcgWgFBW/UHnMoRzMoQBvkaBQs61DZSxJzVQo1qGA8iJDoSbP6dbv2JHrtTxny6yF4rU8oKzIUSgAyIVCAZAXhQIgLwoFQF4UCoC8KBQAeS12ofx+fywWK/BJAvCoWCy2qN9GFQ6H29vbE4lEgc8TgOckEomOjo5wOFzQvfhWdACLoQjfig4AFxSFAiAvCgVAXhQKgLwoFAB5USgA8qJQAORFoQDIi0IBkBeFAiAvCgVAXhQKgLwoFAB5USgA8qJQAORFoQDIi0IBkBeFAiAvCgVAXhQKgLwoFAB5LXChqqqqqqqq8twtw3weF0BZmm+hcrYmZ3pm6BGFApDTwhQq+/asW2a+IwDYF+Isb9euXTMUh0IByN8CFMqp0lNPPWVP0yBnz5xVolAAclrgQrnzlD2ZchahHnzwwRlWrABAWPh1KEdGodwbH3zwwRmOAwDCwqxD5TkJolAACrKo10O5J1YzzLYAQFiYdag8179nWHKiUACyLVihLMuyLGu6286WP//5z9nbc+4MoJwsaqHcD1u1enXV6tVVVVPH6vFh2fbMI/89GQxGyQxr6pjcXliwCi6Uc3jngU3LNkzLMC3DssXQTYvBYHh8OEEQfTAt292NPDtVWKEm2zQRJvE8dNNOG1batFOGlTZtBoPBSDtBMCzdHJ+7TEmVbc8aqQIK5eTJnEhj2rBShpUyLM2wNN0e062kbiV1S01batpKMhgMT47xAuhWUrfGdEvTbW2iFWljfG5lWnlFKt9CufOkm5aYMWmGNaZbatpKpMxEyopppqKZimYpmqloZnSMwWB4cSiuFMQ0M5GyEilTTVtjuqVNzqqsfCKVV6Ey82Tamj7epnjKUjRrdMwcGTOHk2YkaQ6p5pBqDiaMQdVkMBheHAlDdCCSNIeT5siYOTpmKpoVT1njndKttGnnE6m8C+XOk2ElddEmcyRpRpLmQMLsixu9cSMcM8IxI6QY3WJEGQyGx4ZidCtGSBmvQW/c6IsbAwkzkjRHkqaimfGUlZyYTE1Gas6FGp9A2eMLT5puJXUrkbKimhVRzYGE2Rs3QopxPmp0jehnRvTOYT0wrHdE9ACDwfDk6IjogWG9c1g/M6J3jejno0ZIMXpFp1QzqlkJESl9fFnKuRBhroWaWB1Pm/aYbsVFnpJmX9wIKca5Uf3MsN4e0VsH0y0D6ZYBvbk/LcZJBoPhseH8798yoLcMpFsH0+0R/cywfm5UDylGX9yIJM2oZsVT1phupU3Xqvl8CmWYVtqwNMNS05aimRHV7Isb56PGnzrGntyvPLwnymAwGDOMJ/crO9vHzkeNvrgRUU1FM9W0pYlX90xrHoWybcu2ddNKGZaYQI0kzYGEGVKMP3WMPX801tajAMDM2nqUmqPKnzrGQooxkDBHkqaYRqUMSzfHl5LmWChxipcan0BZkaTZGzfOjepP7lc6+hOapqUBYEaapgX6E0/uV86N6r1xI5I0Fc1S01bKsMZP9OZQKLFMbpiWbtqaYSVS5ujY+ATqzLD+8J6opmlzfk8gAO+wLEvTtIf3RM8M62IaNTpmJlKmJq44F9OorJjkUShnEUq3EylrZGx8Bao9oj+8J5pOpxfx7wighKXT6Yf3RNsjuliNGhkzEylL0+0ZlqLyK9TEq3gxzRxOmr1xo2tEbx1MUygA+ROFah1Md43ovXFjOGnGNNN5RW9ehUoZVlK3FM2MJM1wzDgzorcMUCgABRCFahlInxnRwzGxFGUm9fGlqPnOoZK6pWjWkGqGY0bnsN4y4KGzPD7/E5i/iULpncN6OGYMqaaiWcn5z6HEm13ElVBDqhlSjMCw3tzvoTkUhQLmTxSquT8dGNZDiiiUqabH3/4y10LZUwo1mDC6FaMjQqEAFMYpVEdE71aMwYQxpVBzfC1volDJtBUdMwdVs1sxAhQKQIEm51CiUKoZHTOTC1+oqBGI6CcpFIBCiEKdFIWKUqiFQ6GA+ZOjUKEd6ye/Fm9TfVlsp1DA/ElRqPpNVVNM/L9f0tspFDB/MhRqygzE9X9+aW+nUMD8yVCozDnI+h2hMthOoYD5W6xCzXK1gWsa4lreKentFAqYvwt7tQFXbAKYjwtzxSbveqFQwEK4MO964Z3DFApYCBfqncN8+gqFAubvwn76Cp9gB2A+Ltgn2GV/CvCozqcAAyjI5KcAj+oL9ynAM36TAoUCkCdRqIX8JgV76rdRJbO+japrOLVYfzsApe3ccCrj26iS8/w2KnvGb/Tc2T722/pYcFRfhL8bgJIWHNVf+CC+s33Bv9GTb0VnMBjzHhfsW9Ety7LGT/TEK3rxlBXVrEjS7IsbIcU4N6qfGdbbI3rrYLplIN0yoDf3p8U4yWAwPDac//1bBvSWgXTrYLo9op8Z1s+N6iHF6IsbkaQZ1SwxgRKv4pnTvJCXd6Fs27Jtw7LThqXpVlK3EiJSqjmQMHvjRkgxzo/qXSP6mRG9c1gPDOsdET3AYDA8OToiemBY7xzWz4zoXSP6+VE9pBi9cWMgYUZUM6pZiZSV1C1Nt9LiSiixmjS3QrmnUeLtL5phJXUrnrIUzRxJmpGkOZAw++JGb9wIx4xwzAgpRrcYUQaD4bGhGN2KEVLGa9AbN/pEm5LmSNJUNDMu8mSMv9llhglUIYWy7SmR0q0x3VLTolPW6Jg5MmYOJ81I0hxSzSHVHEwYg6rJYDC8OBKG6EAkaQ4nzZExc3TMVDQrnrLUtDUmZk/uPE0zgcq3UDkiZYxPpsZ0K5m2EikzkbJimqlopqJZimYqmhkdYzAYXhyKK++rdnQAAAZhSURBVAUxzUykrETKTIo2GVbatNOGlU+eCihURqQMa3xZKmVYKcPSDEvT7THdSupWUrfUtKWmrSSDwfDkGC+AbiV1MWOytYlWiIWnydXxGfNUWKHckRq/jNO0dNMyLFs3bTGrSolAMhgMhhMEcdW4ZeumZYipk51Xngou1HiknE65UmWY42kUz4PBYHh8OEEwMsI00aZZ8zSXQk3p1MSFCJMPbLmeAYPB8OyYLgiT5cjLHAs1bbAAIJc5hGXBCgUAFwKFAiAvCgVAXhQKgLwoFAB5USgA8qJQAORFoQDIi0IBkBeFAiAvCgVAXhQKgLwoFAB5USgA8qJQAORFoQDIi0IBkBeFAiAvCgVAXhQKgLwoFAB5USgA8qJQAOSVo1BnAUAOzKEAyCtHoVQAkAOFAiAvCgVAXhQKgLwoFAB5USgA8qJQAORFoQDIi0IBkBeFAiAvCgVAXhQKgLwoFFD+EhPiReI8gUKfOYUCylwikWgNDn39+Yb/uu5d3w/rijI+9Iv37qxpaA0OFRopCgWUs0Qi8Z9tvX/96J4PPXvkyq3+ipfaijKu3Or/8L8c/esNe3a39hcUKQoFlC1xWnfxEwc/tPHIh55vvujXTb4nG4syLvp109893/yhjUcufuKgOOnL869AoYCylUgkYrHYRdV/+dtnTvieaCz6+NtnTlz0yN5YLEahAKiJREJRFN9DdRc90eR7rLHo46InmnwP1SmKQqEAqPF4XFEU38/qfP+zUZbxszpFUeLxeJ5/BQoFlK14PB6NRn0P1vk2NMoyHqyLRqMUCsBEoR6o81U3zj7u2jI5xI/O9px75nPM7PEAhQKgqqpTqPvrfOsbZx3ub1gRP/rWN/q+tWX8Rtaevm9tyeewmeN+CgVAVVWnUD+q8z3UOMuo2uLcsG3b91CjbdvO7cnfuobYYfYjZ4wfUSgAqqo6hbqnzvezxpmHbdu+b24Zv+He+LNG3ze3uDdm3mu2I2eOeygUAFVVnUL9oM63rnHWYdu2b+UW8acYk1ty3sXZOY+DT44fUCgAqqo6hfpene8njbOPb2yxbdv3k8kFKXHb940tOfef3CGfgzvjexQKgKqqTqG+U+e7r3GW8bUttm37vrYle4xvz7qLbdvOnwWM71AoAKqqOoX6dp3v3saZh23b4s9szm+njBVbJn+1Ysusx58c36ZQAFRVdQq1ps73w8Z8hm3bvuVb3MO27Wn3zHV79rGGQgFQVdUp1Oo63/cb8xm551DZey7b4t5u27Zv2ZY8H8K3mkIBUFXVKdSqOt/axjyHbdu+r2zxrW30fWWLbds59sm1ffJes45VFAqAqqpOoVbW+e5unGVUbnGGbdvOn5NjYjfbtnMeYXz/WR9oJYUCoKqqU6iv1/m+1TjzyHl+N+Vcb2K3mQ8y6wP5vk6hAKiq6hRqRZ2vqlGWsYJCAVBV1SnUbXW+OxtlGbdRKACqqjqFWlbnu6NRlrGMQgFQVdUp1K11vq81yjJupVAAVFWd+BTgi1bs9S3/wHdbY/HH8g8uWrGXTwEGoKoT36Twd98+8DdfPehb1lj08TdfPXjx2oN8kwIAVZ34Nqrahp6/uvF13+f/5Ks84ru1sTij8ojvpj//1Y2vv3k4xLdRAVDViW/0VBTlg/Zw5WN//i/ffsl355aijP/2/Vdv/dWuI6e6xSkehQKgqhPTKEVRRkdHR0ZGhotkZGRkdHRUUZSCJlAqhQLKnphJiU4pihJddOJxY7FYQbMngUIB5S8xIV4kzhMo9JlTKADyolAA5EWhAMiLQgGQF4UCIC8KBUBeFAqAvILBYCAQCAaDfX19FAqARFKpVCgUcgo1PDxMoQDIIplMhsPhzs7OYDDY398/PDwci8V8qVSq2E8MgNdpmtbf39/d3X327Nnu7u6BgYGRkZFYLOaLRqOaphX76QHwLk3TotFoOBwOBALnzp0Lh8ODg4Ojo6PxeNwXDof7+/tVVU0mk8lksthPFYBXOM3p7+8Ph8MdHR3iFE+8kBeNRhOJhM/v93d1dYXD4VAoFASARRQKhcLhcFdXl9/vb29v7+rqCoVCYhFKURRVVX2nT5/2+/3Hjx9vaGior68/cuTI4cOHDx06dBAALoBDhw4dPnz4yJEj9fX1DQ0Nx48f9/v9p0+fPnv2bDAY7O3tHRoaGh0djcViqqr+f00w8JupU9ZGAAAAAElFTkSuQmCC" alt="" />
通过你的网络访问:http://x.x.x./horizon 用户名/密码:demo/openstack 或者admin/openstack (至此控制节点安装完成,如果你的控制台不出现错误提示说明安装成功)
aaarticlea/png;base64,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" alt="" />
openstack grizzly版cloud控制节点安装的更多相关文章
- openstack grizzly版network网络节点安装
版本以及源的配置和控制节点一致 1.安装完操作系统已经apt源配置完成之后,一定要执行 apt-get update root@cloud:~# mv /etc/apt/sources.list /e ...
- CentOS7安装OpenStack(Rocky版)-01.控制节点的系统环境准备
分享一下Rocky版本的OpenStack安装管理经验: OpenStack每半年左右更新一版,目前是版本是201808月发布的版本-R版(Rocky),目前版本安装方法优化较好,不过依然是比较复杂 ...
- Openstak(M版)控制节点安装
#############修改hosts文件 # controller10.0.0.11 controller# compute110.0.0.31 compute1# block110.0.0.41 ...
- 2.openstack之mitaka搭建控制节点数据库和消息队列
一:部署mariadb数据库 控制节点(192.168.11.103): yum install mariadb mariadb-server python2-PyMySQL -y 编辑: /etc/ ...
- openstack Q版部署-----界面horizon安装(9)
一.界面的安装 控制节点安装软件包: yum install openstack-dashboard -y [root@linux-node1 ~]# vim /etc/openstack-dashb ...
- OpenStack搭建Q版在控制节点上的环境准备(step2)
接下来是只需要在控制节点上准备的环境配置.其中虽然NTP服务需要在所有节点上都安装,但NTP服务在控制节点和其他的节点上的配置是不同的,所以不把它放在step1的公共配置中进行准备.如下: 1.配置N ...
- openstack Q版部署-----keystone认证服务安装配置(3)
一.新建数据库及用户(控制节点) 登录数据库,创建db以及用户: CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'ke ...
- OpenStack IceHouse 部署 - 3 - 控制节点部署
Mysql部署配置 安装 安装mysql,mysql的python绑定 apt-get install mysql-server 安装过程中会要求设定mysql的root账户的密码,这里假定设为my ...
- openstack 部署笔记--neutron控制节点
控制节点 配置neutron用户及服务 $ . admin-openrc $ openstack user create --domain default --password-prompt neut ...
随机推荐
- MySQL 连接数据库
一.MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格),缺点:密码显示在显示器上,容易泄露. C:\>mysql -h localho ...
- 如何在本地安装测试ECSHOP 转载
如何在本地安装测试ECSHOP 如何在本地(自己的电脑)上先安装ECShop 一.创建PHP环境 1.下载AppServ 因为ECShop在线网上商店系统是用PHP语言开发的,所以,在本地架设网店之前 ...
- PHP常用数组函数
一.数组操作的基本函数 数组的键名和值 array_values($arr); 获得数组的值 array_keys($arr); 获得数组的键名 array_flip($arr); 数组中的 ...
- oracle创建第三方数据接口表,指定特定用户访问某张表
/*****创建用户并指定操作哪张表开始******/ --1.创建用户并设置默认表空间 CREATE USER CHENGDWY IDENTIFIED BY CHENGDWY DEFAULT TAB ...
- 数据库基本概念-oracle介绍
甲骨文公司,全称甲骨文股份有限公司是全球最大的企业软件公司,总部位于美国加利福尼亚州的红木滩.甲骨文是继Microsoft及IBM后,全球收入第三多的软件公司.甲骨文公司1989年正式进入中国市场.重 ...
- Silverlight中在MVVM模式下对DatagridRow选择控件封装
在项目中,凡是涉及到表格的地方用的最多的控件,自然少不了DataGrid的身影,它明了的展示各种数据让人十分喜欢.现在要实现一个功能,使DataGrid具有全选和项选中的功能,如果在传统后台代码中完成 ...
- (转载)Convolutional Neural Networks卷积神经网络
Convolutional Neural Networks卷积神经网络 Contents 一:前导 Back Propagation反向传播算法 网络结构 学习算法 二:Convolutional N ...
- 一个C++程序员学习C#语言
感悟:C++是一门语法非常严谨的语言,只是指针就很难掌握,这其中肯定要经历很多折腾,特别是自学者. 折腾了一年半的C++,在即将毕业之际,对Unity3d游戏开发感兴趣,先是用cocos2dx开发了个 ...
- oralce闪回
Oracle闪回操作 1. 记录当前时间或SCN 在数据库变动前记录时间或SCN SQL> select to_char(sysdate,'YYYY-MM-DD HH24:mi:ss') fr ...
- BZOJ 3672 购票
Description 今年夏天,NOI在SZ市迎来了她30周岁的生日.来自全国\(n\)个城市的OIer们都会从各地出发,到SZ市参加这次盛会. 全国的城市构成了一棵以SZ市为根的有根树,每个城市与 ...