我想实例化一个仿生云映像,该映像应由通过路由器连接到我的外部网络的内部VLAN托管。这是我要执行的命令:
openstack router create myrouter
openstack network create private
openstack subnet create --dhcp --gateway 192.168.44.254 --dns-nameserver 195.83.126.2 --dns-nameserver 195.83.126.11 --subnet-range 192.168.44.0/24 --network private --allocation-pool start=192.168.44.100,end=192.168.44.200 private-subnet
openstack router set --external-gateway provider myrouter
openstack router add subnet myrouter private-subnet
openstack server create --image 'Ubuntu 18.04 (bionic)' --net private --key-name ansible-master-ansible --flavor small --security-group k8s-security-group srv01
openstack floating ip create provider
openstack server add floating ip srv01 192.168.13.211
其中k8s-security-group
是一个安全组,它允许ssh
和icmp
协议,而ansible-master-ansible
是我通过ssh-keygen
生成并上传到的ssh密钥对我的OpenStack服务器。当我的主机直接位于外部网络后面时,安全组和ssh密钥对均已在先前的测试中成功测试。
基本上,所有组件都已构建。但是,我可以 ping我的实例,但我不能 ssh并出现permission denied (publickey)
错误。查看我新创建的实例的日志,我可以阅读以下错误消息:
ci_info: no authorized ssh keys fingerprints found for user ubuntu
这似乎表明我的ssh密钥未正确注入到我的实例中,即使在实例摘要中该密钥似乎存在。您是否知道我的命令出了什么问题?
PS:使用1)Horizon
GUI或2)ansible
openstack模块执行这些步骤时,会发生相同的错误
[EDIT] centos 7的相同问题