当我们搭建了一套OpenStack需要在上面玩玩虚拟机,我们需要从镜像启动虚拟机,这个时候我们会去OpenStack的官网查找虚拟机镜像,https://docs.openstack.org/image-guide/obtain-images.html提供了主流Linux镜像,当我们把这些镜像导入到OpenStack中并且启动它,这个时候我们会发现,这些镜像默认不能使用密码登陆,默认开启的是密钥登陆,当我们需要密码登陆的时候,我们就需要修改镜像的内容。下面我们通过一个简单的例子讲解下如何修改镜像,使其能够ssh登陆。
首先我们需要从官网下载镜像文件,这里我们以Ubuntu镜像为例:
wget http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img
安装guestfish套件用于修改镜像
yum install guestfish -y
下面我们开始修改镜像文件
guestfish --rw -a xenial-server-cloudimg-amd64-disk1.imgWelcome to guestfish, the guest filesystem shell forediting virtual machine filesystems and disk images.Type: ‘help’ for help on commands ‘man’ to read the manual ‘quit’ to quit the shell> run> list-filesystems/dev/sda1: ext4> mount /dev/sda1 /> vi /etc/cloud/cloud.cfg> vi /etc/ssh/sshd_config> quit
开启root登陆
设置密码ubuntu
开启ssh远程登陆
PasswordAuthentication yesPermitRootLogin yes
到此Ubuntu镜像已经开启ssh密码和用户名登陆了,下面我们将修改的镜像导入到OpenStack中进行验证。
上传修改后的镜像到OpenStack系统中
. admin-openrc.shopenstack image create "ubuntu" --file xenial-server-cloudimg-amd64-disk1.img --disk-format qcow2 --container-format bare --public
之后我们创建一个虚拟机
nova list+--------------------------------------+-------------+---------+------------+-------------+----------------------------------+| ID | Name | Status | Task State | Power State | Networks |+--------------------------------------+-------------+---------+------------+-------------+----------------------------------+| 896adee9-b276-4006-a7c8-ea75745b2107 | instance-01 | SHUTOFF | - | Shutdown | public=172.24.4.9, 2001:db8::20 || 8519525a-5c60-4eb5-949b-e89b5d6eb7a4 | instance-02 | ACTIVE | - | Running | public=172.24.4.14, 2001:db8::10 || df235276-5cb8-4e46-89f1-d8b20472f072 | instance-03 | SHUTOFF | - | Shutdown | public=172.24.4.6, 2001:db8::3 |+--------------------------------------+-------------+---------+------------+-------------+----------------------------------+
我们通VNC验证下用户名和密码登陆
可以看到VNC使用用户名和密码是可以登陆的。
下面我们验证下ssh远程登陆
可以看到ssh远程登陆也是没有问题的。
通过以上修改和验证,修改的镜像实现了用户名和密码登陆,同时也实现了ssh远程登陆,在实际某些应用场景下对我们很有帮助,修改既有的基础镜像用于构建我们业务需要的镜像。
参考:
https://docs.openstack.org/image-guide/obtain-images.html
https://docs.openstack.org/image-guide/modify-images.html
文章如有不妥之处,欢迎指正!谢谢!