美文网首页我用 Linux
OpenStack添加镜像

OpenStack添加镜像

作者: VoidKing | 来源:发表于2018-07-15 10:08 被阅读6次

前言

本文实验最终失败,失败,失败!重要的事情说三遍。

想要用openstack创建两台ubuntu16的虚拟机,于是上传了ubuntu-16.04.4-server-amd64.iso镜像,然后用它创建了实例,分配了浮动IP。理论上,应该可以访问了。但是,ping该IP会提示Destination Host Unreachable。

找到了制作 OpenStack Linux 镜像 - 每天5分钟玩转 OpenStack(151)一文,发现作者使用的是cloud镜像。十有八九是镜像的原因了,那就尝试一下。

原文链接:https://www.voidking.com/2018/06/27/deve-openstack-add-mirror/

下载cloud镜像

最简单的方法是使用标准镜像。主流的Linux发行版都提供可以在OpenStack中直接使用的cloud镜像,下面有几个下载地址:

这里我们访问 http://cloud-images.ubuntu.com/xenial/current/ ,然后下载xenial-server-cloudimg-amd64-disk1.img。

导入镜像

1、在horizon控制台,项目,计算,镜像,创建镜像。


image

2、镜像上传完成,即可看到新添加的镜像。


image

3、使用ubuntu16的镜像创建实例u16-n0。


image

4、测试登录。
给实例分配浮动IP为172.24.4.10,在ccrfox105上可以ping通。然后,查看日志,想要找到用户名和密码。但是,不同于cirros,在ubuntu16日志中并没有找到。


image

参考openstack入门二十六:创建实例,发现大多数 cloud images支持公钥授权而不是传统的用户名密码授权。

使用密钥

dashboard方法

1、项目,计算,密钥对,创建密钥对。


image

2、输入密钥名ccrfox105-key,创建密钥对,然后公钥就会上传到openstack,显示在控制台。同时会自动下载私钥到本地,名为ccrfox105-key.pem。


image

3、重新创建实例u16-n0(这次不要忘记选择密钥对),然后分配浮动IP为172.24.4.10。


image

4、通过scp把ccrfox105-key.pem上传到ccrfox105
scp ccrfox105-key.pem test@ccrfox105:~

5、等待实例启动完全(5分钟左右),在ccrfox105测试登录
ssh ubuntu@172.24.4.10 -i ccrfox105-key.pem

报错:


image

修改了密钥权限为600,依然无法登录。

换成root用户,ssh root@172.24.4.10 -i ccrfox105-key.pem,依然无法登录。

尴尬,这是什么鬼?

命令行方法

1、切换到stack用户
sudo su - stack

2、生成密钥对
ssh-keygen,三次回车。

3、添加公钥到openstack环境
nova keypair-add --pub-key ~/.ssh/id_rsa.pub ccrfox105-stack-key

报错:

ERROR (CommandError): You must provide a username or user ID via --os-username, --os-user-id, env[OS_USERNAME] or env[OS_USER_ID]

参考[完整部署CentOS7.2+OpenStack+kvm 云平台环境(5)--问题解决],需要source admin-openrc.sh,然而我的系统中并没有admin-openrc.sh这个文件。

(1)新建admin-openrc.sh,内容如下:

export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=secret
export OS_AUTH_URL=http://172.16.0.105:35357/v2.

(2)执行source admin-openrc.sh

(3)再次执行nova keypair-add --pub-key ~/.ssh/id_rsa.pub ccrfox105-stack-key进行测试,错误变了

No handlers could be found for logger "keystoneauth.identity.generic.base"
ERROR (DiscoveryFailure): Could not determine a suitable URL for the plugin

(4)sudo netstat -antupo | egrep '(5000|35357)',发现35357端口服务没有启动。

(5)ps -ef | grep keystone,查看keystone服务,已经启动。

(6)vim /etc/keystone/keystone.conf,打开几处注释:

