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:~# 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
root@cloud:~# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, total 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000edd32
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 46139391 23068672 83 Linux
/dev/sda2 46141438 62912511 8385537 5 Extended
/dev/sda5 46141440 62912511 8385536 82 Linux swap / Solaris
Disk /dev/sdb: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 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
2013-10-25 23:01:00 INFO [migrate.versioning.api] 0 -> 1...
2013-10-25 23:01:00 INFO [migrate.versioning.api] done
2013-10-25 23:01:00 INFO [migrate.versioning.api] 1 -> 2...
2013-10-25 23:01:00 INFO [migrate.versioning.api] done
2013-10-25 23:01:00 INFO [migrate.versioning.api] 2 -> 3...
2013-10-25 23:01:00 INFO [migrate.versioning.api] done
2013-10-25 23:01:00 INFO [migrate.versioning.api] 3 -> 4...
2013-10-25 23:01:00 INFO [004_volume_type_to_uuid] Created foreign key volume_type_extra_specs_ibfk_1
2013-10-25 23:01:00 INFO [migrate.versioning.api] done
2013-10-25 23:01:00 INFO [migrate.versioning.api] 4 -> 5...
2013-10-25 23:01:00 INFO [migrate.versioning.api] done
2013-10-25 23:01:00 INFO [migrate.versioning.api] 5 -> 6...
2013-10-25 23:01:00 INFO [migrate.versioning.api] done
2013-10-25 23:01:00 INFO [migrate.versioning.api] 6 -> 7...
2013-10-25 23:01:00 INFO [migrate.versioning.api] done
2013-10-25 23:01:00 INFO [migrate.versioning.api] 7 -> 8...
2013-10-25 23:01:00 INFO [migrate.versioning.api] done
2013-10-25 23:01:00 INFO [migrate.versioning.api] 8 -> 9...
2013-10-25 23:01:00 INFO [migrate.versioning.api] done
root@cloud:~#
14.6重启cinder服务: