接到通知,要搭建OpenStack环境。这次是第一次搭建OpenStack,边学习边搭建,查了很多资料,也走了一些弯路。根据项目的情况,并未安装块存储服务和一些额外服务。最开始计划安装三个节点,后来发现只需要两个节点,改了设计方案,额外花了一些时间,共花了大约十天安装完成。现记录一下安装步骤:
安装环境:在Win10系统上安装了VMWare;在VMWare中安装了两个虚拟机作为两个节点,都是CentOS7系统;OpenStack使用Newton版本;
一,安装虚拟机,并且相互可以ping通
1.修改这个文件,有几个修改几个
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
IPADDR=10.0.0.11
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.2
DNS2=8.8.8.8
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
DEVICE=eno16777736
ONBOOT=yes
2.修改主机名
hostnamectl set-hostname 主机名
3.查看主机名是否修改成功
hostnamectl status
4.修改hosts文件
vi /etc/hosts
10.0.0.11 controller
10.0.0.21 network
10.0.0.31 compute1
5.重启网络
systemctl restart network.service
6.关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
二,安装相关的包
参考网站:
http://www.cnblogs.com/kaishirenshi/p/7642658.html
https://www.abcdocker.com/abcdocker/1793
http://www.aboutyun.com/thread-13067-1-1.html
1.yum -y install ntp wget net-tools //
2.yum -y install yum-plugin-priorities //安装yum插件库
3.yum -y install epel-release //安装epel扩展库
4.yum-y install centos-release-openstack-newton
5.yum-y install https://repos.fedorapeople.org/repos/openstack/openstack-newton/rdo-release-newton-5.noarch.rpm
6.yum upgrade
更新完成后一定要重启启动虚拟机
7.yum -y install python-openstackclient //会把openstack常用的客户端都进行安装
8.yum install -y openstack-selinux //安装openstack SELinux管理包
9.yum -y install ntp
10.cp /etc/ntp.conf /etc/ntp.conf.bak
11.修改文件,保持时间同步
vi /etc/ntp.conf
server 127.127.1.0 iburst //其他节点使用 server controller iburst
restrict -4 default kod notrap nomodify
restrict -6 default kod notrap nomodify
12.启动服务,并将其配置为随系统自动启动
systemctl enable ntpd
systemctl start ntpd.service
13.重启服务
systemctl restart ntpd.service
14.查看服务状态
systemctl status ntpd.service
ntpq -c assoc
ntpq -c peers
ntpstat //如果显示是64s就说明成功了
注意:关于系统无法自动启动ntp服务,解决方法
1)#systemctl status ntpd
查看ntp状态发现是inactive
ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled)
Active: inactive (dead)
2)# systemctl disable chronyd.service
Removed symlink /etc/systemd/system/multi-user.target.wants/chronyd.service.
3)重新启动系统
注意:如果时间不正确,请设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
timedatectl
15.yum -y install mariadb-server MySQL-python
16.编辑修改数据内容
#vi/etc/my.cnf.d/mariadb_openstack.cnffile
[mysqld]
bind-address=10.0.0.11//监听的地址,也就是controller地址default-storage-engine = innodbinnodb_file_per_tablecollation-server =utf8_general_ciinit-connect = 'SET NAMES utf8'character-set-server = utf8
17.启动并自启动数据库服务
# systemctl enable mariadb.service
# systemctl start mariadb.service
18.对数据库设置密码并测试
#mysql_secure_installation
#mysql -uroot -proot //如果能进入,说明成功
#exit //退出数据库
19.安装message queue
#yum install rabbitmq-server
20.启动并自启动服务
#systemctl enable rabbitmq-server.service
#systemctl start rabbitmq-server.service
21.对RabbitMQ进行密码设置,同时可以验证该服务是否正常工作。
#rabbitmqctl add_user openstack root //设置用户名openstack密码root
#rabbitmqctl set_permissions root ".*" ".*" ".*" //给用户赋予最大的权限
三,安装身份认证(KeyStone)
官网地址
https://docs.openstack.org/newton/install-guide-rdo/glance.html
1.为Keystone创建数据库
#mysql -uroot -proot //用户名root,密码root
CREATEDATABASE keystone; //使用show databases查看是否创建成功
GRANTALLPRIVILEGESONkeystone.* TO'keystone'@'localhost'IDENTIFIED BY'KEYSTONE_DBPASS'; //KEYSTONE_DBPASS是keystone访问数据要使用的密码
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';
#exit //退出数据库
2.生成一个随机值,作为管理令牌 (可省略)
# openssl rand -hex 10 // 我的值 6a07b3e71102ba7505fa
3.安装keystone 组件
# yum install openstack-keystone httpd mod_wsgi
4.编辑文件
#vi /etc/keystone/keystone.conf
复制下面的二行到文件对应的位置
provider = fernet//复制到[token]下面
小技巧:如何去掉linux配置文件的注释行和空行
grep -v "^#" file | grep -v "^$" > temp
rm file
mv temp file
5.#su -s /bin/sh -c "keystone-manage db_sync" keystone //同步修改到数据库
6 .初始化fernet keys
# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
#keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
7.引导身份认证服务
#keystone-manage bootstrap --bootstrap-passwordADMIN_PASS--bootstrap-admin-url http://controller:35357/v3/ --bootstrap-internal-url http://controller:35357/v3/ --bootstrap-public-url http://controller:5000/v3/ --bootstrap-region-id RegionOne
8.修改文件
1)编辑文件 vi/etc/httpd/conf/httpd.conf :
ServerNamecontroller# 添加
2)# LN -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
参考网站:
http://blog.csdn.net/titan0427/article/details/52084781
http://www.cnblogs.com/liu-yao/p/5940587.html
http://www.aboutyun.com/thread-13080-1-1.html
https://docs.openstack.org/newton/install-guide-rdo/keystone-install.html
9.安装完成启动服务
systemctl enable httpd.service
systemctl start httpd //或者systemctl start httpd.service
10.配置管理账户
$export OS_USERNAME=admin
$ export OS_PASSWORD=ADMIN_PASS
$ export OS_PROJECT_NAME=admin
$ export OS_USER_DOMAIN_NAME=Default
$ export OS_PROJECT_DOMAIN_NAME=Default
$ export OS_AUTH_URL=http://controller:35357/v3
$ export OS_IDENTITY_API_VERSION=3
11.创建一个项目
openstack project create --domain default --description "Demo Project" demo
openstack project create --domain default \
--description "Service Project" service
12.创建demo用户
openstack user create --domain default --password-prompt demo //密码是root
13.创建user角色
openstack role create user
14.将user角色添加到demo项目和用户
openstack role add --project demo --user demo user
15.出于安全原因,请禁用临时身份验证令牌机制:
编辑/etc/keystone/keystone-paste.ini 文件并删除admin_token_auth从[pipeline:public_api],[pipeline:admin_api]和[pipeline:api_v3]段。
16.取消设置临时 变量OS_AUTH_URL和OS_PASSWORD环境变量:
unset OS_AUTH_URL OS_PASSWORD
17.作为demo用户,请求身份验证令牌:
openstack --os-auth-url http://controller:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name demo --os-username demo token issue
18.创建脚本
1) vi admin-openrc
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
2) vi demo-openrc
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=root //如果修改过密码,写修改后的
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
19.使用脚本
$ source admin-openrc
$ openstack token issue
$ source demo-openrc
$ openstack token issue
出现表格表示正确哦
四.安装镜像
1.#mysql -uroot -proot
2.create database glance;
3.GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'root';
4.GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'root';
5.退出数据库 exit
6.$ source admin-openrc
7.openstack user create --domain default --password-prompt glance //密码root
8.将admin角色添加到glance用户和 demo项目中:
$openstack role add --project service --user glance admin
9.创建glance服务实体
$ openstack service create --name glance \ --description "OpenStack Image" image
10.创建镜像服务API端点:
$ openstack endpoint create --region RegionOne \ image public http://controller:9292
$ openstack endpoint create --region RegionOne \ image internal http://controller:9292
$ openstack endpoint create --region RegionOne \ image admin http://controller:9292
安装和配置的部件:
11.安装软件包:
# yum install openstack-glance
12.glance安装官网亲测好使,前面有问题的步骤已改,官网地址:
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone//复制到[database]下面
https://docs.openstack.org/newton/install-guide-rdo/glance-install.html
13.编辑/etc/glance/glance-api.conf文件完成以下操作:
在该[database]部分中,配置数据库访问:
[database]
...
connection=mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
替换GLANCE_DBPASS为镜像服务数据库的密码
在[keystone_authtoken]和[paste_deploy]部分中,配置keystone服务访问:
[keystone_authtoken]
…
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=Default
user_domain_name=Default
project_name=service
username=glance
password=root(自己设的密码)
[paste_deploy]
…
flavor=keystone
注意:注释掉或删除该[keystone_authtoken]部分中的其他选项。
在该[glance_store]部分中,配置本地文件系统存储和映像文件的位置
[glance_store]
…
stores=file,http
default_store=file
filesystem_store_datadir=/var/lib/glance/images/
编辑/etc/glance/glance-registry.conf文件并完成以下操作:
在该[database]部分中,配置数据库访问:
[database]
…
connection=mysql+pymysql://glance:root@controller/glance
root为镜像服务数据库密码
在[keystone_authtoken]和[paste_deploy]部分中,配置身份服务访问:
[keystone_authtoken]
…
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=Default
user_domain_name=Default
project_name=service
username=glance
password=root
[paste_deploy]
…
flavor=keystone
注:注释掉或删除掉该[keystone_authtoken]部分中的其他选项
填充镜像服务数据库:
#su -s /bin/sh -c "glance-manage db_sync" glance
注:忽略此输出中的任何弃用消息
完成安装
启动镜像服务并将其配置为在系统启动时启动
#systemctl enable openstack-glance-api.service\openstack-glance-registry.service
#systemctl start openstack-glance-api.service\openstack-glance-registry.service
验证操作
注意:在控制节点上执行这些命令
获取admin证书来访问只有管理员能使用的CLI命令:
$.admin-operc
下载源镜像
$wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
注:如果你安装的版本不包括wget,请安装wget
使用QCOW2磁盘格式将镜像上传到镜像服务器,暴露容器格式,一边所有程序能访问它:
$openstack image create "cirros"\
--file cirros-0.3.4-x86_64-disk.img\disk-format qcow2 --container-format bare\--public
之后出现一个表格
确认图像的上传和验证属性:
$openstack image list
五、计算服务
前提条件
创建数据库、服务凭据和API端点:
创建数据库:
书用数据库访问客户端,以root身份链接到数据库服务器:
$mysql -u root -p
创建nova_api和nova数据库:
CREATE DATABASE nova_api;
CREATE DATABASE nova;
授予对数据库的访问权限:
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost'\IDENTIFIED BY 'root';
GRANT ALLPRIVILEGES ON nova_api.* TO 'nova'@'%'\IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \IDENTIFIED BY 'root';
退出数据库访问客户端。
$.admin-operc
创建服务证书,完成以下步骤:
创建nova用户
$openstack user create --domain default\--password -prompt nova
填入两次密码
将admin角色添加到nova用户:
$openstack role add --project service --user nova admin
注:该命令不提供输出
创建nova服务实体:
$openstack service create --name nova\
--description "OpenStack" compute
然后出一个表格
创建计算服务APIA端点
$openstack endpoint create --region RegionOne \
compute public http://controller:8774/v2.1/%\(tenant_id\)s
然后出现一个表格
$openstack endpoint create --region RegionOne \
compute internal http://controller:8774/v2.1/%\(tenant_id\)s
出现表格
$openstack endpoint create --region RegionOne \
compute admin http://controller:8774/v2.1/%\(tenant_id\)s
安装和配置的部件
安装软件包
#yum install openstack-nova-api openstack-nova-conductor\
openstack-nova-console openstack-nova-novncproxy\
openstack-nova-scheduler
编辑/etc/nova/nova.conf文件并完成以下操作:
在[DEFAULT]部分中,启用计算和元数据API:
[DEFAULT]
…
enabled_apis=osapi_compute,metadata
在[api_database]和[database]部分中,配置数据库访问:
[api_database]
…
connection=mysql+pymysql://nova:root@controller/nova_api
[database]
…
connection=mysql+pymysql://nova:root@controller/nova
root为Compute数据库密码
在该[DEFAULT]部分中,配置RabbitMQ消息队列访问:
[DEFAULT]
…
transport_url=rabbit://openstack:root@controller
root是为该OpenStack账户选择的RabbitMQ密码。
在[DEFAULT]和[keystone_authtoken]部分中,配置身份服务访问:
[DEFAULT]
…
auth_strategy=keystone
[keystone_authtoken]
…
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=Default
user_domain_name=Default
project_name=service
username=nova
password=root
root为在nova身份识别中为用户选择的密码。
注:注释或删除该[keystone_authtoken]部分中的其他选项(本次搭建中删除)
在[DEFAULT]部分中,将该my_ip选项配置为使用控制器节点的管理接口IP地址:
[DEFAULT]
…
my_ip=10.0.0.11
在本[DEFAULT]节中,启用对网络服务的支持:
[DEFAULT]
…
use_neutron=True
firewall_driver=nova.virt.firewall.NoopFirewallDriver
注:默认情况下,Compute使用内部防火墙驱动程序。由于网络服务包含防火墙驱动程序,因此必须使用nova.virt.firewall.NoopFirewallDriver防火墙驱动程序禁用计算机防火墙驱动程序。
在本[vnc]节中,将VNC代理配置为使用控制器节点的管理接口IP地址:
[vnc]
…
vncserver_listen=$my_ip
vncserver_proxyclient_address=$my_ip
在[glance]部分中,配置Image Service API的位置:
[glance]
…
api_servers=http://controller:9292
在该[oslo_concurrency]部分中,配置锁定路径:
[oslo_concurrency]
…
lock_path=/var/lib/nova/tmp
填充Compute数据库:
#su -s /bin/sh -c "nova-manage api_db sync" nova
#su -s /bin/sh -c "nova-manage db sync" nova
注:忽略这个输出中的任何反对信息
完成安装:
启动计算服务并配置为系统启动时启动:
#systemctl enable openstack-nova-api.service \
openstack-nova-consoleauth.service openstack-nova-scheduler.service \
openstack-nova-conductor.service openstack-nova-novncproxy.service
#systemctl start openstack-nova-api.service \
openstack-nova-consoleauth.service openstack-nova-scheduler.service \
openstack-nova-conductor.service openstack-nova-novncproxy.service
安装并配置计算节点(计算服务)
安装和配置组件
安装软件包:
#yum install openstack-nova-compute
编辑/etc/nova/nova.conf文件并完成以下操作:
在[DEFAULT]部分中,配置RabbitMQ消息队列访问:
[DEFAULT]
…
transport_url=rabbit://openstack:root@controller
root是为该openstack账户选择的密码
在[DEFAULT]和[keystone_authtoken]部分中,配置身份服务访问:
[DEFAULT]
…
auth_strategy=keystone
[keystone_authtoken]
…
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=Default
user_domain_name=Default
project_name=service
username=nova
password=root
root为在nova身份识别服务中为用户选择的密码。
注:注释掉或删除该[keystone_authtoken]部分中的其他选项。
在该[DEFAULT]部分中,配置my_ip选项:
[DEFAULT]
…
my_ip=MANAGEMENT_INTERFACE_IP_ADDRESS
替换MANAGEMENT_INTERFACE_IP_ADDRESS为计算节点上管理网络接口的IP地址,通常为10.0.0.31。
在本[DEFAULT]节中,启动对网络服务的支持:
[DEFAULT]
…
use_neutron=True
firewall_driver=nova.virt.firewall.NoopFirewallDriver
注:默认情况下,Compute使用内部防火墙服务。由于Networking包含防火墙服务,因此您必须使用nova.virt.firewall.NoopFirewallDriver防火墙驱动程序禁用Compute防火墙服务。
在本[vnc]节中,启用和配置远程控制台访问:
[vnc]
…
enable=True
vncserver_listen=0.0.0.0
vncserver_proxyclient_address=$my_ip
novncproxy_base_url=http://controller:6080/vnc_auto.html
在该[glance]部分中,配置Image Service API的位置:
[glance]
…
api_servers=http://controller:9292
在该[oslo_concurrency]部分中,配置锁定路径:
[oslo_concurrency]
…
lock_path=/var/lib/nova/tmp
完成安装
确定计算节点是否支持虚拟机的硬件加速:
$egrep -c '(vmx|svm)'/proc/cpuinfo
如果此命令返回值,则您的计算节点支持通常不需要额外配置的硬件加速。
如果此命令返回值zero
,则您的计算节点不支持硬件加速,您必须配置libvirt
为使用QEMU而不是KVM。
编辑文件中的[libvirt]
部分 /etc/nova/nova.conf
如下:
[libvirt]
…
virt_type=qemu
启动计算服务,并将其配置为随着系统启动而启动:
#systemctl enable libvirtd.service openstack-nova-compute.service
#systemctl start libvirtd.service openstack-nova-compute.service
验证操作:
$.admin-openrc
$openstack compute service list
六、网络服务
安装配置控制节点
必须创建数据库,服务凭据和API端点
创建数据库
使用数据库访问客户端以root
用户身份连接到数据库服务器:
$mysql -u root -p
创建neutron
数据库:
CREATE DATABASE neutron;
授予对neutron
数据库的正确访问权限,替换root为合适的密码:
GRANT ALL PRIVILEGES ON neutron,* TO 'neutron'@'localhost' \ IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%'\IDENTIFIED BY 'root';
退出数据库
$.admin-operc
要创建服务证书,请完成以下步骤:
创建neutron
用户:
$openstack user create --domain default --password-prompt neutron
输出两次密码
将admin
角色添加到neutron
用户:
$openstack role aadd --project service --user neutron admin
该命令没有输出
创建neutron
服务实体:
$openstack service create --name neutron\
--description "OpenStack Networking" neiwork
创建网络服务API端点:
$openstack endpoint create --region RegionOne\
network public http://controller:9696
$openstack endpoint create --region RegionOne \
network internal http://controller:9696
$openstack endpoint create --region RegionOne \
network admin http://controller:9696
配置网络选项
这里选择了网络选项1:提供商网络
在控制器节点上俺咋混个并配置网络组件
安装组件:
#yum install openstack-neutron openstack-neutron-ml2\
openstack-neutron-linuxbridge ebtables
配置服务器组件:
网络服务器组件配置包括数据库,身份验证机制,消息队列,拓扑更改通知和插件。
编辑/etc/neutron/neutron.conf
文件并完成以下操作:
在该[database]
部分中,配置数据库访问:
[database]
…
connection=mysql+pymysql://neutron:root@controller/neutron
root是为数据库·选择的密码
注:注释或删除[database]部分中其他connection选项
在本[DEFAULT]
节中,启用Modular Layer 2(ML2)插件并禁用其他插件:
[DEFAULT]
…
core_plugin=ml2
service_plugins=
在该[DEFAULT]
部分中,配置RabbitMQ
消息队列访问:
[DEFAULT]
…
transport_url=rabbit://openstack:root@controller
替换RABBIT_PASS
为您openstack
在RabbitMQ中为帐户选择的密码 。
在[DEFAULT]
和[keystone_authtoken]
部分中,配置身份服务访问:
[DEFAULT]
…
auth_strategy=keystone
[keystone_authtoken]
…
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=Default
user_domain_name=Default
project_name=service
username=neutron
password=root
root为您neutron
在身份识别服务中为用户选择的密码。
注:注释或删除该[keystone_authtoken]部分中的其他选项
在[DEFAULT]
和[nova]
部分中,配置网络来通知计算网络拓扑更改:
[DEFAULT]
…
notify_nova_on_port_status_changes=True
notify_nova_on_port_data_changes=True
[nova]
…
auth_url=http://controller:35357
auth_type=password
project_domain_name=Default
user_nodamin_name=Default
region_name=ReginOne
project_name=service
username=nova
password=root
替换root为您nova
在身份识别服务中为用户选择的密码。
在该[oslo_concurrency]
部分中,配置锁定路径:
[oslo_concurrency]
…
lock_path=/var/lib/neutron/tmp
配置模块化层2(ML2)插件
ML2插件使用Linux桥接机制为实例构建第2层(桥接和交换)虚拟网络基础设施。编辑/etc/neutron/plugins/ml2/ml2_conf.ini
文件并完成以下操作:
在本[ml2]
节中,启用平面和VLAN网络:
[ml2]
…
type_drivers=flat.vlan
在本[ml2]
节中,禁用自助服务网络:
[ml2]
…
tenant_network_types=
在本[ml2]
节中,启用Linux桥接机制:
[ml2]
…
mechanism_drivers=linuxbridge
注:配置ML2插件后,删除type_drivers选项中的值可能会导致数据库不一致
在该[ml2]
部分中,启用端口安全扩展驱动程序:
[ml2]
…
extension_drivers=port_security
在本[ml2_type_flat]
节中,将提供者虚拟网络配置为flat网络:
[ml2_type_flat]
…
flat_networks=provider
在本[securitygroup]
节中,使用ipset来提高安全组规则的效率:
[securitygroup]
…
enable_ipset=True
配置Linux网桥代理
Linux网桥代理为实例构建二层(桥接和交换)虚拟网络基础架构并处理安全组。
编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini
文件并完成以下操作:
在本[linux_bridge]
节中,将提供者虚拟网络映射到提供者物理网络接口:
[linux_bridge]
physical_interface_mappings=privider:PROVIDER_INTERFACE_NAME
替换PROVIDER_INTERFACE_NAME
为底层提供商物理网络接口的名称。
在本[vxlan]
节中,禁用VXLAN覆盖网络:
[vxlan]
enable_vxlan=False
在本[securitygroup]
节中,启用安全组并配置Linux网桥iptables防火墙驱动程序:
[securitygroup]
…
enable_security_group=True
firewall_driver=neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
配置DHCP代理
该DHCP代理为虚拟网络提供DHCP服务。
编辑/etc/neutron/dhcp_agent.ini
文件并完成以下操作:
在本[DEFAULT]
节中,配置Linux网桥接口驱动程序,Dnsmasq DHCP驱动程序,
并启用隔离的元数据,以便提供商网络上的实例可以通过网络访问元数据:
[DEFAULT]
…
interface_driver=neutron.agent.linux.interface.BridgeInterfaceDriver
dhcp_driver=neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata=True
配置元数据代理
编辑/etc/neutron/metadata_agent.ini
文件并完成以下操作:
在该[DEFAULT]
部分中,配置元数据主机和共享密钥:
[DEFAULT]
…
nova_metadata_ip=controller
metadata_proxy_shared_secret=root
root是元数据代理密码
配置计算服务以使用网络服务
编辑/etc/nova/nova.conf
文件并执行以下操作:
在该[neutron]
部分中,配置访问参数,启用元数据代理并配置密钥:
[neutron]
…
url=http:?/controller:9696
auth_url=http://controller:35357
auth_type=password
project_domain_name=Default
user_domain_name=Default
region_name=RegionOne
project_name=service
username=neutron
password=root
service_metadata_proxy=True
metadata_proxy_shared_secret=root
第一个root是neutron用户身份验证密码
第二个root是元数据身份代理密码
完成安装
网络服务初始化脚本需要一个/etc/neutron/plugin.ini
指向ML2插件配置文件的符号链接
/etc/neutron/plugins/ml2/ml2_conf.ini
。如果此符号链接不存在,请使用以下命令创建它:
#ln -s /etc/neutron/plugins/ml2/ml2_conf.ini/etc/neutron/plugin.ini
填充数据库:
#su -s /bin/sh -c "neutron_db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
重新启动计算API服务:
systemctl restart openstack-nova-api.service
启动网络服务并将其配置为在系统引导时启动
#systemctl enable neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service
#systemctl start neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service
安装和配置计算节点
安装组件
#yum install openstack-neutron-linuxbridge ebtables ipset
配置通用组件
编辑/etc/neutron/neutron.conf
文件并完成以下操作:
在本[database]
节中,注释掉任何connection
选项,因为计算节点不直接访问数据库
在该[DEFAULT]
部分中,配置RabbitMQ
消息队列访问:
[DEFAULT]
…
transport_url=rabbit://openstack:root@controller
root为RabbitMQ密码
在[DEFAULT]
和[keystone_authtoken]
部分中,配置身份服务访问:
[DEFAULT]
…
auth_strategy=keystone
[keystone_authtoken]
…
auth_uri=http://controller:5000
auth_url=:http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=Default
user_domain_name=Default
project_name=service
username=neutron
password=root
root为身份验证服务中neutron的密码
注:注释掉火删除该[keystone_authtoekn]部分中的其他选项
在该[oslo_concurrency]
部分中,配置锁定路径:
[osle_concurrency]
…
lock_path=/var/lib/neutron/tmp
配置网络选项
这里选择提供商网络
配置Linux网桥代理
编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini
文件并完成以下操作:
在本[linux_bridge]
节中,将提供者虚拟网络映射到提供者物理网络接口:
[linux_bridge]
physical_interface_mappings=provider:PROVIDER_INTERFACE_NAME
替换PROVIDER_INTERFACE_NAME
为底层提供商物理网络接口的名称。
在本[vxlan]
节中,禁用VXLAN覆盖网络:
[vxlan]
enable_vxlan=False
在本[securitygroup]
节中,启用安全组并配置Linux网桥iptables防火墙驱动程序:
[securitygroup]
…
enable_security_group=True
firewall_driver=neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
配置计算服务以使用网络服务
编辑/etc/nova/nova.conf
文件并完成以下操作:
在该[neutron]
部分中,配置访问参数:
[neutron]
…
url=http://controller:9696
auth_url=http://controller:35357
auth_type=password
project_domain_name=Default
user_domain_name=Default
region_name=RegionOne
project_name=service
usernamee=neutron
password=root
root为身份服务中卫neutron选择的密码
完成安装
重新启动计算服务:
#systemctl restart openstack-nova-compute.service
启动Linux桥代理并将其配置为在系统引导时启动:
#systemctl enable neutron-linuxbridge-agent.service
#systemctl start neutron-linuxbridge-agent.service
验证操作
注:在控制节点上执行这些命令
$.admin-openrc
$ neutron ext-list
注:实际输出略有不同
$openstack network agent list
在控制器节点上安装配置仪表盘
安装软件包:
#yum install openstack-dashboard
编辑 /etc/openstack-dashboard/local_settings
文件并完成以下操作:
配置仪表板以在controller
节点上使用OpenStack服务 :
OPENSTACK_HOST="controller"
允许所有主机访问仪表板:
ALLOWED_HOSTS=['*',]
配置memcached
会话存储服务:
启用Identity API版本3:
OPENSTACK_KEYSTONE_URL="http://%s:5000/v3"%OPENSTACK_HOST
启用对域的支持:
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT=True
配置API版本:
OPENSTACK_API_VERSIONS={
"identity":3,
"image":2,
"volume":2,
}
配置default
为您通过仪表板创建的用户的默认域:
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN="default"
配置user
为您通过仪表板创建的用户的默认角色:
OPENSTACK_KEYSTONE_DEFAULT_ROLE="user"
禁用对三层网络服务的支持:
OPENSTACK_NEUTRON_NETWORK={
…
'enable_router’:False,
'enable_quotas':False,
'enable_distributed_router':False,
'enable_ha_router':False,
'enable_lb':False,
'enable_firewall':False,
'enable_vpn':False,
'enable_fip_topology_check':False,
}
(可选)配置时区:
TIME_ZONE:"TIME_ZONE"
替换TIME_ZONE
为适当的时区标识符
完成安装
重新启动Web服务器和会话存储服务:
#systemctl restart httpd.service memcached.service
注:如果当前没有运行,该命令将启动每个服务
验证操作
使用Web浏览器访问仪表板 http://controller/dashboard
。
使用admin
或demo
用户和default
域凭据进行身份验证。
1、学会在官网找资料,看官网文档,这次后面的安装都是依照官网进行
2、从云计算的角度看,操作系统和计算机网络的知识很重要,熟悉Linux和其常用命令
3、在安装过程中,随时拍快照保存当时系统状态,安装出问题回退修改会比较方便
4、养成随时记录的习惯
5、学习OpenStack,实际操作一次会比只看概念更有收获