OpenStack(i版)之Keystone,Glance,Nova,Neutron,Horizon

一、前期准备

1.1、linux-node1:

[[email protected]1 ~]# egrep '(vmx|svm)' /proc/cpuinfo ##有输出就支持虚拟化

[[email protected] ~]# cat /etc/redhat-release

CentOS release 6.8 (Final)

[[email protected] ~]# uname -r

2.6.32-642.el6.x86_64

[[email protected] ~]# getenforce

Disabled

[[email protected] ~]# service iptables status

iptables: Firewall is not running.

[[email protected] ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

[[email protected] ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

[[email protected] ~]# date  ##时间一定要同步

Sun Jun 24 10:20:31 CST 2018

[[email protected] ~]# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:2B:9F:B1

inet addr:10.0.0.101  Bcast:10.0.0.255  Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe2b:9fb1/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:1238 errors:0 dropped:0 overruns:0 frame:0

TX packets:569 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:122277 (119.4 KiB)  TX bytes:77114 (75.3 KiB)

[[email protected] ~]# cat  /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=linux-node1

[[email protected] ~]# cat  /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

10.0.0.101 linux-node1

10.0.0.102 linux-node2

[[email protected] ~]# ping linux-node1

PING linux-node1 (10.0.0.101) 56(84) bytes of data.

64 bytes from linux-node1 (10.0.0.101): icmp_seq=1 ttl=64 time=0.045 ms

^C

--- linux-node1 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1896ms

rtt min/avg/max/mdev = 0.042/0.043/0.045/0.006 ms

[[email protected] ~]# ping www.baidu.com

PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.

64 bytes from 61.135.169.125: icmp_seq=1 ttl=128 time=3.58 ms

64 bytes from 61.135.169.125: icmp_seq=2 ttl=128 time=3.80 ms

^C

--- www.a.shifen.com ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1313ms

rtt min/avg/max/mdev = 3.587/3.697/3.807/0.110 ms

[[email protected] ~]# yum install -y python-pip gcc gcc-c++ make libtool patch automake python-devel  libxslt-devel MySQL-python openssl-devel libudev-devel git wget  python-numdisplay device-mapper bridge-utils libffi-devel libffi libvirt-python libvirt qemu-kvm gedit python-eventlet  ##基础软件包安装

1.2、linux-node2:

[[email protected] ~]# egrep '(vmx|svm)' /proc/cpuinfo  ##有输出就支持虚拟化

[[email protected] ~]# cat /etc/redhat-release

CentOS release 6.8 (Final)

[[email protected]2 ~]# uname -r

2.6.32-642.el6.x86_64

[[email protected] ~]# getenforce

Disabled

[[email protected] ~]# service iptables status

iptables: Firewall is not running.

[[email protected] ~]# date

Sat Jun 23 16:40:15 CST 2018

[[email protected] ~]# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:61:F7:97

inet addr:10.0.0.102  Bcast:10.0.0.255  Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe61:f797/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:1464 errors:0 dropped:0 overruns:0 frame:0

TX packets:533 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:139021 (135.7 KiB)  TX bytes:69058 (67.4 KiB)

[[email protected] ~]# cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=linux-node2

[[email protected] ~]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

10.0.0.101 linux-node1

10.0.0.102 linux-node2

[[email protected] ~]# ping linux-node2

PING linux-node2 (10.0.0.102) 56(84) bytes of data.

64 bytes from linux-node2 (10.0.0.102): icmp_seq=1 ttl=64 time=0.100 ms

64 bytes from linux-node2 (10.0.0.102): icmp_seq=2 ttl=64 time=0.047 ms

^C

--- linux-node2 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1028ms

rtt min/avg/max/mdev = 0.047/0.073/0.100/0.027 ms

[[email protected] ~]# ping www.baidu.com

PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.

64 bytes from 61.135.169.121: icmp_seq=1 ttl=128 time=3.02 ms

64 bytes from 61.135.169.121: icmp_seq=2 ttl=128 time=3.06 ms

^C

--- www.a.shifen.com ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1376ms

rtt min/avg/max/mdev = 3.022/3.044/3.066/0.022 ms

[[email protected] ~]# yum install -y python-pip gcc gcc-c++ make libtool patch automake python-devel  libxslt-devel MySQL-python openssl-devel libudev-devel git wget  python-numdisplay device-mapper bridge-utils libffi-devel libffi libvirt-python libvirt qemu-kvm gedit python-eventlet  ##基础软件包安装

二、基础服务部署

2.1、数据库服务(Mysql): Openstack的各个组件都需要mysql保存数据

[[email protected] ~]# yum install -y mysql-server

[[email protected] ~]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

[[email protected] ~]# vim /etc/my.cnf

default-storage-engine = innodb

innodb_file_per_table

collation-server = utf8_general_ci

init-connect = 'SET NAMES utf8'

character-set-server = utf8

[[email protected] ~]# service mysqld start

[[email protected] ~]# chkconfig mysqld on

[[email protected] ~]# mysql

create database keystone;  ##认证服务

grant all on keystone.* to [email protected]'10.0.0.0/255.255.255.0' identified by 'keystone';

create database glance;  ##镜像服务

grant all on glance.* to [email protected]'10.0.0.0/255.255.255.0' identified by 'glance';

create database nova;  ##计算服务

grant all on nova.* to [email protected]'10.0.0.0/255.255.255.0' identified by 'nova';

create database neutron;  ##网络服务

grant all on neutron.* to [email protected]'10.0.0.0/255.255.255.0' identified by 'neutron';

create database cinder;  ##存储服务

grant all on cinder.* to [email protected]'10.0.0.0/255.255.255.0' identified by 'cinder';

exit

2.2、消息代理(Rabbitmq):消息队列是交通枢纽的作用,在Openstack云平台的沟通过程中需要使用消息队列

[[email protected] ~]# yum install -y rabbitmq-server

[[email protected] ~]# /etc/init.d/rabbitmq-server start

Starting rabbitmq-server: SUCCESS

rabbitmq-server.

[[email protected] ~]# chkconfig rabbitmq-server on

[[email protected] ~]# /usr/lib/rabbitmq/bin/rabbitmq-plugins list  ##列出所有的插件

[[email protected] ~]# /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management ##启用web监控插件

[[email protected] ~]# /etc/init.d/rabbitmq-server restart

[[email protected] ~]# netstat -lntup|grep 5672

tcp    0   0 0.0.0.0:15672    ##web界面端口   0.0.0.0:*     LISTEN    13778/beam.smp

tcp    0   0 0.0.0.0:55672    ##web界面端口   0.0.0.0:*     LISTEN    13778/beam.smp

tcp    0   0 :::5672     ##rabbitmq服务端口  :::*        LISTEN   13778/beam.smp

2.2.1、客户端登陆http://10.0.0.101:15672  用户名和密码都是guest

2.2.2、Rabbitmq基本管理

[[email protected] ~]# rabbitmqctl change_password guest openstack   ##修改默认的guest密码

[[email protected] ~]# rabbitmqctl add_user openstack openstack  ##添加用户

[[email protected] ~]# rabbitmqctl set_user_tags openstack administrator  ##设置用户角色

[[email protected] ~]# rabbitmqctl list_users  ##列出用户

三、Openstack安装部署

3.1、身份认证服务(Keystone): 用户认证、服务目录

用户和认证:用户权限与用户行为跟踪

服务目录:提供一个服务目录,包括所有服务项与相关API的端点

[[email protected] ~]# vim /etc/yum.repos.d/icehouse.repo  ##安装i版的openstack时,需要自己编辑repo文件

[icehouse]
name=Extra icehouse Packages for Enterprise Linux 6 - $basearch
baseurl=https://repos.fedorapeople.org/repos/openstack/EOL/openstack-icehouse/epel-6/
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

[[email protected] ~]# yum install -y openstack-keystone python-keystoneclient

[[email protected] ~]# keystone-manage pki_setup --keystone-user keystone --keystone-group keystone

Using configuration from /etc/keystone/ssl/certs/openssl.conf

[[email protected] ~]# chown -R keystone:keystone /etc/keystone/ssl/

[[email protected] ~]# chmod -R o-wrx /etc/keystone/ssl/

[[email protected] ~]# vim /etc/keystone/keystone.conf  ##修改配置文件

admin_token=ADMIN

connection=mysql://keystone:[email protected]/keystone

debug=true   ##在生产环境不建议打开,还是false

log_file=/var/log/keystone/keystone.log

[[email protected] ~]# keystone-manage db_sync   ##同步文件到数据库

[[email protected] ~]# mysql -e "use keystone;show tables;"  ##确定表已经建立

+----------------------+

| Tables_in_keystone |

+----------------------+

| assignment      |

| credential      |

| domain        |

| endpoint       |

| group        |

| migrate_version    |

| policy         |

| project       |

| region        |

| role          |

| service       |

| token        |

| trust        |

| trust_role      |

| user          |

| user_group_membership|

+----------------------+

[[email protected] ~]# /etc/init.d/openstack-keystone start

Starting keystone:                                  [FAILED]

[[email protected] ~]# tail /var/log/keystone/keystone-startup.log

_setup_logging_from_conf(product_name, version)

File "/usr/lib/python2.6/site-packages/keystone/openstack/common/log.py", line 525, in _setup_logging_from_conf

filelog = logging.handlers.WatchedFileHandler(logpath)

File "/usr/lib64/python2.6/logging/handlers.py", line 377, in __init__

logging.FileHandler.__init__(self, filename, mode, encoding, delay)

File "/usr/lib64/python2.6/logging/__init__.py", line 835, in __init__

StreamHandler.__init__(self, self._open())

File "/usr/lib64/python2.6/logging/__init__.py", line 854, in _open

stream = open(self.baseFilename, self.mode)

IOError: [Errno 13] Permission denied: '/var/log/keystone/keystone.log'

[[email protected] ~]# ll /var/log/keystone/keystone.log

-rw-r--r-- 1 root root 0 Jun 24 23:49 /var/log/keystone/keystone.log

[[email protected] ~]# chown keystone:keystone /var/log/keystone/keystone.log

[[email protected] ~]# ll /var/log/keystone/keystone.log

-rw-r--r-- 1 keystone keystone 0 Jun 24 23:49 /var/log/keystone/keystone.log

[[email protected] ~]# /etc/init.d/openstack-keystone start

Starting keystone:                               [  OK  ]

[[email protected] ~]# chkconfig openstack-keystone on

[[email protected] ~]# netstat -lntup|egrep '35357|5000'

tcp   0    0 0.0.0.0:35357  #管理端口   0.0.0.0:*     LISTEN   7984/python

tcp   0    0 0.0.0.0:5000   #对外端口   0.0.0.0:*    LISTEN    7984/python

[[email protected] ~]# export OS_SERVICE_TOKEN=ADMIN

[[email protected] ~]# export OS_SERVICE_ENDPOINT=http://10.0.0.101:35357/v2.0

[[email protected] ~]# keystone role-list  ##出现以下内容说明 Keystone 安装成功

+-----------------------------------+----------------+

|    id                  |   name    |

+------------------------------------+---------------+

| 9fe2ff9ee4384b1894a90878d3e92bab  | _member_  |

+-----------------------------------+---------------+

[[email protected] ~]# keystone user-create --name=admin --pass=admin [email protected] #创建admin用户

[[email protected] ~]# keystone role-create --name=admin  ##创建admin角色

[[email protected] ~]# keystone tenant-create --name=admin --description="Admin Tenant"  ##创建admin租户

[[email protected] ~]# keystone user-role-add --user=admin --tenant=admin --role=admin  ##把三者关联起来

[[email protected] ~]# keystone user-role-add --user=admin --role=_member_ --tenant=admin ##关联

[[email protected] ~]# keystone role-list

+----------------------------------+-------------+

|   id              |   name  |

+----------------------------------+-------------+

| 9fe2ff9ee4384b1894a90878d3e92bab | _member_  |

| be86f8af5d16433aa00f9cb0390919a8 |  admin   |

+----------------------------------+-------------+

[[email protected] ~]# keystone user-list

+----------------------------------+--------+---------+-------------------+

|   id              |  name | enabled |  email      |

+----------------------------------+--------+---------+-------------------+

| 014722cf5f804c2bb54f2c0ac2498074 | admin  |  True | [email protected] |

+----------------------------------+--------+---------+-------------------+

[[email protected] ~]# keystone user-create --name=demo --pass=demo [email protected]

[[email protected] ~]# keystone tenant-create --name=demo --description="Demo Tenant"

[[email protected] ~]# keystone user-role-add --user=demo --role=_member_ --tenant=demo

[[email protected] ~]# keystone tenant-create --name=service --description="Service Tenant"

WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).

+-----------------+---------------------------------+

|   Property  |    Value               |

+-----------------+---------------------------------+

| description   | Service Tenant          |

|   enabled   | True                   |

|   id     | bcb01124791742708b65a80bcc633436 |

|    name   | service             |

+-----------------+---------------------------------+

[[email protected] ~]# keystone service-create --name=keystone --type=identity --description="Openstack Identity"

WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).

