Nov 052015
 

现在各大linux厂商,其实已经有专门给openStack提供的镜像,不过国内的朋友,不太习惯老外做镜像的方式,经常问密码是多少。

现在安全事故很多,所以还是建议大家去官方下载镜像,有使用的问题,也比较好交流。自己手工做镜像,其实需要做不少工作,才能在OpenStack平台里用的很舒服。

支持修改密码

默认OpenStack的Dashboard修改虚拟机的密码的功能是关闭的,你需要enable。我是使用RDO安装。

编辑  /usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py

# The OPENSTACK_HYPERVISOR_FEATURES settings can be used to enable optional
# services provided by hypervisors.
OPENSTACK_HYPERVISOR_FEATURES = {
    'can_set_mount_point': False,
    'can_set_password': True,
}

重启httpd服务

systemctl restart httpd.service

这时候你就可以看到设置管理员密码的地方

Snap6

不过这个时候,你可能还是不能修改密码。你需要修改计算节点的nova.conf文件

[libvirt]

# Inject the admin password at boot time, without an agent.
# (boolean value)
#inject_password=false
inject_password=True

这样重启服务,应该就可以。

openstack-service restart nova

Cirros

这是一个大家在OpenStack测试非常喜欢使用的镜像,小于15M,测试起来非常方便。

官方下载地址 https://download.cirros-cloud.net/ 

这个镜像的用户名和密码

user:cirros
pass:cubswin:)

你可以在Horizon的vnc登录或者通过SSH登录。

如果你通过Horizon设置密码,其实就是设置Cirros镜像的root的密码,设置完成后,你可以在控制台或者SSH,使用root和你设置的密码登录。

如果你希望使用秘钥,用root身份登录,那么默认是不行的,你会客户端看到提示

Please login as 'cirros' user, not as root

如果你使用cirros用户登录,你会发现其实root的目录下也注入的公钥,只是

$ sudo ls /root/.ssh/
authorized_keys
$ sudo cat /root/.ssh/authorized_keys

# The following ssh key was injected by Nova
command="echo Please login as \'cirros\' user, not as root; echo; sleep 10" ssh-rsa 
ofEJnEpgbTIuO1Wc5vTs/cMuPmaJ7x6dAX2vg84LkRyX1dDzvQ8nD/tYpFYnSjzrh72N7tMm76GAaR
HzMxg3uNMGVk+wXCBU/Ffm1vE1A5uQ== root@node12
$ 

在公钥里加入一行,导致root无法登录。我们可以通过Horizon提供的user data的功能,实现root登录

Snap7

#!/bin/sh
cp -f /home/cirros/.ssh/authorized_keys /root/.ssh/

其实就是把cirros的公钥,复制到root的目录下。这时候创建出来的虚拟机就可以直接使用root登录,没有任何的遗憾。

Ubuntu 14.04

Ubuntu的OpenStack镜像其实做的非常不错,使用也非常广泛。

官方下载地址:http://cloud-images.ubuntu.com/trusty/  我是下载qcow2格式。

国外的镜像制作,基本都是只能使用秘钥登录。该镜像的用户名是:ubuntu

你可以通过在创建虚拟机的时候设置密码,这个是root的密码,这样你可以在控制台,用root的身份和你设置的密码登录。

Ubuntu14.04的镜像,默认不允许root的身份登录,包括密码和秘钥。甚至把注入root的公钥都修改了

# cat /root/.ssh/authorized_keys 
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,
command="echo 'Please login as the user \"ubuntu\" rather than the user \"root\".';
echo;sleep 10" ssh-rsa 
AAAAB3NzaC1yc2EAAAABIwAAAQ
HzMxg3uNMGVk+wXCBU/Ffm1vE1A5uQ== root@node12

如果我们希望用root的身份,ssh登录,那么和上面镜像差不多。

Snap9

脚本

#!/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

如果你希望给ubuntu的用户设置一个密码,还是上面地方进行设置

#!/bin/sh
passwd ubuntu<<EOF
pass
pass
EOF

用户ubuntu,就可以在控制台使用密码:pass 登录

CentOS

目前CentOS官方提供CentOS 6 和CentOS 7的镜像,大家可以从官方下载 http://cloud.centos.org/centos/7/images/

没有压缩的是900多M,压缩过的是400多M。默认的用户名是:centos

目前各大发行版对镜像的定制,安全性基本都是一致的。CentOS,同样也是不允许root登录,使用密钥也是不行的。

如果是希望root使用密钥登录,做法和Cirros镜像基本是一样的

#!/bin/sh
mv /root/.ssh/authorized_keys /root/.ssh/authorized_keys.old
cp  /home/centos/.ssh/authorized_keys /root/.ssh/

