使用openstack镜像我们发现,无论是ubuntu,centos还是redhat官网提供的openstack镜像都是只支持key登陆的,如果你的需求是创建使用root密码登陆vm,那么我们可以通过对镜像进行修改,使其支持root密码登陆。
我使用guestfish修改镜像,对cloud-init的配置文件进行修改,cloud-init是专为云平台虚拟机初始化的工具(配置主机名、获取用户数据等等),步骤如下:
1、打开一个要修改的镜像(以redhat linux为例)
[root@cloud]# guestfish --rw -a rhel-server-7.4-beta-1-x86_64.qcow2
Welcome to guestfish, the guestfilesystem shell for
editing virtual machinefilesystems and disk images.
Type: 'help' for help on commands
'man' to read themanual
'quit' to quit theshell
2、 运行这个镜像
><fs> run
3、列出文件系统
><fs> list-filesystems
/dev/sda1: xfs
4、挂载到根目录
><fs> mount /dev/sda1 /
5、打开cloud-init的配置文件cloud.cfg,进行修改
><fs> vi /etc/cloud/cloud.cfg
6、在cloud.cfg文件中添加
disable_root: 0
ssh_pwauth: 1
chpasswd:
list: |
root:redhat <-----自定义root密码
expire:False7、退出guestfish
><fs> quit
8、将修改好的镜像上传openstack即可使用
注:对于ubuntu系统还要修改:
1、cloud.cfg:
disable_root: false
2、/etc/ssh/sshd_config:
#PermitRootLogin prohibit-password
PermitRootLogin yes
至此,修改好的镜像就支持root密码登陆了。