+----------------+--------------------------------------+

|   Property  |  Value               |

+----------------+--------------------------------------+

| description  | Openstack Identity          |

|   enabled   | True                 |

|   id     | 9de82db1b57d4370914a4b9e20fb92dd   |

|    name    |   keystone             |

|    type    |   identity             |

+----------------+--------------------------------------+

[[email protected] ~]# keystone endpoint-create \

--service-id=$(keystone service-list|awk '/identity/{print $2}') \

--publicurl=http://10.0.0.101:5000/v2.0 \

--internalurl=http://10.0.0.101:5000/v2.0 \

--adminurl=http://10.0.0.101:35357/v2.0

WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored).

+----------------+-----------------------------------+

|  Property  |   Value                 |

+----------------+-----------------------------------+

|   adminurl  | http://10.0.0.101:35357/v2.0   |

|   id     | 83327104425548d2b6b0465225fc75a8 |

| internalurl   | http://10.0.0.101:5000/v2.0   |

|  publicurl   | http://10.0.0.101:5000/v2.0  |

|   region   | regionOne             |

|  service_id  | 9de82db1b57d4370914a4b9e20fb92dd |

+----------------+-----------------------------------+

[[email protected] ~]# unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT  ##一定要取消环境变量

[[email protected] ~]# keystone --os-username=admin  --os-password=admin  --os-auth-url=http://10.0.101:35357/v2.0 token-get  ##用admin进行验证

