手把手教你安装OpenStack——Ocata安装指南(上)
手把手教你安装OpenStack——Ocata安装指南(上)本文参考: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、安全下面是各个需要密码的服务以及解释,建议这些密码使用同一个,以免混淆。http://img.mp.itc.cn/upload/20170301/ad08ade8f63541b5b1dce5bc42235830_th.jpeg4、主机网络配置控制节点
[*]配置网络接口
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# controller192.168.0.112 controller# compute1192.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 controller5、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,可以将IT论坛的几个同步地址注释掉。server controller iburst同步控制节点。# systemctl enable chronyd.service# systemctl start chronyd.service启动服务。(如果发现同步的不是控制节点,那么重启一下NTP服务即可。)# systemctl restart chronyd.service验证操作:在控制节点上同步时间。# chronyc sources带星号的是NTP当前同步的地址。计算节点上同步。# chronycsources210 Number of sources = 1MS Name/IP addressStratum Poll Reach LastRx Last sample======================================================^* controller 3 9 377 421 +15us[ -87us] +/- 15ms6、安装OpenStack包以下操作在所有节点上进行。
[*]启用OpenStack库:
# yum install centos-release-openstack-ocata
[*]完成安装
1)在所有节点上升级包# yum upgrade2)安装OpenStack 客户端# yum install python-openstackclient3)CentOS默认启用了SELinux,安装openstack-selinux来自动管理OpenStack服务的安全策略。# yum install openstack-selinux7、安装数据库数据库一般运行在控制节点上。安装并配置组件。
[*]安装相关包。
# yum install mariadb mariadb-server python2-PyMySQL创建并编辑/etc/my.cnf.d/openstack.cnf 文件,并完成以下操作。在配置文件中添加以下配置:bind-address=192.168.0.112default-storage-engine=innodbinnodb_file_per_table=onmax_connections=4096collation-server=utf8_general_cicharacter-set-server=utf8其中bind-address为控制节点IP地址。
[*]完成安装
1)启动数据库并设置开机启动# systemctl enable mariadb.service# systemctl start mariadb.service2)运行mysql_secure_installation脚本来保证数据库安全,为root账户设置一个合适的密码# mysql_secure_installation8、消息队列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_PASSCreating 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_DBPASS2、安装并配置组件
[*]运行命令安装相关包
# yum install openstack-keystone httpd mod_wsgi编辑文件/etc/keystone/keystone.conf在选项配置数据库连接# ...connection=mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone替换掉KEYSTONE_DBPASS在选项中,配置,Fernet令牌提供者:# ...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-urlhttp://controller:35357/v3/--bootstrap-internal-urlhttp://controller:5000/v3/--bootstrap-public-urlhttp://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.service2.配置管理账户$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=33、创建一个域、项目、用户和角色
[*]本指南有一个service 项目,你添加的每一个服务都有唯一的用户。
$ openstack project create --domain default--deion "Service Project"service
[*]普通的任务不应该使用具有特权的项目和用户。作为示例,本指南创建一个demo项目和用户。
1、创建demo项目:$ openstack project create --domain default--deion "Demo Project"demo2、创建demo用户:$ openstack user create --domain default--password-prompt demo3、创建user角色:$ openstack role create user4、将user角色添加到demo项目和用户中。$ openstack role add --project demo --user demo user4、验证操作
[*]出于安全性的原因,禁用掉暂时的认证令牌机制。
编辑/etc/keystone/keystone-paste.ini文件,并从, , 和选项中删除admin_token_authhttp://img.mp.itc.cn/upload/20170301/476f98787c294affb3d934dd9a7cbe76_th.jpeg
[*]取消设置临时的OS_AUTH_URL和OS_PASSWORD环境变量:
$unset OS_AUTH_URL OS_PASSWORD
[*]使用admin用户,请求一个认证令牌;
$ openstack --os-auth-url http://controller:35357/v3--os-project-domain-name default--os-user-domain-name default--os-project-name admin --os-username admintoken issue这里遇到错误http://img.mp.itc.cn/upload/20170301/d9ad1af2568544b18c9c967a8d1e9398.jpeg由于是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=http://controller:35357/v3$ export OS_IDENTITY_API_VERSION=3http://img.mp.itc.cn/upload/20170301/dd436c6ae21c467f8ff67ed7eef0214e_th.png错误解决!
[*]使用demo用户,请求认证令牌:
$ openstack--os-auth-url http://controller:5000/v3--os-project-domain-namedefault --os-user-domain-name default--os-project-namedemo --os-username demo token issuePassword:密码为创建demo用户时的密码。5、创建OpenStack客户端环境脚本:在前面章节中,我们使用环境变量和命令的组合来配置认证服务,为了更加高效和方便,我们创建一个脚本方便以后的操作。这些脚本包括一些公共的操作,但是也支持自定义的操作。
[*]创建脚本
创建并编辑admin-openrc文件,并添加以下内容:export OS_PROJECT_DOMAIN_NAME=Defaultexport OS_USER_DOMAIN_NAME=Defaultexport OS_PROJECT_NAME=adminexport OS_USERNAME=adminexport OS_PASSWORD=rootexport OS_AUTH_URL=http://controller:35357/v3export OS_IDENTITY_API_VERSION=3export OS_IMAGE_API_VERSION=2替换掉OS_PASSWORD的密码。创建并编辑demo-openrc文件,并添加以下内容:export OS_PROJECT_DOMAIN_NAME=Defaultexport OS_USER_DOMAIN_NAME=Defaultexport OS_PROJECT_NAME=demoexport OS_USERNAME=demoexport OS_PASSWORD=DEMO_PASSexport OS_AUTH_URL=http://controller:5000/v3export OS_IDENTITY_API_VERSION=3export 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 RegionOneimagepublic http://controller:9292$ openstack endpoint create --region RegionOneimage internal http://controller:9292$ openstack endpoint create --region RegionOneimage admin http://controller:92922、安装并配置组件
[*]安装相关包:
# yum install openstack-glance
[*]编辑/etc/glance/glance-api.conf文件,完成以下操作;
在和选项中,配置认证服务权限:# ...auth_uri=http://controller:5000auth_url=http://controller:35357memcached_servers=controller:11211auth_type=passwordproject_domain_name=defaultuser_domain_name=defaultproject_name=serviceusername=glancepassword=GLANCE_PASS# ...flavor=keystone替换掉GLANCE_PASS密码。删除或注释掉IT论坛参数。在选项中,配置本地文件系统存储和镜像文件位置。# ...stores=file,httpdefault_store=filefilesystem_store_datadir=/var/lib/glance/images/编辑/etc/glance/glance-registry.conf文件,并完成以下操作:在选项中,配置数据库权限:# ...connection=mysql+pymysql://glance:GLANCE_DBPASS@controller/glance替换掉 GLANCE_DBPASS密码。在和选项中,配置认证服务权限:# ...auth_uri=http://controller:5000auth_url=http://controller:35357memcached_servers=controller:11211auth_type=passwordproject_domain_name=defaultuser_domain_name=defaultproject_name=serviceusername=glancepassword=GLANCE_PASS# ...flavor=keystone替换掉GLANCE_DBPASS密码。4、更新镜像服务数据库完成安装
[*]启动镜像服务并设置开机启动。
# systemctl enable openstack-glance-api.serviceopenstack-glance-registry.service# systemctl start openstack-glance-api.serviceopenstack-glance-registry.service5、验证操作
[*]获取admin权限
$ . admin-openrc
[*]下载源镜像
$ wget http://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 -pMariaDB [(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" compute2、创建计算服务API端口$ openstack endpoint create --region RegionOnecompute public http://controller:8774/v2.1/%(tenant_id)s$ openstack endpoint create --region RegionOnecompute internal http://controller:8774/v2.1/%(tenant_id)s$ openstack endpoint create --region RegionOnecompute admin http://controller:8774/v2.1/%(tenant_id)s
[*]安装并配置组件
安装相关包# yum install openstack-nova-api openstack-nova-conductoropenstack-nova-console openstack-nova-novncproxyopenstack-nova-scheduler
[*]编辑 /etc/nova/nova.conf文件
在选项中,开启计算和元数据API# ...enabled_apis=osapi_compute,metadata在 和选项中,配置数据库连接# ...connection=mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api# ...connection=mysql+pymysql://nova:NOVA_DBPASS@controller/nova替换NOVA_DBPASS密码。在选项中,配置消息队列连接。# ...transport_url=rabbit://openstack:RABBIT_PASS@controller替换掉RABBIT_PASS在和选项中,# ...auth_strategy=keystone# ...auth_uri=http://controller:5000auth_url=http://controller:35357memcached_servers=controller:11211auth_type=passwordproject_domain_name=defaultuser_domain_name=defaultproject_name=serviceusername=novapassword=NOVA_PASS替换掉NOVA_PASS在选项中,配置my_ip# ...my_ip=10.0.0.11开启对网络服务的支持# ...use_neutron=Truefirewall_driver=nova.virt.firewall.NoopFirewallDriver在选项中,配置VNC代理enabled=true# ...vncserver_listen=$my_ipvncserver_proxyclient_address=$my_ip在选项中,配置镜像服务API的位置。# ...api_servers=http://controller:9292在选项中,配置锁定路径# ...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.serviceopenstack-nova-consoleauth.service openstack-nova-scheduler.serviceopenstack-nova-conductor.service openstack-nova-novncproxy.service# systemctl start openstack-nova-api.serviceopenstack-nova-consoleauth.service openstack-nova-scheduler.serviceopenstack-nova-conductor.service openstack-nova-novncproxy.service3、安装并配置计算节点
[*]安装并配置组件
安装相关包# yum install openstack-nova-compute编辑/etc/nova/nova.conf文件在选项中,开启计算和元数据API# ...enabled_apis=osapi_compute,metadata在选项中,配置消息队列权限# ...transport_url=rabbit://openstack:RABBIT_PASS@controller替换掉RABBIT_PASS在和选项中,配置认证服务权限# ...auth_strategy=keystone# ...auth_uri=http://controller:5000auth_url=http://controller:35357memcached_servers=controller:11211auth_type=passwordproject_domain_name=defaultuser_domain_name=defaultproject_name=serviceusername=novapassword=NOVA_PASS替换掉NOVA_PASS在选项中,配置my_ip参数# ...my_ip=MANAGEMENT_INTERFACE_IP_ADDRESS替换MANAGEMENT_INTERFACE_IP_ADDRESS为计算节点IP在选项中,开启网络服务支持# ...use_neutron=Truefirewall_driver=nova.virt.firewall.NoopFirewallDriver在选项中,开启并配置远程控制台权限# ...enabled=Truevncserver_listen=0.0.0.0vncserver_proxyclient_address=$my_ipnovncproxy_base_url=http://controller:6080/vnc_auto.html在选项中,配置镜像服务API地址# ...api_servers=http://controller:9292在选项,配置锁定路径# ...lock_path=/var/lib/nova/tmp4、完成安装
[*]检查你的计算节点是否支持硬件虚拟化
$ egrep -c '(vmx|svm)' /proc/cpuinfo如果输出值大于等于1,那么不需要配置,否则,需要做一下配置编辑/etc/nova/nova.conf文件,配置# ...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这里遇到问题:发现计算节点上服务没有启动http://img.mp.itc.cn/upload/20170301/871e1f42efa7454380f1950b688bcb7a.pnghttp://img.mp.itc.cn/upload/20170301/a44d31f02e6b43c9b8bb77013bba8145.png查看计算节点日志:/var/log/nova/nova-compute.log发现http://img.mp.itc.cn/upload/20170301/f25bc4d6557346518669b642c4600d37.jpeg里面提到需要配置placement,而官方文档并没有提到这一点。解决办法是安装openstack-nova-placement-api,并配置相关选项。在控制节点上,然后创建用户把用户placement添加到项目中去并创建placement类型的服务目录:http://img.mp.itc.cn/upload/20170301/11c9f6464590456fafea4f4ce870d49a_th.pnghttp://img.mp.itc.cn/upload/20170301/7d7f5ce8c5b6476a93290762daeef06b.png最终创建端口:openstack endpoint create --regionRegionOne placement public http://192.168.0.112:8778openstack endpoint create --regionRegionOne placement adminhttp://192.168.0.112:8778openstack endpoint create --regionRegionOne placement intenal http://192.168.0.112:8778在计算节点上编辑文件:/etc/nova/nova.conf在placement选项中添加:auth_uri = http://controller:5000auth_url = http://controller:35357memcached_servers = controller:11211auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = novapassword = rootos_region_name = RegionOne替换掉password,重启计算服务:# systemctl restartopenstack-nova-compute.service可以看到服务已经启动:http://img.mp.itc.cn/upload/20170301/eb4acd7324714752988efe1913f9424b.png控制节点上也显示正常:http://img.mp.itc.cn/upload/20170301/847ead6f95da4bc19043016a4db25478.png在此参考了http://superbigsea.blog.51cto.com/6862263/1901216,特别感谢!下面接着验证操作:3、列出认证服务中的API端口以检查连通性$ openstack catalog listhttp://img.mp.itc.cn/upload/20170301/6a5831ce809448679cb94236f7f544c9_th.jpeg4、列出镜像服务中的镜像以验证连通性;$ openstack image listhttp://img.mp.itc.cn/upload/20170301/33e6e6c4333244bd96c31f992ff11f50.png下节继续配置网络服务和Dashboard。
手把手教你安装OpenStack——Ocata安装指南(上)
页:
[1]