interface.obsoleted
本文参考:https://docs.openstack.org/ocata/install-guide-rdo/index.html官方文档来手把手教你装置Ocata,装置文档中有缝隙的处所,本文都市提及。本指南不会给出所有号令的输出成效,只给出局部须要的表明,因此在装置时最好比较着官方文档停止。
本文目录:
装置情况
认证办事
镜像办事
计较办事
网络办事
Dashboard
一、装置情况
1、示例架构
依据官方文档,本文架构采纳一个管制节点和一个计较节点。
(The example architecture requires at least twonodes (hosts) to launch a basic virtual machine or instance. )
管制节点运行认证办事、镜像办事、计较办事的办理局部、网络办事的办理局部、各类网络代办署理以及Dashboard,还包含一些根底办事如数据库、消息行列步队以及NTP。
计较节点上运行计较办事中办理实例的办理顺序局部。默认情况下,计较办事使用 KVM。还运行网络代办署理办事,用来衔接实例和虚拟网络以及经由过程平安组给实例提供防火墙办事。
2、网络
公有网络
公有网络选项以尽能够复杂的方法经由过程layer-2(网桥/交流机)办事以及VLAN网络的联系来布置OpenStack网络办事。实际上,它将虚拟网络桥接到物理网络,并依靠物理网络根底举措措施提供layer-3办事(路由)。别的,DHCP办事为实例提供IP地点。
私有网络
私有网络选项扩展了公有网络选项,减少了layer-3(路由)办事,使用VXLAN近似的方法。实质上,它使用NAT路由虚拟网络到物理网络。别的,这个选项也提供高级办事的根底,比方LBaas和FWaaS。
这里我们抉择私有网络。
3、平安
下面是各个需要暗码的办事以及表明,倡议这些暗码使用同一个,免得混合。
4、主机网络配置
管制节点
配置网络接口
Controller:IP:192.168.0.112/24 GATEWAY:192.168.0.1
网络配置完之后需要将防火墙和selinux敞开。
敞开防火墙:
systemctl stop firewalld.service
制止防火墙开机启动
systemctl disable firewalld.service
敞开selinux
vim /etc/selinux/config,配置selinux=disabled
# setenforce 0,使配置当即生效
配置地点剖析
编纂/etc/hosts
# controller
192.168.0.112 controller
# compute1
192.168.0.113 compute1
计较节点
配置网络接口。
Compute:IP:192.168.0.113/24 GATEWAY:192.168.0.1
同样需要配置地点剖析,参考管制节点。
配置完成之后需要停止验证:
与外网连通性:
别离在管制节点和计较节点上:
# ping -c 4 www.baidu.com
管制节点和计较节点连通性:
管制节点上输入# ping -c 4 compute1
计较节点上输入# ping -c 4 controller
5、NTP
管制节点
装置相关包
# yum install chrony
编纂 /etc/chrony.conf
server NTP_SERVER iburst
可以依据需要将NTP_SERVER替换为适宜的NTP办事器,倡议不消改。而后添加:
allow 192.168.0.0/24
即允许计较节点同步。(计较节点IP网段属于192.168.0.0)
# systemctl enable chronyd.service
# systemctl start chronyd.service
启动办事。
计较节点
编纂/etc/chrony.conf,可以将其他的几个同阵势址注释失。
server controller iburst
同步管制节点。
# systemctl enable chronyd.service
# systemctl start chronyd.service
启动办事。(如果发明同步的不是管制节点,那么重启一下NTP办事即可。)
# systemctl restart chronyd.service
验证操纵:
在管制节点上同步工夫。
# chronyc sources
带星号的是NTP当前同步的地点。
计较节点上同步。
# chronycsources
210 Number of sources = 1
MS Name/IP address
Stratum Poll Reach LastRx Last sample
======================================================
^* controller 3 9 377 421 +15us[ -87us] +/- 15ms
6、装置OpenStack包
以下操纵在所有节点上停止。
启用OpenStack库:
# yum install centos-release-openstack-ocata
完成装置
1)在所有节点上进级包
# yum upgrade
2)装置OpenStack 客户端
# yum install python-openstackclient
3)CentOS默认启用了SELinux,装置openstack-selinux来自动办理OpenStack办事的平安战略。
# yum install openstack-selinux
7、装置数据库
数据库个别运行在管制节点上。
装置并配置组件。
装置相关包。
# yum install mariadb mariadb-server python2-PyMySQL
创立并编纂/etc/my.cnf.d/openstack.cnf 文件,并完成以下操纵。在配置文件中添加以下配置:
[mysqld]
bind-address=192.168.0.112
default-storage-engine=innodb
innodb_file_per_table=on
max_connections=4096
collation-server=utf8_general_ci
character-set-server=utf8
此中bind-address为管制节点IP地点。
完成装置
1)启动数据库并设置开机启动
# systemctl enable mariadb.service
# systemctl start mariadb.service
2)运行mysql_secure_installation剧本来包管数据库平安,为root账户设置一个适宜的暗码
# mysql_secure_installation
8、消息行列步队
OpenStack使用消息行列步队来协调办事之间的状态和操纵,消息行列步队办事个别运行在管制节点上。,OpenStack反对RabbitMQ,Qpid以及ZeroMQ等消息行列步队办事。本指南使用RabbitMQ消息行列步队办事。
装置相关包
# yum install rabbitmq-server
启动消息行列步队并设置开机启动
# systemctl enable rabbitmq-server.service
# systemctl start rabbitmq-server.service
添加openstack用户
#rabbitmqctl add_user openstack RABBIT_PASS
Creating user "openstack" ...
使用适宜的暗码替换失 RABBIT_PASS
允许openstack用户的配置、写、读权限
#rabbitmqctl set_permissions openstack".*"".*"".*"
Setting permissions for user "openstack" in vhost "/" ...
9、缓存令牌
认证办事的认证机制使用Memcached来缓存令牌,个别运行在管制节点上。
装置相关包
# yum install memcached python-memcached
编纂 /etc/sysconfig/memcached文件并配置IP地点,将127.0.0.1改为管制节点IP。
完成装置
启动 Memcached办事并设置开机启动。
# systemctl enable memcached.service
# systemctl start memcached.service
二、认证办事
在 管制节点上配置。 1、前提条件
创立数据库
以root身份登录数据库
$ mysql -u root -p
创立keystone数据库
MariaDB[(none)]> CREATE DATABASE keystone;
给数据库付与适当的权限;
MariaDB [(none)]> GRANT ALL PRIVILEGESON keystone.* TO 'keystone'@'localhost'
IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGESON keystone.* TO 'keystone'@'%'
IDENTIFIED BY 'KEYSTONE_DBPASS';
用适宜的暗码替换KEYSTONE_DBPASS
2、装置并配置组件
运行号令装置相关包
# yum install openstack-keystone httpd mod_wsgi
编纂文件/etc/keystone/keystone.conf
在[database]选项配置数据库衔接
[database]
# ...
connection=mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
替换失KEYSTONE_DBPASS
在[token]选项中,配置,Fernet令牌提供者:
[token]
# ...
provider=fernet
同步认证办事数据库
# su -s/bin/sh -c "keystone-manage db_sync" keystone
初始化Fernetkey堆栈
# keystone-manage fernet_setup --keystone-user keystone --keystone-
groupkeystone
# keystone-manage credential_setup --keystone-user keystone--keystone-groupkeystone
引导认证办事
# keystone-manage bootstrap --bootstrap-password ADMIN_PASS
--bootstrap-admin-urlhttps://controller:35357/v3/
--bootstrap-internal-urlhttps://controller:5000/v3/
--bootstrap-public-urlhttps://controller:5000/v3/
--bootstrap-region-id RegionOne
替换失ADMIN_PASS
配置Apache办事器
编纂/etc/httpd/conf/httpd.conf并配置ServerName选项,使之参考管制节点
给/usr/share/keystone/wsgi-keystone.conf文件创立一个链接
# ln -s/usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
完成装置
1.启动Apache办事器并设置开机启动
# systemctlenable httpd.service
# systemctl start httpd.service
2.配置办理账户
$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=https://controller:35357/v3
$export OS_IDENTITY_API_VERSION=3
3、创立一个域、名目、用户和脚色
本指南有一个service 名目,你添加的每一个办事都有独一的用户。
$ openstack project create --domain default
--deion "Service Project"service
普通的工作不该该使用具有特权的名目和用户。作为示例,本指南创立一个demo名目和用户。
1、创立demo名目:
$ openstack project create --domain default
--deion "Demo Project"demo
2、创立demo用户:
?
$ openstack user create --domain default
--password-prompt demo
3、创立user脚色:
$ openstack role create user
4、将user脚色添加到demo名目和用户中。
$ openstack role add --project demo --user demo user
4、验证操纵
出于平安性的原因,禁用失临时的认证令牌机制。
编纂/etc/keystone/keystone-paste.ini文件,并从[pipeline:public_api], [pipeline:admin_api], 和[pipeline:api_v3]选项中删除admin_token_auth
勾销设置长期的OS_AUTH_URL和OS_PASSWORD情况变量:
$unset OS_AUTH_URL OS_PASSWORD
使用admin用户,请求一个认证令牌;
$ openstack --os-auth-url https://controller:35357/v3
--os-project-domain-name default--os-user-domain-name default
--os-project-name admin --os-username admintoken issue
这里遇到谬误
由于是Http谬误,所以返回Apache HTTP 办事配置的处所,重启Apache 办事,并从头设置办理账户:
# systemctlrestart httpd.service
$ 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=https://controller:35357/v3
$ export OS_IDENTITY_API_VERSION=3
谬误处理!
使用demo用户,请求认证令牌:
$ openstack--os-auth-url https://controller:5000/v3
--os-project-domain-namedefault --os-user-domain-name default
--os-project-namedemo --os-username demo token issue
Password:
暗码为创立demo用户时的暗码。
5、创立OpenStack客户端情况剧本:
在后面章节中,我们使用情况变量和号令的组合来配置认证办事,为了愈加高效和不便,我们创立一个剧本不便今后的操纵。这些剧本包含一些大众的操纵,可是也反对自界说的操纵。
创立剧本
创立并编纂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=root
export OS_AUTH_URL=https://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
替换失OS_PASSWORD的暗码。
创立并编纂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=DEMO_PASS
export OS_AUTH_URL=https://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
使用剧本
加载剧本文件更新情况变量:
$ . admin-openrc
请求一个认证令牌;
$ openstack token issue
三、镜像办事
1、前提条件
创立数据库
衔接数据库,使用root登录。
$ mysql -u root -p
创立 glance 数据库
MariaDB [(none)]> CREATE DATABASEglance;
付与权限:
MariaDB [(none)]> GRANT ALL PRIVILEGESON glance.* TO 'glance'@'localhost'
IDENTIFIED BY 'GLANCE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGESON glance.* TO 'glance'@'%'
IDENTIFIED BY 'GLANCE_DBPASS';
替换GLANCE_DBPASS为适宜的暗码;
退出数据库衔接。
导入admin证书来获取只有admin才干执行的号令行权限;
$ . admin-openrc
创立办事认证:
创立glance用户
$ openstack user create --domain default --password-prompt glance
添加办理员脚色到glance用户和service名目中:
$ openstack role add --project service --user glance admin
创立glance办事实体
创立镜像办事API端口:
$ openstack endpoint create --region RegionOne
imagepublic https://controller:9292
$ openstack endpoint create --region RegionOne
image internal https://controller:9292
$ openstack endpoint create --region RegionOne
image admin https://controller:9292
2、装置并配置组件
装置相关包:
# yum install openstack-glance
编纂/etc/glance/glance-api.conf文件,完成以下操纵;
在[keystone_authtoken]和[paste_deploy]选项中,配置认证办事权限:
[keystone_authtoken]
# ...
auth_uri=https://controller:5000
auth_url=https://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=glance
password=GLANCE_PASS
[paste_deploy]
# ...
flavor=keystone
替换失GLANCE_PASS暗码。删除或注释失其他[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:GLANCE_DBPASS@controller/glance
替换失 GLANCE_DBPASS暗码。
在[keystone_authtoken]和[paste_deploy]选项中,配置认证办事权限:
[keystone_authtoken]
# ...
auth_uri=https://controller:5000
auth_url=https://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=glance
password=GLANCE_PASS
[paste_deploy]
# ...
flavor=keystone
替换失GLANCE_DBPASS暗码。
4、更新镜像办事数据库
完成装置
启动镜像办事并设置开机启动。
# systemctl enable openstack-glance-api.service
openstack-glance-registry.service
# systemctl start openstack-glance-api.service
openstack-glance-registry.service
5、验证操纵
获取admin权限
$ . admin-openrc
下载源镜像
$ wget https://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
上传镜像
$ openstack image create "cirros"
--file cirros-0.3.4-x86_64-disk.img
--disk-format qcow2 --container-format bare
--public
验证上传镜像:
openstack image list
四、计较办事
1、装置和配置管制节点
筹办条件
创立数据库,与之前步调近似,这里不再详细列出
$ mysql -u root -p
MariaDB [(none)]> CREATE DATABASEnova_api;
MariaDB [(none)]> CREATE DATABASE nova;
MariaDB [(none)]> GRANT ALL PRIVILEGESON nova_api.* TO 'nova'@'localhost'
IDENTIFIED BY 'NOVA_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGESON nova_api.* TO 'nova'@'%'
IDENTIFIED BY 'NOVA_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGESON nova.* TO 'nova'@'localhost'
IDENTIFIED BY 'NOVA_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGESON nova.* TO 'nova'@'%'
IDENTIFIED BY 'NOVA_DBPASS';
获取admin权限:
$ . admin-openrc
创立nova用户
$ openstack user create --domain default
--password-prompt nova
设置适宜的暗码
向nova用户中添加admin脚色。
$ openstack role add --project service --user nova admin
创立nova办事实体
$ openstack service create --name nova
--deion "OpenStack Compute" compute
2、创立计较办事API端口
$ openstack endpoint create --region RegionOne
compute public https://controller:8774/v2.1/%(tenant_id)s
$ openstack endpoint create --region RegionOne
compute internal https://controller:8774/v2.1/%(tenant_id)s
$ openstack endpoint create --region RegionOne
compute admin https://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:NOVA_DBPASS@controller/nova_api
[database]
# ...
connection=mysql+pymysql://nova:NOVA_DBPASS@controller/nova
替换NOVA_DBPASS暗码。
在[DEFAULT]选项中,配置消息行列步队衔接。
[DEFAULT]
# ...
transport_url=rabbit://openstack:RABBIT_PASS@controller
替换失RABBIT_PASS
在[api]和[keystone_authtoken]选项中,
[api]
# ...
auth_strategy=keystone
[keystone_authtoken]
# ...
auth_uri=https://controller:5000
auth_url=https://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=NOVA_PASS
替换失NOVA_PASS
在[DEFAULT]选项中,配置my_ip
[DEFAULT]
# ...
my_ip=10.0.0.11
开启对网络办事的反对
[DEFAULT]
# ...
use_neutron=True
firewall_driver=nova.virt.firewall.NoopFirewallDriver
在[vnc]选项中,配置VNC代办署理
[vnc]
enabled=true
# ...
vncserver_listen=$my_ip
vncserver_proxyclient_address=$my_ip
在[glance]选项中,配置镜像办事API的地位。
[glance]
# ...
api_servers=https://controller:9292
在[oslo_concurrency]选项中,配置锁定门路
[oslo_concurrency]
# ...
lock_path=/var/lib/nova/tmp
更新数据库
#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
3、装置并配置计较节点
装置并配置组件
装置相关包
# yum install openstack-nova-compute
编纂/etc/nova/nova.conf文件
在[DEFAULT]选项中,开启计较和元数据API
[DEFAULT]
# ...
enabled_apis=osapi_compute,metadata
在[DEFAULT]选项中,配置消息行列步队权限
[DEFAULT]
# ...
transport_url=rabbit://openstack:RABBIT_PASS@controller
替换失RABBIT_PASS
在[api]和[keystone_authtoken]选项中,配置认证办事权限
[api]
# ...
auth_strategy=keystone
[keystone_authtoken]
# ...
auth_uri=https://controller:5000
auth_url=https://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=NOVA_PASS
替换失NOVA_PASS
在[DEFAULT]选项中,配置my_ip参数
[DEFAULT]
# ...
my_ip=MANAGEMENT_INTERFACE_IP_ADDRESS
替换MANAGEMENT_INTERFACE_IP_ADDRESS为计较节点IP
在[DEFAULT]选项中,开启网络办事反对
[DEFAULT]
# ...
use_neutron=True
firewall_driver=nova.virt.firewall.NoopFirewallDriver
在[vnc]选项中,开启并配置长途管制台权限
[vnc]
# ...
enabled=True
vncserver_listen=0.0.0.0
vncserver_proxyclient_address=$my_ip
novncproxy_base_url=https://controller:6080/vnc_auto.html
在[glance]选项中,配置镜像办事API地点
[glance]
# ...
api_servers=https://controller:9292
在[oslo_concurrency]选项,配置锁定门路
[oslo_concurrency]
# ...
lock_path=/var/lib/nova/tmp
4、完成装置
反省你的计较节点是否反对硬件虚拟化
$ egrep -c '(vmx|svm)' /proc/cpuinfo
如果输出值大于即是1,那么不需要配置,不然,需要做一下配置
编纂/etc/nova/nova.conf文件,配置[libvirt]
[libvirt]
# ...
virt_type=qemu
开启计较办事并设置开机启动
# systemctl enable libvirtd.serviceopenstack-nova-compute.service
# systemctl start libvirtd.service openstack-nova-compute.service
验证操纵
在管制节点上停止操纵。
获取admin权限
$ . admin-openrc
列出办事组件来验证每个组件都乐成运行了
$ openstack compute service list
这里遇到问题:发明计较节点上办事没有启动
检查计较节点日志:/var/log/nova/nova-compute.log发明
外面提到需要配置placement,而官方文档并没有提到这一点。处理举措是装置openstack-nova-placement-api,并配置相关选项。
在管制节点上,而后创立用户把用户placement添加到名目中去并创立placement范例的办事目录:
最终创立端口:
openstack endpoint create --regionRegionOne placement public https://192.168.0.112:8778
openstack endpoint create --regionRegionOne placement admin https://192.168.0.112:8778
openstack endpoint create --regionRegionOne placement intenal https://192.168.0.112:8778
在计较节点上编纂文件:/etc/nova/nova.conf
在placement选项中添加:
auth_uri = https://controller:5000
auth_url = https://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = root
os_region_name = RegionOne
替换失password,重启计较办事:
# systemctl restartopenstack-nova-compute.service
可以看到办事已经启动:
管制节点上也显示正常:
在此参考了
https://superbigsea.blog.51cto.com/6862263/1901216,出格感激!
下面接着验证操纵:
3、列出认证办事中的API端口以反省连通性
$ openstack catalog list
4、列出镜像办事中的镜像以验证连通性;
$ openstack image list
下节持续配置网络办事和Dashboard。
相关阅读:高端私有云名目交换群,欢送插手!
《运维火线》新书公布,十三位火线运维专家倾力贡献,现场送出30本。云技能社区、华章书院、优云联手倾力出色贡献!现场还有云技能社区定制数据线、北极熊袋子等精彩礼物!2017年首场专业运维集会,一线专家解密当前运维火线,扫码或许点击阅读原文当即报名!
《运维火线》一书是十三位一线运维专家的深度实践,云技能社区历经整整一年多策动出品,想要得到免费的《运维火线》,请来参与“运维之春---2017运维火线解密”沙龙。同时,《运维火线》下一本书也开始邀请作者插手,如果有意向分享自己的运维实践教训,请加微信:xiaolikvm。
插手云技能社区技能交换微信群,联络北极熊微信:hadxiaer(加的时候请备注:姓名-都会-公司)
交换 分享 晋升
云技能社区建立于2014年,国内最大的云技能交换平台,分享在云计较/虚拟化名目实施中的资讯、教训和技能,保持干货。旗下经营:云技能实践、云技能、桌面云之云潮涌动等公家号,以及相关的微信群和QQ群,掩盖云计较范畴的技能人群,插手云技能社区微信、QQ群请点击订阅号菜单“群和勾当”。