[[email protected] ~]# keystone --os-username=demo  --os-password=demo  --os-auth-url=http://10.0.0.101:35357/v2.0 token-get  ##用demo进行验证

[[email protected] ~]# vim keystone-admin

export OS_TENANT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=admin

export OS_AUTH_URL=http://10.0.0.101:35357/v2.0

[[email protected] ~]# source keystone-admin

[[email protected] ~]# keystone token-get

[[email protected] ~]# cp keystone-admin keystone-demo

[[email protected] ~]# vim keystone-demo

export OS_TENANT_NAME=demo

export OS_USERNAME=demo

export OS_PASSWORD=demo

export OS_AUTH_URL=http://10.0.0.101:35357/v2.0

[[email protected] ~]# keystone user-role-list --user admin --tenant admin

+----------------------------------+--------------+----------------------------------+----------------------------------+

|         id        |   name   |   user_id            |     tenant_id          |

+----------------------------------+--------------+----------------------------------+----------------------------------+

| 9fe2ff9ee4384b1894a90878d3e92bab | _member_   | 014722cf5f804c2bb54f2c0ac2498074 | 01d5828b54c6495aa1349268df619383 |

| be86f8af5d16433aa00f9cb0390919a8 |  admin   | 014722cf5f804c2bb54f2c0ac2498074 | 01d5828b54c6495aa1349268df619383  |

+----------------------------------+--------------+----------------------------------+----------------------------------+

[[email protected] ~]# keystone user-role-list --user demo --tenant demo

+-------------------------------------+-------------+------------------------------------+------------------------------------+

|  id                |   name   | user_id              |  tenant_id             |

+-------------------------------------+-------------+------------------------------------+------------------------------------+

| 9fe2ff9ee4384b1894a90878d3e92bab  | _member_  | 9587cf4299be46e8aff66f2c356e1864  | 2f58035ef9b647f48e30dcb585ae7cce  |

+-------------------------------------+-------------+------------------------------------+------------------------------------+

3.2、镜像管理服务(Glance): 主要有glance-api和glance-registry

glance-api:接受云系统镜像的创建、删除、读取请求

Glance-registry:云系统的镜像注册服务

[[email protected] ~]# yum install -y openstack-glance python-glanceclient python-crypto

[[email protected] ~]# vim /etc/glance/glance-api.conf

debug=true

log_file=/var/log/glance/api.log

connection=mysql://glance:[email protected]/glance

[[email protected] ~]# vim /etc/glance/glance-registry.conf

debug=true

log_file=/var/log/glance/registry.log

connection=mysql://glance:[email protected]/glance

[[email protected] ~]# glance-manage db_sync ##同步数据库时出现警告

[[email protected] ~]# mysql -e " use glance;show tables;"

+------------------+

| Tables_in_glance |

+------------------+

| image_locations |

| image_members  |

| image_properties |

| image_tags     |

| images       |

| migrate_version |

| task_info     |

| tasks       |

+------------------+

[[email protected] ~]# vim /etc/glance/glance-api.conf

notifier_strategy = rabbit  ##其实default也是rabbit,但最好还是改过来

rabbit_host=10.0.0.101

rabbit_port=5672

rabbit_use_ssl=false

rabbit_userid=guest

rabbit_password=guest

rabbit_virtual_host=/

rabbit_notification_exchange=glance

rabbit_notification_topic=notifications

rabbit_durable_queues=False

[[email protected] ~]# source keystone-admin

[[email protected] ~]# keystone user-create --name=glance --pass=glance

[[email protected] ~]# keystone user-role-add --user=glance --tenant=service --role=admin

[[email protected] ~]# vim /etc/glance/glance-api.conf

[keystone_authtoken]

auth_host=10.0.0.101

auth_port=35357

auth_protocol=http

admin_tenant_name=service

admin_user=glance

admin_password=glance

flavor=keystone

[[email protected] ~]# vim /etc/glance/glance-registry.conf

[keystone_authtoken]

auth_host=10.0.0.101

auth_port=35357

auth_protocol=http

admin_tenant_name=service

admin_user=glance

admin_password=glance

flavor=keystone

[[email protected] ~]# keystone service-create --name=glance --type=image

+-------------+------------------------------------+

| Property  |     Value               |

+-------------+------------------------------------+

| description |                       |

| enabled   |   True              |

| id     | a843c6e391f64b4894cb736c59c6fbe9  |

| name    |    glance             |

| type    |   image              |

+-------------+------------------------------------+

[[email protected] ~]# keystone endpoint-create \

--service-id=$(keystone service-list|awk '/ image /{print $2}') \

--publicurl=http://10.0.0.101:9292 \

--internalurl=http://10.0.0.101:9292 \

--adminurl=http://10.0.0.101:9292

+---------------+---------------------------------------+

|   Property  |      Value                |

+---------------+---------------------------------------+

|   adminurl  |http://10.0.0.101:9292        |

|   id     | 5f7f06a3b4874deda19caf67f5f21a1f  |

| internalurl  | http://10.0.0.101:9292        |

|  publicurl   |  http://10.0.0.101:9292      |

|    region  |  regionOne                 |

|  service_id  | 34701cc1acd44e22b8ae8a9be069d0a7   |

+---------------+---------------------------------------+

[[email protected] ~]# keystone service-list

+----------------------------------+--------------+--------------+-----------------------+

|  id                   |   name   |   type   |    description   |

+----------------------------------+--------------+--------------+-----------------------+

| 34701cc1acd44e22b8ae8a9be069d0a7 |   glance  |  image   |               |

| ea33049270ad4450ac789e9236774878 |  keystone  |  identity  |  Openstack Identity |

+----------------------------------+--------------+--------------+-----------------------+

[[email protected] ~]# keystone endpoint-list

+------------------------------------------------------+-----------------+--------------------------------------------+-------------------------------------------+------------------------------------------------+--------------------------------------------------------+

|                id                |   region  |          publicurl          |         internalurl         |           adminurl           |            service_id              |

+------------------------------------------------------+-----------------+--------------------------------------------+-------------------------------------------+------------------------------------------------+---------------------------------------------------------+

