前言
从openstack官方下载的云镜像一般都是普通用户密钥登陆,比如centos镜像的普通用户为centos,ubuntu镜像的普通用户为ubuntu,虽然密钥登陆系统相比密码登陆来说比较方便安全,但是如果需要vnc登陆系统的话,必须得是密码才可以。那么如何实现openstack云镜像密码登陆呢,guestfish工具是一个不错的选择。(本次操作是在centos系统上利用guestfish工具修改openstack官方centos镜像的密码,包括root用户以及普通用户centos)
安装libguestfs-tools工具
安装guestfish工具,参考:http://libguestfs.org/
由于使用kolla部署的openstack集群,集群节点环境不满足运行guestfish,这里在一个全新节点上安装guestfish工具。
#启用kvm并安装libvirt
yum install -y qemu-kvm libvirt virt-install bridge-utils
#安装guestfish
yum install -y libguestfs-tools
修改qemu权限,去掉user和group注释:
[root@localhost ~]# vim /etc/libvirt/qemu.conf
#
user = "root"
# The group for QEMU processes run by the system instance. It can be
# specified in a similar way to user.
group = "root"
#启动libvirtd服务
systemctl enable --now libvirtd
systemctl restart libvirtd
下载镜像,建议提前下载好在上传。
wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-2003.qcow2c
guestfish命令修改root密码
进入guestfish命令环境定制镜像
[root@localhost ~]# guestfish --rw -a CentOS-7-x86_64-GenericCloud-2003.qcow2c
Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.
Type: ‘help’ for help on commands
‘man’ to read the manual
‘quit’ to quit the shell
执行run并挂载文件系统
><fs> RUN
100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ --:--
><fs>
><fs> list-filesystems
/dev/sda1: xfs
><fs> mount /dev/sda1 /
修改/etc/cloud/cloud.cfg
><fs> vi /etc/cloud/cloud.cfg
disable_root:0 //允许root登陆
ssh_pwauth: 1 //ssh开启密码登陆
lockpasswd: false
plain_text_passwd: "123456" //添加一行,配置用户centos密码
另开一个窗口创建root密码
# openssl passwd -1 123456
$1$yf5HxL17$WIjQ1THmj3TuCEWc6K7yd0
修改 /etc/shadow,复制root加密后的密码
><fs> vi /etc/shadow
root:$1$yf5HxL17$WIjQ1THmj3TuCEWc6K7yd0:18374:0:99999:7:::
修改完毕,退出即可
><fs> quit
上传镜像
openstack image create "CentOS78-root" \
--file CentOS-7-x86_64-GenericCloud-2003.qcow2c \
--disk-format qcow2 --container-format bare \
--public
完成后基于该镜像创建实例,控制台可以直接以root或者centos用户通过密码登录到实例,分配浮动IP后也可以以root身份远程SSH登录到实例。
参考:
https://www.jianshu.com/p/52276031e8a4
https://www.cnblogs.com/Pan-xi-yi/p/12120876.html
https://www.jianshu.com/p/f08fc6bac303