OpenStack学习笔记05-镜像服务Glance
OpenStack学习笔记05-镜像服务Glance
对着《云操作系统(OpenStack)》第五章做的。
一、Glance基本概念
Glance包含四个组件:
- Glance-api
- Database
- Storage repository for image files
- Metadata definition service
Glance部署在控制节点上。
二、数据库配置
1. 登录MySQL数据库
mysql -uroot -p
2. 创建Glance数据库
CREATE DATABASE glance;
3. 设置授权用户和密码
这里所指定的密码要和后面设置的密码以及配置文件中所定的密码相一致。
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '111111';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY '111111';
exit

enter description here
三、创建服务凭证和API端点
1. 使admin用户的环境变量生效
cd /root
source admin-openrc.sh
2. 创建服务凭证
2-1. 创建名为glance的用户(user):
openstack user create --domain default --password-prompt glance
输入两遍密码,我给glance设置的密码是111111
。
2-2. 进行关联,即添加admin
角色到glance
用户和service
项目
openstack role add --project service --user glance admin
2-3. 创建Glance服务实体认证
openstack service create --name glance --description "OpenStack Image" image

enter description here
3. 创建镜像服务的API端点
3-1. 创建公共端点
openstack endpoint create --region RegionOne image public http://controller:9292

enter description here
3-2. 创建外部端点
openstack endpoint create --region RegionOne image internal http://controller:9292

enter description here
3-3. 创建管理端点
openstack endpoint create --region RegionOne image admin http://controller:9292

enter description here
四、安装并配置Glance
1. 安装Glance所需软件包
yum install openstack-glance -y

enter description here
2. 配置Glance所需组件
vi /etc/glance/glance-api.conf
2-1. 编辑[database]部分(大概在2071行)
[database]
connection=mysql+pymysql://glance:111111@controller/glance
2-2. 编辑[keystone_authtoken](大概在4859行)和[paste_deploy](大概在5503行),配置keystone认证服务访问
[keystone_authtoken]
www_authenticate_uri=http://controller:5000
auth_url=http://controller:5000
memecached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=glance
password=111111
[paste_deploy]
flavor=keystone
2-3. 编辑[glance_store](大概在3394行)部分,配置本地文件系统存储和镜像位置
[glance_store]
stores=file,http
default_store=file
filesystem_store_datadir=/var/lib/glance/images/
3. 同步数据库
su -s /bin/sh -c "glance-manage db_sync" glance

enter description here
3-1. 验证是否同步成功
mysql -uroot -p000000;
show databases;
use glance;
show tables;
exit

enter description here
3-2. 启动Glance并设置开机自启动
systemctl enable openstack-glance-api
systemctl start openstack-glance-api
五、验证Glance服务
1. 生效admin用户环境变量
source admin-openrc.sh
2. 下载镜像
使用的是cirros镜像,可以从OpenStack get images网站上下载,我这里下载之后的文件名是cirros-0.5.1-x86_64-disk.img
,我把这个文件放在了控制节点的/
目录下。
3. glance上传镜像
glance image-create --name "cirros" --file /cirros-0.5.1-x86_64-disk.img --disk-format qcow2 --container-format bare --visibility public

enter description here
4. glance查看镜像

enter description here
5. openstack查看上传镜像

enter description here
六、制作CentOS 7虚拟机镜像
1. 准备CentOS 7安装镜像
1-1. 我把CentOS-7-x86_64-Minimal-2009-kernel-3.10.0-1160.el7.x86_64.iso
这个系统安装镜像放在了控制节点的/opt
下面。

enter description here
1-2. 到/tmp目录中,创建一个10GB大小的磁盘镜像文件,名字为centos7_mini
cd /tmp/
qemu-img create -f raw centos7_mini.img 10G
1-3. 安装KVM(所以第二章做的事情还是不应该删除的)
yum install qemu-kvm libvirt virt-install virt-manager virt-top libguestfs-tools mesa-libGLES-devel.x86_64 mesa-dri-drivers virt-viewer -y

enter description here
1-4. 部署虚拟机
virt-install --name centos_mini --ram 1024 --vcpus=1 --disk path=/tmp/centos7_mini.img --network network:default,model=virtio --arch=x86_64 --os-type=linux --graphics vnc,port=5910 --cdrom /opt/CentOS-7-x86_64-Minimal-2009-kernel-3.10.0-1160.el7.x86_64.iso --boot cdrom

enter description here
接下来,执行安装过程。
1-5. 安装完成后的操作
1-5-1. 查看虚拟机状态
virsh list --all
1-5-2. 关闭虚拟机
virsh destroy centos_mini
1-5-3. 再次查看虚拟机
virsh list --all

enter description here
1-6. 镜像格式转换
把img
格式转换为qcow2
格式。
qemu-img convert -f raw -O qcow2 /tmp/centos7_mini.img /centos7_mini.qcow2
然后就可以用这个镜像了。
第五章做完了。
分类:
OpenStack
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!