| 5f7f06a3b4874deda19caf67f5f21a1f   | regionOne  |    http://10.0.0.101:9292    |    http://10.0.0.101:9292    |    http://10.0.0.101:9292      |  34701cc1acd44e22b8ae8a9be069d0a7  |

| 735a100c58cf4335adc00bd4267a1387  | regionOne  | http://10.0.0.101:5000/v2.0   |  http://10.0.0.101:5000/v2.0  | http://10.0.0.101:35357/v2.0    | ea33049270ad4450ac789e9236774878  |

+------------------------------------------------------+-----------------+--------------------------------------------+-------------------------------------------+------------------------------------------------+----------------------------------------------------------+

[[email protected] ~]# cd /var/log/glance/

[[email protected] glance]# chown -R glance:glance *

[[email protected] glance]# /etc/init.d/openstack-glance-api start

Starting openstack-glance-api:                       [  OK  ]

[[email protected] ~]# chkconfig openstack-glance-api on

[[email protected] glance]# /etc/init.d/openstack-glance-registry start

Starting openstack-glance-registry:                    [  OK  ]

[[email protected] ~]# chkconfig openstack-glance-registry on

[[email protected] glance]# netstat -lntup|egrep '9191|9292'

tcp     0    0 0.0.0.0:9191    #api对应的端口   0.0.0.0:*    LISTEN  5252/python

tcp     0    0 0.0.0.0:9292    #注册对应的端口   0.0.0.0:*   LISTEN  5219/python

[[email protected] ~]# glance image-list  ##说明正常

+----+------+-------------+------------------+------+--------+

| ID | Name | Disk Format | Container Format | Size | Status |

+----+------+-------------+------------------+------+--------+

+----+------+-------------+------------------+------+--------+

[[email protected] ~]# rz cirros-0.3.0-x86_64-disk.img

[[email protected] ~]# glance  image-create  --name   "cirros-0.3.0-x86_64" --disk-format   qcow2  --container-format bare --is-public True --progress < cirros-0.3.0-x86_64-disk.img

[=============================>] 100%

+--------------------+------------------------------------------+

| Property       | Value                        |

+--------------------+------------------------------------------+

| checksum        | 50bdc35edb03a38d91b1b071afb20a3c   |

| container_format     | bare                     |

| created_at       | 2018-06-29T13:14:54           |

| deleted          | False                      |

| deleted_at        | None                      |

| disk_format      | qcow2                     |

| id             | 38e7040a-2f18-44e1-acbc-24a7926e448a |

| is_public        | True                      |

| min_disk         | 0                        |

| min_ram         | 0                        |

| name           | cirros-0.3.0-x86_64           |

| owner          | 058b14b50b374f69ad1d1d535eb70eeb    |

| protected      | False                     |

| size          | 9761280                      |

| status         | active                     |

| updated_at      | 2018-06-29T13:14:55             |

| virtual_size    | None                        |

+--------------------+------------------------------------------+

[[email protected] ~]# ll /var/lib/glance/images/   ##默认存放在:/var/lib/glance/images/

total 9536

-rw-r----- 1 glance glance 9761280 Jun 29 21:14 38e7040a-2f18-44e1-acbc-24a7926e448a

[[email protected] ~]# glance image-list

+----------------------------------------+------------------------------+------------------+----------------------+---------+--------+

| ID                        | Name                 | Disk Format   | Container Format   | Size   | Status |

+----------------------------------------+------------------------------+------------------+----------------------+---------+--------+

| 38e7040a-2f18-44e1-acbc-24a7926e448a  | cirros-0.3.0-x86_64     |  qcow2     |  bare        | 9761280 | active |

+----------------------------------------+------------------------------+------------------+----------------------+---------+--------+

[[email protected] ~]# rm -f cirros-0.3.0-x86_64-disk.img

3.3、Compute Services(Nova)

3.3.1、Nova控制节点安装(Install Compute controller services)

在控制节点安装时,需要安装除了nova-compute之外的其它的所有的nova服务

[[email protected] ~]# yum install -y openstack-nova-api openstack-nova-cert openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler python-novaclient

[[email protected] ~]# vim /etc/nova/nova.conf

connection=mysql://nova:[email protected]/nova

[[email protected] ~]# nova-manage db sync

[[email protected] ~]# mysql -e "use nova;show tables"  ##有表表明同步成功

[[email protected] ~]# vim /etc/nova/nova.conf

rabbit_host=10.0.0.101

abbit_port=5672

rabbit_use_ssl=false

rabbit_userid=guest

rabbit_password=guest

rpc_backend=rabbit

[[email protected] ~]# source keystone-admin

[[email protected] ~]# keystone user-create --name=nova --pass=nova

+-----------+-------------------------------------+

| Property | Value                    |

+-----------+-------------------------------------+

|  email  |                        |

| enabled  |  True                |

| id     | 0e2c33bcbc10467b87efe4300b7d02b6   |

|  name  |    nova               |

| username |    nova               |

+-----------+-------------------------------------+

[[email protected] ~]# keystone user-role-add --user=nova --tenant=service --role=admin

[[email protected] ~]# vim /etc/nova/nova.conf

auth_strategy=keystone

auth_host=10.0.0.101

auth_port=35357

auth_protocol=http

auth_uri=http://10.0.0.101:5000

auth_version=v2.0

admin_user=nova

admin_password=nova

admin_tenant_name=service

[[email protected] ~]# vim /etc/nova/nova.conf

novncproxy_base_url=http://10.0.0.101:6080/vnc_auto.html

vncserver_listen=0.0.0.0

vncserver_proxyclient_address=10.0.0.101

vnc_enabled=true

vnc_keymap=en-us

my_ip=10.0.0.101

glance_host=$my_ip

lock_path=/var/lib/nova/tmp

state_path=/var/lib/nova

instances_path=$state_path/instances

compute_driver=libvirt.LibvirtDriver

[[email protected] ~]# keystone service-create --name=nova --type=compute

+----------------+-------------------------------------+

|   Property  |      Value               |

+----------------+-------------------------------------+

| description   |                        |

|   enabled   |   True              |

|    id     | 3825f34e11de45399cf82f9a1c56b5c5  |

|    name    |     nova                |

|    type    |    compute               |

+----------------+-------------------------------------+

[[email protected] ~]# keystone endpoint-create \

--service-id=$(keystone service-list|awk '/ compute /{print $2}') \

--publicurl=http://10.0.0.101:8774/v2/%\(tenant_id\)s \

--internalurl=http://10.0.0.101:8774/v2/%\(tenant_id\)s \

--adminurl=http://10.0.0.101:8774/v2/%\(tenant_id\)s

+----------------+-----------------------------------------------+

|   Property  |        Value               |

+----------------+-----------------------------------------------+

|   adminurl  | http://10.0.0.101:8774/v2/%(tenant_id)s   |

|   id     |  4821c43cdbcb4a8c9e202017ad056437       |

| internalurl   |  http://10.0.0.101:8774/v2/%(tenant_id)s  |

|  publicurl   | http://10.0.0.101:8774/v2/%(tenant_id)s   |

