Openstack使用官方ubuntu和Centos镜像
2017-11-28 17:31
134 查看
1 使用官方ubuntu镜像无法使用ssh用户名密码登录登录的问题
在创建instance的时候,选择"创建后",然后选择直接输入,输入如下代码ubuntu
[plain] view
plain copy
#!/bin/sh
passwd ubuntu<<EOF
123456
123456
EOF
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
Centos7
[plain] view
plain copy
#!/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/centos/.ssh/authorized_keys /root/.ssh/
service sshd restart
passwd centos<<EOF
123456
123456
EOF
按上面的配置后仍然无法登录:
镜像需要已经安装cloud-init软件包
以便读取创建时输入的user-data 脚本,否则脚本是无法生效的。另外,也要确保metadata server是可以正常访问的。也就是从实例中,可以访问http://169.254.169.254/latest。如果不行,可能是因为neutron dhcp-agent中没有打开独立的metadata server agent,修改配置文件,重启neturon-dhcp-agent即可。
两者缺一不可,否则输入的脚本都是无法运行的。
2 guestfish工具修改openstack官方ubuntu镜像默认用户的密码
安装guestfish
我的环境是ubuntu 14.04安装:
[plain] view
plain copy
$ apt-get install libguestfs-tools
打开镜像:
[plain] view
plain copy
$ sudo guestfish --rw -a trusty-server-cloudimg-amd64-disk1.img
如有必要,请加上sudo.
运行镜像:
[plain] view
plain copy
><fs> run
100% [########################################################################################################################################] 00:00
如果这一步报错:
libguestfs: error: /usr/bin/supermin-helper exited with error status 1.
To see full error messages you may need to enable debugging.
See http://libguestfs.org/guestfs-faq.1.html#debugging-libguestfs[/code]# update-guestfs-appliance
则请退出guestfish,然后运行下面的命令。更新完后再重新进入镜像。
列出所有的文件系统:
[plain] view
plain copy
><fs> list-filesystems
/dev/sda1: ext4
挂载到根目录:
[plain] view
plain copy
><fs> mount /dev/sda1 /
编辑/etc/cloud/cloud.cfg文件,修改默认用户ubuntu的密码:
[html] view
plain copy
><fs> vi /etc/cloud/cloud.cfg
找到default_user字段
1.把lock_passwd:True修改为:lock_passwd:false.lock_passwd默认为true,锁定密码禁用密码登陆,因此我们要改成false
2.增加plain_text_passwd:'你要设置的密码'.例如我的:
然后退出,将镜像上传到openstack,启动实例,就能使用用户名密码登陆了.
设置可以ssh登录
# vi /etc/ssh/sshd.conf将PasswordAuthentication字段修改为PasswordAuthentication
yes
#
然后退出,再次启动即可
#
调整img大小qemu-img resize xxx.qcow2
60G
# 调试虚拟机,其中kvm-4是domain-name,这样子能看到启动时输出的信息,(启动时比较慢,因为有cloud_init脚本执行)例如:qemu-img
console kvm-43 修改Cloud image的密码的简单方法
文:https://scottlinux.com/2017/05/08/set-password-or-ssh-key-for-centos-cloud-images/
CentOS为各种不同的云环境提供cloud images,比如OpenStack,RHV,AZure,或KVM. 一般来说,是通过cloud-init工具来修改用户密码或SSH keys. 但是那似乎不太方便。
下面是一种方便的方法。
官方的CentOS的cloud image的下载地址是:
http://cloud.centos.org/centos/7/images/
第一步,安装软件libguestfs-tools
[plain] view
plain copy
sudo yum install libguestfs-tools
或
sudo apt install libguestfs-tools
或
sudo dnf install libguestfs-tools
第二步,设定一个固定密码
[plain] view
plain copy
sudo virt-customize -a CentOS-7-x86_64-GenericCloud-1703.qcow2 --root-password password:passw0rd
结束。
这一步也可以设一个随机密码:
[plain] view
plain copy
sudo virt-customize -a CentOS-7-x86_64-GenericCloud-1703.qcow2 --root-password random
[ 0.0] Examining the guest ...
[ 11.2] Setting a random seed
[ 11.2] Setting passwords
virt-customize: Setting random password of root to 132Tfe6cfCCr8Pv8
[ 12.2] Finishing off
这一步还可以是这样:安装或删除package,甚至同时设置自己的SSH key
[plain] view
plain copy
sudo virt-customize -a CentOS-7-x86_64-GenericCloud-1703.qcow2 --install epel-release --ssh-inject centos:string:"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKCqX6EZIrGHoGaMII4QAqr0QC72t+Kg/c5ZIRNTMb6Q+BwzejQgjhBTXeyPnp0rfE9XI4pTxkZqAUOGSK9Bfqg= smiller@bruckner"密钥对可以用来登录你创建的云主机实例。
4
密钥对
为密钥对起一个你容易记住的名字,然后在提供的空白处粘贴你的SSH公钥。
可以使用ssh-keygen命令来生成SSH密钥对:ssh-keygen -t rsa -f cloud.key
这将生成一对密钥对:一个私钥 (cloud.key)和一个公钥(cloud.key.pub)。请妥善保存好您的私钥。
创建一个云主机实例后,你使用密钥来登录实例(用户名可能会不一样,这取决你所用的镜像):ssh -i cloud.key <username>@<instance_ip>
参考:
1 http://www.chenshake.com/openstack-mirror-and-password/
相关文章推荐
- Openstack使用官方ubuntu和Centos镜像无法使用ssh用户名密码登录登录的问题
- Ubuntu16.04下使用CLion修改OpenPose官方DEMO并编译运行
- 脚本修改Openstack官方Ubuntu镜像默认用户的密码
- ubuntu14.04安装openstack的Juno版环境--使用PPA源
- ubuntu 14.04 64位使用google官方android开发集成工具adt-64位无法使用adb
- 使用autopilot部署OpenStack将不在Ubuntu 16.04中支持
- Ubuntu添加OpenStack官方源
- 制作openstack使用的Ubuntu镜像
- ubuntu14.04安装openstack的Juno版环境--使用PPA源
- 使用openshit在ubuntu14.04下一键部署openstack(juno版本)
- ubuntu 14.04使用devstack安装openstack mitaka版本
- Ubuntu16.04下使用Devstack快速安装、部署Openstack
- 使用openshit在Ubuntu14.04单机部署OpenStack Juno
- Openstack中使用Neutron GRE模式,ssh无法访问Ubuntu镜像生成的虚拟机的解决方法
- Ubuntu 14下使用Devstack安装OpenStack Icehouse-->(1)
- guestfish工具修改openstack官方ubuntu镜像默认用户的密码
- kubuntu 13.10使用ubuntu scaucy官方deb包成功解決rekonq插件flash無法安裝問題
- 使用devstack在Ubuntu12.10部署openstack开发环境
- Openstack 之 ubuntu16使用kolla部署实验
- 云计算Openstack-Liberty版 - 使用技巧 -调整主机大小,官方镜像调整