前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenStack踩坑之路(4)

OpenStack踩坑之路(4)

作者头像
没有故事的陈师傅
发布2019-07-28 13:53:28
1.5K0
发布2019-07-28 13:53:28
举报
文章被收录于专栏:运维开发故事

分享是最好的学习方法,用输出来倒逼输入 ——CloudMan


使用OpenStack启动一个实例

1.创建虚拟网络

在启动实例之前,您必须创建必要的虚拟网络基础结构。对于提供商网络,实例使用通过第2层(桥接/交换)连接到物理网络基础设施的提供商(外部)网络。该网络包括一个为实例提供IP地址的DHCP服务器。

该admin或其他特权用户必须创建此网络,因为它直接连接到物理网络基础结构。

加载环境变量

[root@controller ~]# . admin-openrc

创建网络

[root@controller ~]# openstack network create --share --external--provider-physical-network provider --provider-network-type flat provider //--share选项允许所有项目使用虚拟网络,--external选项将虚拟网络定义为外部。如果你想创建一个内部网络,你可以使用--internal。默认值是internal。

在网络上创建一个子网

[root@controller ~]# openstack subnet create --networkprovider \

> --allocation-pool start=173.168.16.20,end=173.168.16.252 \

> --dns-nameserver 114.114.114.114 --gateway173.168.16.254 \

> --subnet-range 173.168.16.0/24 provider //创建了一个地址池为173.168.16.20-173.168.16.252,DNS地址为114.114.114.114,网关为173.168.16.254的子网

查看网络列表

[root@controller ~]# openstack network list

2.创建m1.nano规格的主机

最小的默认规格消耗每个实例512 MB的内存。对于计算节点内存小于4 GB的环境,我们建议创建m1.nano每个实例仅需要64 MB 的风格。为了测试目的,请仅将CirrOS图像用于此规格。

[root@controller ~]# openstack flavor create --id 0--vcpus 1 --ram 64 --disk 1 m1.nano //创建了主机id为0,CPU数量为1,内存64M(默认单位是M),磁盘容量为1G的主机

查看创建的主机

[root@controller ~]# openstackflavor list

3.创建密钥对

大多数云图像支持公钥认证,而不是传统的密码认证。在启动实例之前,您必须将公钥添加到Compute服务。

加载demo环境变量

[root@controller ~]# . demo-openrc

生成密钥对并添加公钥

[root@controller ~]# ssh-keygen -q -N "" //创建密钥对

[root@controller ~]# openstack keypair create--public-key ~/.ssh/id_rsa.pub mykey //添加公钥,或者不用执行上一条命令,直接使用现有的公钥

验证密钥对添加

[root@controller ~]# openstack keypair list

4.添加安全组规则

默认情况下,default安全组适用于所有实例,并包含拒绝远程访问实例的防火墙规则。对于像CirrOS这样的Linux映像,我们建议至少允许ICMP(ping)和安全shell(SSH)。

向default安全组添加规则,允许icmp(ping):

[root@controller ~]# openstack security group rulecreate --proto icmp default

允许安全shell(SSH)访问:

[root@controller ~]# openstack security group rule create --proto tcp --dst-port 22 default

5.启动一个实例

加载demo环境变量

[root@controller ~]# . demo-openrc

列出创建的实例

[root@controller ~]# openstack flavor list

列出可用的镜像

[root@controller ~]# openstack image list

列出可用网络

[root@controller ~]# openstack network list

列出可用的安全组

[root@controller ~]# openstack security group list

启动实例

[root@controller ~]# openstack server create --flavorm1.nano --image cirros \

> --nic net-id=38d21b44-63ca-4514-bde6-7e3f7b7fabfd--security-group default \

> --key-name mykey provider-instance //net-id为创建的网络id

查看实例的状态

[root@controller ~]# openstack server list

6.使用虚拟控制台访问实例

[root@controller ~]# openstack console url showprovider-instance //可以在web浏览器上输入下面的URL进行vnc连接

验证对提供商物理网络网关的访问权限

验证对外网的访问

$ ping openstack.org

远程连接虚拟机(账号cirros,密码‘cubswin;)’)

[root@controller ~]# ssh cirros@173.168.16.28

至此,实例创建完成


OpenStack dashboard服务搭建

本节介绍如何在控制器节点上安装和配置仪表板。

仪表板所需的唯一核心服务是身份服务。您可以将仪表板与其他服务结合使用,例如图像服务,计算和网络。您还可以在具有独立服务(如对象存储)的环境中使用仪表板。

本节假定使用Apache HTTP服务器和Memcached服务正确安装,配置和操作Identity Service。

1.安装软件包

[root@controller ~]# yum install openstack-dashboard

2.编辑配置文件修改配置

编辑 /etc/openstack-dashboard/local_settings 文件并完成以下操作:

配置仪表板以在controller节点上使用OpenStack服务:

OPENSTACK_HOST = "controller"

允许所有主机访问仪表板:

ALLOWED_HOSTS = ['*', 'localhost']

配置memcached会话存储服务:(这里注释掉其他的会话存储配置)

SESSION_ENGINE ='django.contrib.sessions.backends.cache'

CACHES = {

'default': {

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

'LOCATION': 'controller:11211',

}

}

启用版本为3的认证 API:

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"

如果您选择了网络选项1,请禁用对三层网络服务的支持:

OPENSTACK_NEUTRON_NETWORK = {

'enable_router': False,

'enable_quotas': False,

'enable_ipv6': False,

'enable_distributed_router':False,

'enable_ha_router': False,

'enable_lb':False,

'enable_firewall': False,

'enable_V**':False,

'enable_fip_topology_check': False,

}

配置时区

TIME_ZONE = "Asia/Shanghai"

注意:对配置文件里添加新配置的同时要对以前相同的配置进行注释,否则会造成重启http服务报错

3.完成安装

重新启动Web服务器和会话存储服务

[root@controller ~]# systemctl restart httpd.servicememcached.service

4.验证操作

在浏览器输入173.168.16.224/dashboard访问dashboard

这里我一直访问不了,查看日志看到Script timed out before returning headers: django.wsgi,百度这条关键字,发现需要修改dashboard配置文件,编辑etc/httpd/conf.d/openstack-dashboard.conf,在WSGISocketPrefix run/wsgi下面加一行代码: WSGIApplicationGroup %{GLOBAL} 保存,重启httpd服务。

后来可以访问了,但是登录老是失败,出现下图的报错,查看日志,发现这么一条信息,"Unable to create a new session key. " “Unable to create anew session key. It is likely that the cache is unavailable.”,百度一下修改/etc/openstack-dashboard/local_settings文件中的SESSION_ENGINE= 'django.contrib.sessions.backends.cache',将cache修改为file,重启httpd服务即可成功访问

这里访问的默认域为“Default”,用户名与密码为admin,也可以使用demo用户进行登录

至此,OpenStack dashboard服务搭建完成


参考链接:https://docs.openstack.org/horizon/pike/install

https://docs.openstack.org/install-guide/launch-instance.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维开发故事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档