|    region  |   regionOne                |

|  service_id  |  3825f34e11de45399cf82f9a1c56b5c5       |

+----------------+-----------------------------------------------+

[[email protected] ~]# for i in {api,cert,conductor,consoleauth,novncproxy,scheduler};do service openstack-nova-"$i" start;done

Starting openstack-nova-api:                           [  OK  ]

Starting openstack-nova-cert:                          [  OK  ]

Starting openstack-nova-conductor:                      [  OK  ]

Starting openstack-nova-consoleauth:                     [  OK  ]

Starting openstack-nova-novncproxy:                      [  OK  ]

Starting openstack-nova-scheduler:                       [  OK  ]

[[email protected] ~]# for i in {api,cert,conductor,consoleauth,novncproxy,scheduler};do chkconfig openstack-nova-"$i" on;done

[[email protected] ~]# nova host-list  ##验证安装成功

+-------------+--------------+-------------+

| host_name | service    | zone    |

+-------------+--------------+-------------+

| linux-node1 | conductor  | internal  |

| linux-node1 | consoleauth | internal  |

| linux-node1 | cert     | internal  |

| linux-node1 | scheduler  | internal  |

+-------------+--------------+-------------+

[[email protected] ~]# nova flavor-list  ##验证安装成功

+----+---------------+------------+-------+---------+-------+-------+-------------+-----------+

| ID | Name      | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |

+----+---------------+------------+-------+---------+-------+-------+-------------+-----------+

| 1 | m1.tiny     | 512    | 1   | 0   |     | 1   | 1.0     | True    |

| 2 | m1.small    | 2048    | 20   | 0   |     | 1  | 1.0       | True   |

| 3 | m1.medium    | 4096    | 40   | 0    |     | 2  | 1.0       | True   |

| 4 | m1.large    | 8192    | 80    | 0   |    | 4   | 1.0      | True   |

| 5 | m1.xlarge    | 16384   | 160    | 0   |    | 8   | 1.0      | True   |

+----+---------------+------------+-------+---------+-------+-------+-------------+-----------+

3.3.2、Nova计算节点安装(Configure a compute node)

nova-comupte:一般运行在计算节点上,通过Message Queue接收并管理VM的生命周期

nova-comupte:通过Libvirt管理KVM,通过XenAPI管理Xen等

[[email protected] ~]# yum install -y qemu-kvm libvirt openstack-nova-compute python-novaclient

linux-node1上把Nova的配置文件scp到linux-node2上

[[email protected] ~]# scp /etc/nova/nova.conf [email protected]:/etc/nova

[[email protected] ~]# vim /etc/nova/nova.conf

vncserver_proxyclient_address=10.0.0.102

[[email protected] ~]# /etc/init.d/libvirtd start

Starting libvirtd daemon:

[[email protected] ~]# /etc/init.d/messagebus start

Starting system message bus:

[[email protected] ~]# /etc/init.d/openstack-nova-compute start

Starting openstack-nova-compute:                  [  OK  ]

[[email protected] ~]# chkconfig libvirtd on

[[email protected] ~]# chkconfig messagebus on

[[email protected] ~]# chkconfig openstack-nova-compute on

linux-node1上验证是否上线

[[email protected] ~]# nova host-list

+-------------+---------------+----------+

| host_name  | service   | zone   |

+-------------+---------------+----------+

| linux-node1 | conductor   | internal |

| linux-node1 | consoleauth  | internal |

| linux-node1 | cert      | internal |

| linux-node1 | scheduler   | internal |

| linux-node2 | compute   | nova   |

+-------------+---------------+----------+

[[email protected] ~]# nova service-list

+-------------------+-------------+-----------+---------+------+---------------------------+-----------------+

| Binary        | Host     | Zone    | Status | State | Updated_at          | Disabled Reason |

+-------------------+-------------+-----------+---------+------+---------------------------+-----------------+

| nova-conductor   | linux-node1 | internal | enabled | up  | 2018-06-30T09:37:52.000000 | -         |

| nova-consoleauth  | linux-node1 | internal | enabled | up  | 2018-06-30T09:37:52.000000 | -        |

| nova-cert      | linux-node1 | internal | enabled | up   | 2018-06-30T09:37:52.000000 | -       |

| nova-scheduler   | linux-node1 | internal | enabled | up  | 2018-06-30T09:37:52.000000 | -         |

| nova-compute    | linux-node2 | nova  | enabled | up   | 2018-06-30T09:37:50.000000 | -         |

+-------------------+-------------+-----------+---------+------+---------------------------+-----------------+

3.4、Networking(Neutron)

Nova-Network:开始只支持linux网桥;

Quantum:还支持vxlan和gre,后因quantum和一公司名称相同,因此改为neutron.

3.4.1、在linux-node1:

[[email protected] ~]# yum install -y openstack-neutron openstack-neutron-ml2 python-neutronclient openstack-neutron-linuxbridge

[[email protected] ~]# vim /etc/neutron/neutron.conf

connection = mysql://neutron:[email protected]:3306/neutron

[[email protected] ~]# source keystone-admin

[[email protected] ~]# keystone user-create --name neutron --pass neutron

+-------------+------------------------------------+

| Property  |        Value             |

+-------------+------------------------------------+

|  email    |                        |

| enabled    |   True              |

|  id     | cc572f0a0e4c422781955e510b5f1462  |

|  name   |   neutron             |

| username   |        neutron           |

+-------------+------------------------------------+

[[email protected] ~]# keystone user-role-add --user neutron --tenant service --role admin

[[email protected] ~]# vim /etc/neutron/neutron.conf

debug = true

state_path = /var/lib/neutron

lock_path = $state_path/lock

core_plugin = ml2

service_plugins = router,firewall,lbaas

api_paste_config = /usr/share/neutron/api-paste.ini

auth_strategy = keystone

rabbit_host = 10.0.0.101

rabbit_password = guest

rabbit_port = 5672

rabbit_userid = guest

rabbit_virtual_host = /

notify_nova_on_port_status_changes = true

notify_nova_on_port_data_changes = true

nova_url = http://10.0.0.101:8774/v2

nova_admin_username = nova

nova_admin_tenant_id = b8d9cf30de5c4c908e26b7eb5c89f2f8  ##keystone tenant-list可得到tenant的id

nova_admin_password = nova

nova_admin_auth_url = http://10.0.0.101:35357/v2.0

root_helper = sudo neutron-rootwrap /etc/neutron/rootwrap.conf

auth_host = 10.0.0.101

auth_port = 35357

auth_protocol = http

admin_tenant_name = service

admin_user = neutron

admin_password = neutron

[[email protected] ~]# vim /etc/neutron/plugins/ml2/ml2_conf.ini

type_drivers = flat,vlan,gre,vxlan

tenant_network_types = flat,vlan,gre,vxlan

mechanism_drivers = linuxbridge,openvswitch

flat_networks = physnet1

enable_security_group = True

[[email protected] ~]# vim /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini

network_vlan_ranges = physnet1

physical_interface_mappings = physnet1:eth0

firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

enable_security_group = True

[[email protected] ~]# vim /etc/nova/nova.conf

network_api_class=nova.network.neutronv2.api.API

linuxnet_interface_driver=nova.network.linux_net.LinuxBridgeInterfaceDriver

neutron_url=http://10.0.0.101:9696

neutron_admin_username=neutron

neutron_admin_password=neutron

neutron_admin_tenant_id=b8d9cf30de5c4c908e26b7eb5c89f2f8

neutron_admin_tenant_name=service

neutron_admin_auth_url=http://10.0.0.101:5000/v2.0

neutron_auth_strategy=keystone

security_group_api=neutron

firewall_driver=nova.virt.firewall.NoopFirewallDriver

vif_driver=nova.virt.libvirt.vif.NeutronLinuxBridgeVIFDriver

[[email protected] ~]# for i in {api,conductor,scheduler};do service openstack-nova-"$i" restart;done

[[email protected] ~]# keystone service-create --name neutron --type network

+-------------+------------------------------------+

|   Property |   Value                |

+-------------+------------------------------------+

| description |                        |

|   enabled |      True               |

|    id   | fd5b4252c2e34a4dbe5255a50c84d61f  |

|    name  |    neutron               |

|    type  |    network            |

+-------------+------------------------------------+

[[email protected] ~]# keystone endpoint-create \

--service-id=$(keystone service-list |awk '/ network / {print $2}') \

--publicurl=http://10.0.0.101:9696 \

--internalurl=http://10.0.0.101:9696 \

--adminurl=http://10.0.0.101:9696

+----------------+---------------------------------------------+

|   Property  |           Value            |

+----------------+---------------------------------------------+

|   adminurl  |      http://10.0.0.101:9696        |

|     id    | 8faadda104854407beffc2ba76a35c48       |

| internalurl   |      http://10.0.0.101:9696      |

|  publicurl   |      http://10.0.0.101:9696      |

|    region  |          regionOne              |

|  service_id  | fd5b4252c2e34a4dbe5255a50c84d61f        |

+----------------+---------------------------------------------+

[[email protected] ~]# keystone service-list

+----------------------------------+------------+------------+--------------------+

|        id             |   name  |   type  |  description    |

+----------------------------------+------------+------------+--------------------+

| 34701cc1acd44e22b8ae8a9be069d0a7 |  glance  |  image   |          |

| ea33049270ad4450ac789e9236774878 | keystone  | identity  | Openstack Identity |

| fd5b4252c2e34a4dbe5255a50c84d61f | neutron  | network   |             |

| 3825f34e11de45399cf82f9a1c56b5c5 |   nova  | compute  |            |

+----------------------------------+------------+------------+--------------------+

[[email protected] ~]# keystone endpoint-list

+------------------------------------------------------+-----------------+----------------------------------------------------------------+-------------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------+

|                id                |   region  |                publicurl                |               internalurl               |                 adminurl               |            service_id            |

+------------------------------------------------------+-----------------+----------------------------------------------------------------+-------------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------+

| 4821c43cdbcb4a8c9e202017ad056437 | regionOne  | http://10.0.0.101:8774/v2/%(tenant_id)s     | http://10.0.0.101:8774/v2/%(tenant_id)s    | http://10.0.0.101:8774/v2/%(tenant_id)s       | 3825f34e11de45399cf82f9a1c56b5c5 |

| 5f7f06a3b4874deda19caf67f5f21a1f  | regionOne   |          http://10.0.0.101:9292          |          http://10.0.0.101:9292         |          http://10.0.0.101:9292            | 34701cc1acd44e22b8ae8a9be069d0a7 |

| 735a100c58cf4335adc00bd4267a1387 | regionOne   |       http://10.0.0.101:5000/v2.0        |       http://10.0.0.101:5000/v2.0         |       http://10.0.0.101:35357/v2.0         | ea33049270ad4450ac789e9236774878 |

| 8faadda104854407beffc2ba76a35c48 | regionOne   |          http://10.0.0.101:9696          |          http://10.0.0.101:9696           |          http://10.0.0.101:9696           | fd5b4252c2e34a4dbe5255a50c84d61f |

+------------------------------------------------------+-----------------+----------------------------------------------------------------+-------------------------------------------------------------+-------------------------------------------------------------------+-----------------------------------------------------+

[[email protected] ~]# neutron-server  --config-file=/etc/neutron/neutron.conf  --config-file=/etc/neutron/plugins/ml2/ml2_conf.ini --config-file=/etc/neutr/plugins/linuxbridge/linuxbridge_conf.ini

##可以先在前面测试启动是否成功

把/etc/init.d/neutron-server和/etc/init.d/neutron-linuxbridge-agent中config函数统一改为下面的config函数

15 configs=(

16     "/etc/neutron/neutron.conf" \

17     "/etc/neutron/plugins/ml2/ml2_conf.ini" \

18     "/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini" \

19 )

[[email protected] ~]# /etc/init.d/neutron-server start

Starting neutron:                          [  OK  ]

[[email protected] ~]# /etc/init.d/neutron-linuxbridge-agent start

Starting neutron-linuxbridge-agent:                      [  OK  ]

[[email protected] ~]# neutron agent-list

+-------------------------------------+--------------------+--------------+----------+----------------+

| id                       | agent_type     | host      | alive  | admin_state_up |

+-------------------------------------+--------------------+--------------+----------+----------------+

| dc5b1b78-c0fb-41ef-aad3-c17fc050aa87 | Linux bridge agent | linux-node1 | :-)   | True       |

+-------------------------------------+--------------------+--------------+----------+----------------+

3.4.2、在linux-node2:

[[email protected] ~]# yum install -y openstack-neutron openstack-neutron-ml2 python-neutronclient openstack-neutron-linuxbridge

linux-node1上把Neutron的配置文件scp到linux-node2上

[[email protected] ~]# scp /etc/nova/nova.conf [email protected]:/etc/nova/

[[email protected] ~]# scp /etc/neutron/neutron.conf [email protected]:/etc/neutron/

[[email protected] ~]# scp /etc/neutron/plugins/ml2/ml2_conf [email protected]:/etc/neutron/plugins/ml2/

[[email protected] ~]# scp /etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini [email protected]:/etc/neutron/plugins/linuxbridge/

[[email protected] ~]# scp /etc/init.d/neutron-* [email protected]:/etc/init.d/

[[email protected] ~]# vim /etc/nova/nova.conf

vncserver_proxyclient_address=10.0.0.102

[[email protected] ~]# /etc/init.d/openstack-nova-compute restart

[[email protected] ~]# /etc/init.d/neutron-linuxbridge-agent start

Starting neutron-linuxbridge-agent:               [  OK  ]

[[email protected] ~]# chkconfig neutron-linuxbridge-agent on

linux-node1上验证是否成功

[[email protected] ~]# nova host-list