admin_bind_host = 0.0.0.0
admin_port = 35357
public_bind_host = 0.0.0.0
public_port = 5000

(6)重启keystone,sudo /etc/init.d/apache2 restart

然后,没有用。

dashboard与命令行结合

1、切换到stack用户
sudo su - stack

2、生成密钥对
ssh-keygen,三次回车。

3、拷贝公钥到本地

4、在openstack的dashboard导入公钥。

5、创建实例,选择新导入的公钥。

6、再次测试登录。
ssh ubuntu@172.24.4.10 -i ~./ssh/id_rsa
ssh root@172.24.4.10 -i ~./ssh/id_rsa

和dashboad方法报同样的错误:Permission denied (publickey).

至此,三种方法全部失败,猜测openstack的keystone服务没有安装好,留个坑吧。

不使用密钥

参考如何在OpenStack上安装Ubuntu系统Openstack使用官方ubuntu和Centos镜像openstack中镜像的密码修改,配置过程如下:

创建实例,创建过程中不添加密钥对,而是配置脚本:

#!/bin/sh  
sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/g' /etc/ssh/sshd_config  
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config  
cp -f /home/ubuntu/.ssh/authorized_keys /root/.ssh/  
service ssh restart  
passwd ubuntu<<EOF  
123456
123456
EOF 

如下图:


image

然后,ssh ubuntu@172.24.4.10,Permission denied (publickey).

如果是CentOS,那么输入:

#!/bin/sh  
sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/g' /etc/ssh/sshd_config  
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config  
cp -f /home/centos/.ssh/authorized_keys /root/.ssh/  
service sshd restart  
passwd centos<<EOF  
123456
123456
EOF

后记

本次实验过程中,各种报错不断,大部分都没有找到解决方案。

最坑的是,除了cirros,其他镜像在实例创建成功后都无法登录,尝试了各种办法也没有解决,只能无奈放弃。

控制台也无法访问,参考OpenStack 控制台不能访问的问题进行配置,依然无法访问。

怀疑是因为openstack没有安装完整,毕竟安装完是有报错的,看来有必要重新安装一下openstack了。然后再写一篇《OpenStack添加镜像2.0》版本。

相关文章

  • OpenStack添加镜像

    前言 本文实验最终失败,失败,失败!重要的事情说三遍。 想要用openstack创建两台ubuntu16的虚拟机,...

  • OpenStack系列之一:手动部署OpenStack Quee

    title: OpenStack系列之一:手动部署OpenStack Queens(3.镜像服务)categori...

  • 安装OpenStack Glance 组件

    安装OpenStack Glance 组件 本篇主要记录一下 如何安装 OpenStack 的 Glance 镜像...

  • OpenStack 命令行知识点

    1.openstack命令行创建用户:创建glance用户。 2.openstack添加角色 openstack创...

  • 4.镜像服务glance

    部署镜像服务 glance:Glance 是 OpenStack 镜像服务组件, glance 服务默认监听在 9...

  • Learning Openstack part 5 Glance

    Glance是Openstack的镜像服务,主要为虚拟机提供镜像(image)。 什么是虚拟机镜像 虚拟机镜像是一...

  • OpenStack镜像制作

    博主环境是在虚机CentOS7系统下制作OpenStack的CentOS6.5镜像的 一、CentOS6.5 im...

  • 制作openstack镜像

    cannot access storage file (as uid:107, gid:107) permiss...

  • openstack镜像制作

    openstack镜像制作: 安装kvm 详情不再说 主要是介绍步骤以及使用方式 根据目前云主机使用的镜像一般都是...

  • openstack镜像区分

    openstack开源社区中目前支持的镜像种类繁多 例如: 众多的镜像中,目前采用相对较多的为qcow2和raw。...

网友评论

    本文标题:OpenStack添加镜像

    本文链接:https://www.haomeiwen.com/subject/nrtppftx.html