[OpenStack] 镜像定制
参考官方文档,比较建议使用Linux发行商提供的官方cloud images进行二次定制。
工具准备
$ yum -y install libvirt qemu-kvm-rhev libguestfs-tools
准备Image
Get images 选择需要的镜像版本,这里使用 CentOS-7-x86_64-GenericCloud-1907.qcow2
:
1 | $ wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1907.qcow2.xz |
解压缩:
1 | $ xz -d ./CentOS-7-x86_64-GenericCloud-1907.qcow2.xz |
后续登陆系统对系统进行定制需要root:
1 | $ virt-sysprep --root-password password:PASSWORD -a CentOS.qcow2 |
定制系统
以下以 CentOS 镜像为例,Ubuntu 类似。
打开镜像
使用 guestfish 将镜像打开:$ sudo guestfish --rw -a CentOS.qcow2
打开后可以看到 fish
1 | Welcome to guestfish, the guest filesystem shell for |
此时就已经成功的将镜像挂载到 /dev/sda1
上了。
修改文件
><fs> vi /etc/cloud/cloud.cfg
打开后需要修改一下实例初始化的内容:增加 ssh 密码登录,修改:
disable_root: 0
ssh_pwauth: 1
允许 VNC 终端密码登录:
lock_passwd
设为false
默认密码,添加:
plain_text_passwd: "centos"
不需要的组件可以注释掉,减少启动时间
root 用户密码:
1
2
3
4
5
6
7
8
9system_info:
distro: centos
default_user:
name: centos
lock_passwd: false
plain_text_passwd: "PASSWORD"
gecos: CentOS
sudo: ["ALL=(ALL) NOPASSWD:ALL"]
shell: /bin/bash><fs> vi /etc/issue
中加入展示信息(如默认密码等)><fs> vi /etc/ssh/sshd_config
修改sshd_config
:PermitEmptyPasswords yes
PasswordAuthentication yes
PermitRootLogin yes
修改dns
><fs> vi /etc/resolv.conf
,添加:1
2nameserver 114.114.114.114
nameserver 8.8.8.8
修改时区
1 | rm /etc/localtime |
修改源
获取阿里云的源,可能需要在另一台机器上操作:
1 | $ wget -O wget -O ./CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo |
将其中的内容写到
><fs> vi /etc/yum.repos.d/CentOS-Base.repo
退出
><fs> quit
退出