+-------------+-------------+------------+

| host_name  | service   | zone    |

+-------------+-------------+------------+

| linux-node1 | conductor  | internal  |

| linux-node1 | consoleauth | internal  |

| linux-node1 | cert     | internal  |

| linux-node1 | scheduler  | internal  |

| linux-node2 | compute   | nova    |

+-------------+-------------+------------+

[[email protected] ~]# neutron agent-list

+---------------------------------------+---------------------+-------------+----------+-----------------------+

|    id                | agent_type     | host     | alive  | admin_state_up     |

+---------------------------------------+---------------------+-------------+----------+-----------------------+

| 4c3d6c29-14e9-4622-ab14-d0775c9d60e8 | Linux bridge agent | linux-node2 | :-)   | True          |

| dc5b1b78-c0fb-41ef-aad3-c17fc050aa87 | Linux bridge agent | linux-node1 | :-)   | True          |

+---------------------------------------+---------------------+-------------+----------+-----------------------+

3.5、Add the Dashboard(Horizon)

Horizon:主要是为openstack提供一个web的管理界面

[[email protected]1 ~]# yum install -y httpd mod_wsgi memcached python-memcached openstack-dashboard

出现下面的报错:

Error: Package: python-django-horizon-2014.1.5-1.el6.noarch (icehouse)

Requires: Django14

Error: Package: python-django-openstack-auth-1.1.5-1.el6.noarch (icehouse)

Requires: Django14

Error: Package: python-django-appconf-0.5-3.el6.noarch (icehouse)

Requires: Django14

Error: Package: python-django-compressor-1.3-2.el6.noarch (icehouse)

Requires: Django

You could try using --skip-broken to work around the problem

You could try running: rpm -Va --nofiles --nodigest

[[email protected] ~]# rz Django14-1.4.21-1.el6.noarch.rpm  ##从网上找到了rpm包,然后上传到控制节点

[[email protected] ~]# rpm -ivh Django14-1.4.21-1.el6.noarch.rpm

warning: Django14-1.4.21-1.el6.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 96b71b07: NOKEY

Preparing...                   ########################################### [100%]

1:Django14             ########################################### [100%]

[[email protected] ~]# yum install -y httpd mod_wsgi memcached python-memcached openstack-dashboard

Loaded plugins: fastestmirror, security

Setting up Install Process

[[email protected] ~]# yum install -y httpd mod_wsgi memcached python-memcached openstack-dashboard

[[email protected] ~]# /etc/init.d/memcached start

Starting memcached:                                      [  OK  ]

[[email protected] ~]# chkconfig memcached on

[[email protected] ~]# vim /etc/openstack-dashboard/local_settings

ALLOWED_HOSTS = ['horizon.example.com', 'localhost','10.0.0.101']

CACHES = {

'default': {

'BACKEND' : 'django.core.cache.backends.memcached.MemcachedCache',

'LOCATION' : '127.0.0.1:11211',

}

}

OPENSTACK_HOST = "10.0.0.101"  ##keystone的ip地址

[[email protected] ~]# /etc/init.d/httpd start

[[email protected] ~]# chkconfig httpd on

此时就可以在浏览器上管理了: http://10.0.0.101/dashboard

建立网络:

[[email protected] ~]# keystone tenant-list  ##以普通用户demo为例

+------------------------------------+-------------+--------------+

|              id        |   name   | enabled    |

+------------------------------------+-------------+--------------+

| 058b14b50b374f69ad1d1d535eb70eeb  |  admin   |   True   |

| 064e6442044c4ed58fb0954f12910599 |   demo  |   True   |

| b8d9cf30de5c4c908e26b7eb5c89f2f8  | service   |   True   |

+------------------------------------+-------------+--------------+

[[email protected] ~]# neutron net-create --tenant-id 064e6442044c4ed58fb0954f12910599 flat_net --shared --provider:network_type flat --provider:physical_network physnet1

Created a new network:

+----------------------------------------+-------------------------------------------------------+

|       Field              |           Value                      |

+----------------------------------------+-------------------------------------------------------+

| admin_state_up                |    True                              |

| id                        |    1f5e36ac-f51d-4070-aca5-86356e7e76c4         |

| name                      |    flat_net                            |

| provider:network_type           |    flat                              |

| provider:physical_network        |    physnet1                            |

| provider:segmentation_id         |                                     |

| shared                      |     True                            |

| status                      |     ACTIVE                          |

| subnets                     |                                    |

| tenant_id                    |  064e6442044c4ed58fb0954f12910599             |

+----------------------------------------+-------------------------------------------------------+

[[email protected] ~]# neutron net-list

+--------------------------------------------------------+------------+--------------+

|           id                     | name     |  subnets  |

+--------------------------------------------------------+------------+--------------+

| 1f5e36ac-f51d-4070-aca5-86356e7e76c4            | flat_net  |         |

+--------------------------------------------------------+------------+--------------+

为创建子网做准备:

[[email protected] ~]# route -n

Destination     Gateway         Genmask      Flags  Metric  Ref    Use Iface

10.0.0.0       0.0.0.0         255.255.255.0   U     0    0       0 eth0

172.16.1.0      0.0.0.0         255.255.255.0   U     0    0       0 eth1

192.168.122.0    0.0.0.0         255.255.255.0   U     0    0       0 virbr0

169.254.0.0     0.0.0.0         255.255.0.0    U     1002   0       0 eth0

169.254.0.0     0.0.0.0         255.255.0.0    U     1003   0       0 eth1

0.0.0.0       10.0.0.2           0.0.0.0       UG    0     0       0 eth0

[[email protected] ~]# cat /etc/resolv.conf  ##DNS解析地址

nameserver 223.5.5.5

退出admin账户,用demo账户登录

创建虚拟机:

创建虚拟机成功后,在计算节点(linux-node2)查看变化

