1. 需要在网络节点上确定一个可以访问外网的物理网卡,这个网卡可以和管理网卡是一个。这里我们假定外网网卡和管理网卡是独立的,且外网网卡的名字叫做eth2。
2. 添加一个新的bridge br-ex,并将eth2作为port绑定到br-ex
[plain] view plain copy
# ovs-vsctl add-br br-ex
# ovs-vsctl add-port br-ex eth2
3. 创建/etc/sysconfig/network-scripts/ifcfg-eth2文件,并输入如下内容:
[plain] view plain copy
TYPE=OVSPort
BOOTPROTO=none
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
DEVICE=eth2
ONBOOT=yes
4. 创建/etc/sysconfig/network-scripts/ifcfg-br-ex文件,并输入如下内容:
[plain] view plain copy
TYPE=OVSBridge
BOOTPROTO=none
DEVICETYPE=ovs
NAME=br-ex
DEVICE=br-ex
ONBOOT=yes
5. 重新启动网络服务让配置生效
[plain] view plain copy
# systemctl restart network.service
6. 用具有admin role的用户在Openstack Controller节点创建外网(external network)和相应子网,这里的外网是所谓的provider network,是不允许普通权限的租户创建的,普通的租户只能创建租户网络。注意"--router:external=true"选项表示这是一个外网,网络类型选的是flat(如果外网是VLAN,就选VLAN),子网的CIDR是192.168.100.0/24。
[plain] view plain copy
# neutron net-create --provider:network_type flat --provider:physical_network default --router:external=true public
# neutron subnet-create public --name public_subnet --allocation-pool start=192.168.100.100,end=192.168.100.150 192.168.100.0/24
创建完成后显示结果如下:
7. 如果要让租户的虚机访问外网,还需要创建一个router,用普通租户用户创建router,命令如下:
[plain] view plain copy
# neutron router-create router01
8. 将租户的私有子网(private_sub)作为interface加入router01,并将外网(public)设置为网关:
[plain] view plain copy
# neutron router-interface-add router01 private_sub
# neutron router-gateway-set router01 public
9. 然后就可以为虚拟机分配floating IP了。分配完成后虚拟机就可以访问外网了。
[plain] view plain copy
# neutron floatingip-create public
# neutron floatingip-list
[plain] view plain copy
# neutron floatingip-associate e12a6c2b-fc5e-4448-a6bb-3047638b850e 164f410e-6961-422d-b256-0609bfe6e9ff
1,查看服务
openstack service list
删除服务:openstack service delete 服务ID #服务ID通过openstack service list查看。
2,查看endpoint
openstack endpoint list
删除endpoint:openstack service delete endpoint_ID #endpoint的ID通过openstack endpoint list查看。
3,查看域
openstack domain list
4,查看项目
openstack project list
5,查看用户
openstack user list
6,查看角色
openstack role list
7,查看镜像
openstack image list
8,列出可用类型: openstack flavor list
9,列出可用镜像: openstack image list
10,列出可用网络:openstack network list
11,列出可用的安全组:openstack security group list
12,检查实例的状态:openstack server list
13,创建角色
openstack role create user
14,查看cinder存储
cinder service-list
15,查看镜像信息
qemu-img info /var/lib/glance/images/镜像id
※可以查看到virtual size,后面创建实例的磁盘大小,必须大于此值。
【检查服务是否正常】
●以下在控制节点执行:
1,检查keystone服务是否正常
source 环境变量
openstack token issue #显示则正常
2,检查glance服务是否正常
openstack image list #显示则正常
或:openstack image-list
3,检查nova服务是否正常
openstack compute service list
或:nova service-list
是否有:
nova-conductor 控制节点
nova-consoleauth 控制节点
nova-scheduler 控制节点
nova-compute 计算节点
4,检查neutron服务是否正常
neutron agent-list
一、 数据库a) 安装
# apt-get install python-mysqldb mysql-server
b) 配置
修改 /etc/mysql/my.cnf
[mysqld]
…
bind-address = 127.0.0.1# ip 地址全部使用本机
default-storage-engine = innodb #设置默认存储引擎为 Innodb
innodb_file_per_table
collation-server = utf8_general_ci #设置编码格式
init-connect = 'SET NAMES utf8'
character-set-server = utf8
c) 重启 mysql 服务,使用安全模式初始化数据库,删除匿名用户
# service mysql restart
# mysql_secure_installation 或 # mysql_install_db
二、 软件包配置
a) 安装 OpenStack Havana Ubuntu 云档案
# apt-get install python-software-properties
# add-apt-repository cloud-archive:Havana
b) 更新软件包数据库,更新系统
# apt-get update &&apt-get dist-upgrade
# reboot
三、 消息服务
消息服务使用 rabbitmq
# apt-get install rabbitmq-server
注: rabbitmq 默认提供一个 guest 用户和默认的 guest 密码,这里需要修改一下 guest 用户的密码,因为后面配置 nova 服务的时候需要用到 rabbitmq 密码
# rabbitmqctl change_password guest openstack
四、 Keystone 认证服务
a) 安装
# apt-get install keystone
b) 配置
1) 修改数据库连接方式,编辑配置文件 /etc/keystone/keystone.conf
...
[sql]
# The SQLAlchemy connection string used to connect to the database
connection = mysql://keystone:openstack@127.0.0.1/keystone
...
2) 删除默认创建的数据库
rm –f /var/lib/keystone/keystone.db
3) 创建数据库
# mysql -u root -p
mysql>CREATE DATABASE keystone
mysql>GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'openstack'
mysql>GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'openstack'
4) 创建数据表
# keystone-manage db_sync
5) 创建一个随机的 Token 用于连接认证服务时使用
# openssl rand -hex 10 >/root/token # 后面还会用到所以可以保存起来
编辑 /etc/keystone/keyston.conf
[DEFAULT]
# A "shared secret" between keystone and other openstack services
admin_token = ADMIN_TOKEN
...
6) 重启服务
# service keystone restart
c) 创建租户 (tenant) 、用户 (user) 、角色 (role)
在还没有创建任何用户之前,我们必须要使用 token 来进行认证,可以将 token 设置为环境变量,或者在使用 keystone 命令的时候使用 –os-token 命令来指定 token 。
这里设置为环境变量:
# export OS_SERVICE_TOKEN=ADMIN_TOKEN
# export OS_SERVICE_ENDPOINT=http://127.0.0.1:35357/v2.0
1) 创建租户 admin 和 service
# keystone tenant-create --name=admin --description="Admin Tenant"
# keystone tenant-create --name=service --description="Service Tenant"
2) 创建用户 admin
#keystone user-create --name=admin --pass=openstack --email=admin@localhost
# keystone role-create --name=admin
3) 为 admin 创建 role
4) 关联 user 、 tenant 和 role
# keystone user-role-add --user=admin --tenant=admin --role=admin
d) 创建服务 (service) 和访问端点 (endpoint)
1) 创建 keystone 服务,类型为 identity( 认证 )
# keystone service-create --name=keystone --type=identity --description="Keystone Identity Service"
2) 使用上面返回的 service id 来创建服务的访问端点
# keystone endpoint-create \
--service-id=the_service_id_above\
--publicurl=http://127.0.0.1:5000/v2.0 \
--internalurl=http://127.0.0.1:5000/v2.0 \
--adminurl=http://127.0.0.1:35357/v2.0
e) 校验 keystone 服务
现在已经创建了 admin 用户,所以可以通过 admin 用户来访问 keystone 服务
$ unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT
$ keystone --os-username=admin --os-password=openstack --os-auth-url=http://127.0.0.1:35357/v2.0 token-get
为了避免每次都需要输入用户名和密码,可以将它们保存为环境变量。编辑 /root/keystone.sh
export OS_USERNAME=admin
export OS_PASSWORD=openstack
export OS_TENANT_NAME=admin
export OS_AUTH_URL=http://127.0.0.1:35357/v2.0
这样只要执行 # source keystone.sh 命令就可以连接 keystone 了
五、 镜像服务 —glance
a) 安装
# apt-get install glance python-glanceclient
b) 配置
1) 设置数据库连接
编辑配置文件 /etc/glance/glance-api.conf 和 /etc/glance/glance-registry.conf
...
[DEFAULT]
...
# SQLAlchemy connection string for the reference implementation
# registry server. Any valid SQLAlchemy connection string is fine.
# See: http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.
html#sqlalchemy.create_engine
sql_connection = mysql://glance:openstack@127.0.0.1/glance
...
2) 创建数据库
# mysql -u root -p
mysql>CREATE DATABASE glance
mysql>GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
IDENTIFIED BY 'openstack'
mysql>GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
IDENTIFIED BY 'openstack'
3) 创建数据表
# glance-manage db_sync
4) 创建 glance 用户并关联到角色
# keystone user-create --name=glance --pass=openstack --email=glance@localhost
# keystone user-role-add --user=glance --tenant=service --role=admin
5) 配置 glance 服务使用 keystone 来进行认证
编辑 /etc/glance/glance-api.conf 和 /etc/glance/glance-registry.conf 文件
[keystone_authtoken]
...
auth_uri = http://127.0.0.1:5000
auth_host = 127.0.0.1
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = openstack
...
[paste_deploy]
...
flavor = keystone
6) 添加认证信息到 /etc/glance/glance-api-paste.ini 和 /etc/glance/glance-registry-paste.ini 文件
[filter:authtoken]
paste.filter_factory=keystoneclient.middleware.auth_token:filter_factory
auth_host=127.0.0.1
admin_user=glance
admin_tenant_name=service
admin_password=openstack
7) 注册镜像服务
# keystone service-create --name=glance --type=image --description="Glance Image Service"
8) 使用上面返回的 service id 创建访问点
# keystone endpoint-create \
--service-id=the_service_id_above \
--publicurl=http://127.0.0.1:9292 \
--internalurl=http://127.0.0.1:9292 \
--adminurl=http://127.0.0.1:9292
9) 重启镜像服务
# service glance-registry restart
# service glance-api restart
c) 创建镜像文件
CirrOS 镜像是常用的一个 qcow2 类型的镜像,下载镜像并上传到 glance 服务器
$ mkdir images
$ cd images/
$ wget http://cdn.download.cirros-cloud.net/0.3.1/cirros-0.3.1-x86_64-disk.img
# glance image-create --name="CirrOS 0.3.1" --disk-format=qcow2 --container-format=bare --is-public=true <cirros-0.3.1-x86_64-disk.img
查看上传的镜像可以使用
# glance image-list
六、 计算服务
a) 安装计算服务软件包
# apt-get install nova-novncproxy novnc nova-api nova-ajax-console-proxy nova-cert nova-conductor nova-consoleauth nova-doc nova-scheduler python-novaclient
# apt-get install nova-compute-kvm python-guestfs
修改内核 bug
# dpkg-statoverride --update --add root root 0644 /boot/vmlinuz-$(uname -r)
# vim /etc/kernel/postinst.d/statoverride
#!/bin/sh
version="$1"
# passing the kernel version is required
[ -z "${version}" ] &&exit 0
dpkg-statoverride --update --add root root 0644 /boot/vmlinuz-${version}
# chmod +x /etc/kernel/postinst.d/statoverride
b) 配置
1) 配置数据库
编辑配置文件 /etc/nova/nova.conf
...
[database]
# The SQLAlchemy connection string used to connect to the database
connection = mysql://nova:openstack@127.0.0.1/nova
[keystone_authtoken]
auth_host = 127.0.0.1
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = nova
admin_password = openstack
2) 配置计算服务使用 rabbitmq 消息队列传送信息
编辑配置文件 /etc/nova/nova.conf
...
[DEFAULT]
rpc_backend = nova.rpc.impl_kombu
rabbit_host = 127.0.0.1
rabbit_password = openstack # 如果rabbitmq未改,则使用默认guest密码
...
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)