镜像的ssh设置,是允许root的登录的,所以就不需要修改ssh。如果你希望root可以使用密码登录。那么你需要用脚本修改ssh设置

#!/bin/sh
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
systemctl restart sshd

顺便也测试了一下CentOS6的镜像,好像有点问题,无法设置密码。别的都没啥问题。

 

 

参考文档

http://docs.openstack.org/image-guide/content/ch_obtaining_images.html

http://www.chenshake.com/openstack-mirror-and-password/

https://cloudinit.readthedocs.org/en/latest/topics/examples.html

  7 Responses to “OpenStack官方镜像和密码”

  1. 沙老师您好,好开心又能看到你的博客,请问用firefox通过dashboard console 打开vm,一直hold在Sent ProtocolVersion: 003.008,换其他机器却可以登录,为什么呢?

    PS:之前firefox是可以打开的。

  2. openmediavault
    Image Active Yes No QCOW2 1.1 GB

    rhel56_x86_64.qcow2
    Image Active Yes No QCOW2 282.2 MB

    rhel-guest-image-7.0
    Image Active Yes No QCOW2 396.1 MB

    debian-8.1.0
    Image Active Yes No QCOW2 458.7 MB

    Fedora-Cloud-Base-22
    Image Active Yes No QCOW2 218.0 MB

    CentOS-6-x86_64
    Image Active Yes No QCOW2 1.1 GB

    CentOS-7-x86_64
    Image Active Yes No QCOW2 955.9 MB

    Ubuntu 15.04
    Image Active Yes No QCOW2 273.4 MB

    winxp
    Image Active Yes No QCOW2 1.6 GB

    vm1-snapshot
    Snapshot Active No No QCOW2 21.1 MB

    cirros image
    Image Active Yes No QCOW2 12.7 MB

  3. 新增加android x86 image。。。

    androidx86
    Image Active Yes No QCOW2 5.3 GB

  4. windows2012 Image Active Yes No QCOW2 16.0 GB

  5. 请问这个cloud-init.log的错误怎么纠正?之前删除instance的时候出错,然后就出来这个了。。。。

    tail -f cloud-init.log
    Jan 28 10:21:56 packstack cloud-init: 2016-01-28 10:21:56,632 – url_helper.py[WARNING]: Calling ‘http://192.168.2.1//latest/meta-data/instance-id’ failed [93/120s]: bad status code [400]
    Jan 28 10:22:02 packstack cloud-init: 2016-01-28 10:22:02,644 – url_helper.py[WARNING]: Calling ‘http://192.168.2.1//latest/meta-data/instance-id’ failed [99/120s]: bad status code [400]
    Jan 28 10:22:08 packstack cloud-init: 2016-01-28 10:22:08,654 – url_helper.py[WARNING]: Calling ‘http://192.168.2.1//latest/meta-data/instance-id’ failed [105/120s]: bad status code [400]
    Jan 28 10:22:15 packstack cloud-init: 2016-01-28 10:22:15,666 – url_helper.py[WARNING]: Calling ‘http://192.168.2.1//latest/meta-data/instance-id’ failed [112/120s]: bad status code [400]
    Jan 28 10:22:22 packstack cloud-init: 2016-01-28 10:22:22,676 – url_helper.py[WARNING]: Calling ‘http://192.168.2.1//latest/meta-data/instance-id’ failed [119/120s]: unexpected error [‘NoneType’ object has no attribute ‘status_code’]
    Jan 28 10:22:29 packstack cloud-init: 2016-01-28 10:22:29,684 – DataSourceCloudStack.py[CRITICAL]: Giving up on waiting for the metadata from [‘http://192.168.2.1//latest/meta-data/instance-id’] after 126 seconds
    Jan 28 10:22:30 packstack cloud-init: Cloud-init v. 0.7.5 running ‘modules:config’ at Thu, 28 Jan 2016 15:22:30 +0000. Up 302.01 seconds.
    Jan 28 10:22:31 packstack cloud-init: Cloud-init v. 0.7.5 running ‘modules:final’ at Thu, 28 Jan 2016 15:22:31 +0000. Up 302.73 seconds.
    Jan 28 10:22:31 packstack cloud-init: Cloud-init v. 0.7.5 finished at Thu, 28 Jan 2016 15:22:31 +0000. Datasource DataSourceNone. Up 302.87 seconds
    Jan 28 10:22:31 packstack cloud-init: 2016-01-28 10:22:31,701 – cc_final_message.py[WARNING]: Used fallback datasource

  6. 官网中我怎么就没找到qcow2格式的镜像呢?另外我下了个ubuntu14.04的官方镜像,结果启动后,一直是booting from hard disk,请问怎么处理?镜像不对吗?

 Leave a Reply

(required)

(required)

This site uses Akismet to reduce spam. Learn how your comment data is processed.