[[email protected] ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

[[email protected] ~]# sysctl -p

[[email protected] ~]# ifconfig

brq1f5e36ac-f5 Link encap:Ethernet  HWaddr 00:0C:29:61:F7:97  ##变成eth0的ip

inet addr:10.0.0.102  Bcast:10.0.0.255  Mask:255.255.255.0

inet6 addr: fe80::f027:4aff:fe52:631c/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:15766 errors:0 dropped:0 overruns:0 frame:0

TX packets:14993 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:2492994 (2.3 MiB)  TX bytes:8339199 (7.9 MiB)

eth0      Link encap:Ethernet  HWaddr 00:0C:29:61:F7:97   ##eth0的ip没有了

inet6 addr: fe80::20c:29ff:fe61:f797/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:188425 errors:0 dropped:0 overruns:0 frame:0

TX packets:133889 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:124137812 (118.3 MiB)  TX bytes:31074146 (29.6 MiB)

eth1      Link encap:Ethernet  HWaddr 00:0C:29:61:F7:A1

inet addr:172.16.1.102  Bcast:172.16.1.255  Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe61:f7a1/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:6 errors:0 dropped:0 overruns:0 frame:0

TX packets:13 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:360 (360.0 b)  TX bytes:938 (938.0 b)

lo        Link encap:Local Loopback

inet addr:127.0.0.1  Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING  MTU:65536  Metric:1

RX packets:178753 errors:0 dropped:0 overruns:0 frame:0

TX packets:178753 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:9384857 (8.9 MiB)  TX bytes:9384857 (8.9 MiB)

tap003e633e-77 Link encap:Ethernet  HWaddr FE:16:3E:47:56:8F

inet6 addr: fe80::fc16:3eff:fe47:568f/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:27 errors:0 dropped:0 overruns:0 frame:0

TX packets:4158 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:500

RX bytes:4302 (4.2 KiB)  TX bytes:384259 (375.2 KiB)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:10:9D:8B

inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

[[email protected] ~]# brctl show

bridge name       bridge id     STP enabled interfaces

brq1f5e36ac-f5 8000.000c2961f797 no      eth0

tap003e633e-77

virbr0      8000.525400109d8b yes      virbr0-nic

在整个过程中碰到的两个小问题及解决方法:

1、创建完成demo之后,有一个”无法连接到Neutron ”的报错,网上查询得知:

在Icehouse版本创建虚拟机会遇到错误:无法连接到Neutron.的报错,但是虚拟机还可以创建成功,这个是一个已知的bug,可以通过修改源码解决;还有一种情况,就是你的Neutron真的无法连接,要查看服务和监听端口9696是否正常。

Yum安装的文件在这里/usr/share/openstack-dashboard/openstack_dashboard/api/neutron.py

源码安装的在这里/usr/lib/python2.6/site-packages/openstack_dashboard/api/neutron.py

在class FloatingIpManager类里少了is_supported的方法,这个是一个bug,可以通过手动修改解决。

def is_simple_associate_supported(self):

# NOTE: There are two reason that simple association support

# needs more considerations. (1) Neutron does not support the

# default floating IP pool at the moment. It can be avoided

# in case where only one floating IP pool exists.

# (2) Neutron floating IP is associated with each VIF and

# we need to check whether such VIF is only one for an instance

# to enable simple association support.

return False

#在这个类的最下面,增加下面的方法,注意缩进。

def is_supported(self):

network_config = getattr(settings, 'OPENSTACK_NEUTRON_NETWORK', {})

return network_config.get('enable_router', True)

修改完毕后,需要重启apache才可以生效/etc/init.d/httpd restart

2、OpenStack Icehouse版,openstack-nova-novncproxy启动失败 无法访问控制台,6080端口没启动

首先查看nova-novncproxy的状态:

/etc/init.d/openstack-nova-novncproxy status

openstack-nova-novncproxy dead but pid file exists

然后debug输出看看:

[[email protected] ~]# /usr/bin/nova-novncproxy --debug

TTraceback (most recent call last):

File "/usr/bin/nova-novncproxy", line 10, in <module>

sys.exit(main())

File "/usr/lib/python2.6/site-packages/nova/cmd/novncproxy.py", line 87, in main

wrap_cmd=None)

File "/usr/lib/python2.6/site-packages/nova/console/websocketproxy.py", line 47, in __init__

ssl_target=None, *args, **kwargs)

File "/usr/lib/python2.6/site-packages/websockify/websocketproxy.py", line 231, in __init__

websocket.WebSocketServer.__init__(self, RequestHandlerClass, *args, **kwargs)

TypeError: __init__() got an unexpected keyword argument 'no_parent'

错误原因:websockify版本太低,升级websockify版本即可。

解决措施:pip install websockify==0.5.1

最后的效果:

注:不管能否解决你遇到的问题,欢迎相互交流,共同提高!

镜像:cirros-0.3.0-x86_64-disk.img

DjangoRPM包:Django14-1.4.21-1.el6.noarch.rpm

官方安装文档:OpenStack-install-guide-yum-icehouse.pdf

有需要文件的请下方留言

原文地址:http://blog.51cto.com/13162375/2134809

时间: 2024-12-28 11:31:25

OpenStack(i版)之Keystone,Glance,Nova,Neutron,Horizon的相关文章

openstack I版的搭建三--Nova

安装Nova [[email protected] src]# cd ~ [[email protected] ~]# cd /usr/local/src/nova-2014.1 [[email protected] nova-2014.1]# python setup.py install [[email protected] nova]# pwd /usr/local/src/nova-2014.1/etc/nova [ro[email protected] nova]# ll 总用量 48

openstack Q版部署-----网络服务(neutron)安装部署(7)

一.数据库配置 控制节点创建数据库 CREATE DATABASE neutron;GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'neutron2018';GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'neutron2018'; 二.创建认证信息(控制节点) 先生效一下环境变量 创建neutron用户: ope

openstack O版 安装keystone、memcached 、httpd服务

安装keystone.memcached .httpd服务[[email protected] ~]# yum -y install openstack-keystone httpd mod_wsgi python-openstackclient memcached python-memcached openstack-utils[[email protected] ~]# systemctl enable memcached.service[[email protected] ~]# syst

openstack M版安装 compute(nova)服务篇

配置安装nova compute服务 安装controller节点 一.创建nova数据库 [[email protected] ~]# mysql -u root -p >>CREATE DATABASE nova_api; >>CREATE DATABASE nova; >>GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost'   IDENTIFIED BY 'NOVA_DBPASS'; >>G

【openstack N版】——认证服务keystone

一. 基础环境 1.1环境介绍 linux-node1(控制节点) 1 #系统版本 2 [[email protected] ~]# cat /etc/redhat-release 3 CentOS Linux release 7.2.1511 (Core) 4 #内核版本 5 [[email protected] ~]# uname -r 6 3.10.0-327.36.3.el7.x86_64 7 #主机名 8 [[email protected] ~]# hostname 9 linux-

openstack O版 配置nova计算服务

1.创建数据库,并且授权数据库,库名为:nova_api 用户名:nova 密码:devops[[email protected] ~]# mysql -uroot -pdevopsMariaDB [(none)]> CREATE DATABASE nova_api;MariaDB [(none)]> CREATE DATABASE nova;MariaDB [(none)]> CREATE DATABASE nova_cell0;MariaDB [(none)]> GRANT A

OpenStack kilo版 Nova部署

部署在controller和compute节点 配置数据库 MariaDB [(none)]> CREATE DATABASE nova;? Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova';? ? ? ? Query OK, 0 rows affected (0.00 sec) MariaDB [(non

openstack O版 配置glance镜像服务

1.创建glance数据库[[email protected] ~]# mysql -uroot -pdevopsMariaDB [(none)]> CREATE DATABASE glance;MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance. TO 'glance'@'localhost' IDENTIFIED BY 'devops';MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance. T

OpenStack kilo版 keystone部署

部署在controller节点 配置数据库 MariaDB [(none)]> CREATE DATABASE keystone; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone'; Query OK, 0 rows affected (0.00 sec) MariaDB [(non