文章目录
- glance命令的方式底层上传
- 说明
- 1.镜像上传
- 2.编写上传脚本
- 3.执行获得权限脚本
- 4.执行上传脚本
- 5.检查镜像是否上传成功
- openstack命令的方式底层上传
- 1.镜像上传
- 2.执行上传
- 3.检查镜像是否上传成功
- dashboard上传镜像
glance命令的方式底层上传
说明
- 这个镜像上传其实就是把文件upload到py的接口,然后记录数据库。
- 有些版本这种方法上传会失败。如果失败了用下面openstack的方式上传。
- 底层上传是用
glance image-create
命令 - glance 可以使用以下参数:
ps:这些参数不是100%都需要的我们在上传镜像更加我们需求选择相对应的参数就好了。
-
--id <IMAGE_ID>
#镜像的ID -
--name <NAME>
#镜像的名称 -
--store <STORE>
#储存的镜像上传到 -
--disk-format <DISK_FORMAT>
#镜像的格式。可以接受的格式包含: ami,ari, aki, vhd, vmdk, raw, qcow2, vdi, and iso. -
--container-format <CONTAINER_FORMAT>
#镜像容器的格式。可以接受的格式包含:ami,ari, aki, bare, and ovf. -
--owner <TENANT_ID>
# 拥有该镜像的租户 -
--size <SIZE>
#镜像的大小(以bytes表示). 一般只与’–location’和’–copy_from’一起使用。 -
--min-disk <DISK_GB>
#启动镜像所需的最小硬盘空间(用gigabytes表示). -
--min-ram <DISK_RAM>
#启动镜像所需的最小内存数量(用megabytes表示). -
--location <IMAGE_URL>
#镜像所在位置的URL。例如,如果镜像储存在swift中,
---file <FILE>
#在创建过程中将要被上传的本地文件(包括硬盘镜像)。另外,镜像也可以通过stdin传递给客户端。 -
--checksum <CHECKSUM>
#被Glance使用的可用于认证的镜像数据的哈希值,在此请提供一个md5校验值。 -
--copy-from <IMAGE_URL>
#用法和’–location’参数相似,但表明Glance服务器应该能立即从镜像所储存的地方拷贝数据并储存。 -
--is-public [True|False]
#表示镜像是否能被公众访问。 -
--is-protected [True|False]
#用于避免镜像被删除。 -
--property <key=value>
#与镜像有关的任意的属性。可以使用很多次。 -
--human-readable
#用对人友好的格式打印镜像的尺寸。 -
--progress
#显示上传的进度条
1.镜像上传
- 登录控制节点任意一台服务器,将镜像上传到此节点 (建议所有镜像都存放统一路径,路径可以自定义,也可以新建一个文件用来存放镜像)
注:上传镜像用任意方式都行,crt或者其他工具!!! - 如下,我上传了好几个镜像到控制节点的root目录下
[root@node-1 ~]# ls | grep qcow
centos-6.5-minimal.qcow2.tgz
centos7.2-x86_64.qcow2
Kylin-Desktop-V10-Release-Build1-20200704-x86_64-cloudinit.qcow2
rhel6.7-x86_64.qcow2
Windows-2008-Enterprise-R2-x64-sysprep.qcow2.tar.gz
[root@node-1 ~]#
2.编写上传脚本
- 一个最简单的上传仅需要包含下面内容即可
glance image-create --name glance中看到的名字 --file 镜像路径 --disk-format 镜像格式 --container-format bare --visibility public --progress
- 不用编写为脚本也是可以的,直接执行脚本中的代码就好了~
[root@controller01 ~]# vi uplod.sh
#!/bin/bash
glance image-create --name $1 --file $2 --disk-format qcow2 --container-format bare --visibility public --progress
#脚本参数说明,$1是在glance中看到的名字(自定义的名字),$2是上传的镜像路径,最好加上绝对路径
3.执行获得权限脚本
[root@controller01 ~]# chmod +x uplod.sh
4.执行上传脚本
- 执行前最好先执行下环境变量【理论不用,执行下没坏处】
- 格式:
bash upload.sh 在glance中看到镜像名字(自定义名字) 镜像真是的名字(最好用绝对路径)
例如:
[root@controller01 ~]# bash upload.sh win2008r2 /home/raw/20180112-win2008r2.raw
- 我的这种方式上传是报错的,可能是bug? 遇到这种问题 直接用下面openstack的方式。
也可以先看一下openstack-glance-api.service
服务是否正常。
[root@controller01 ~]# source admin-openrc.sh
[root@controller01 ~]# glance image-create --name "Kelin-Desktop" --file Kylin-Desktop-V10-Release-Build1-20200704-x86_64.qcow2 --disk-format qcow2 --container-format bare --visibility public --progress
usage: glance [--version] [-d] [-v] [--get-schema] [--no-ssl-compression] [-f]
[--os-image-url OS_IMAGE_URL]
[--os-image-api-version OS_IMAGE_API_VERSION]
[--profile HMAC_KEY] [--insecure] [--os-cacert <ca-certificate>]
[--os-cert <certificate>] [--os-key <key>] [--timeout <seconds>]
[--os-auth-url OS_AUTH_URL] [--os-domain-id OS_DOMAIN_ID]
[--os-domain-name OS_DOMAIN_NAME]
[--os-project-id OS_PROJECT_ID]
[--os-project-name OS_PROJECT_NAME]
[--os-project-domain-id OS_PROJECT_DOMAIN_ID]
[--os-project-domain-name OS_PROJECT_DOMAIN_NAME]
[--os-trust-id OS_TRUST_ID] [--os-user-id OS_USER_ID]
[--os-username OS_USERNAME]
[--os-user-domain-id OS_USER_DOMAIN_ID]
[--os-user-domain-name OS_USER_DOMAIN_NAME]
[--os-password OS_PASSWORD] [--key-file OS_KEY]
[--ca-file OS_CACERT] [--cert-file OS_CERT]
[--os-tenant-id OS_TENANT_ID] [--os-tenant-name OS_TENANT_NAME]
[--os-region-name OS_REGION_NAME]
[--os-auth-token OS_AUTH_TOKEN]
[--os-service-type OS_SERVICE_TYPE]
[--os-endpoint-type OS_ENDPOINT_TYPE]
<subcommand> ...
glance: error: unrecognized arguments: --file Kylin-Desktop-V10-Release-Build1-20200704-x86_64.qcow2
[root@controller01 ~]#
[root@controller01 ~]# glance --version
2.0.0
[root@controller01 ~]#
5.检查镜像是否上传成功
[root@controller01 ~]# sh /root/admin-openrc.sh
[root@controller01 ~]# glance image-list
openstack命令的方式底层上传
1.镜像上传
- 登录控制节点任意一台服务器,将镜像上传到此节点 (建议所有镜像都存放统一路径,路径可以自定义,也可以新建一个文件用来存放镜像)
注:上传镜像用任意方式都行,crt或者其他工具!!! - 如下,我上传了好几个镜像到控制节点的root目录下
[root@controller01 ~]# ls | grep qcow2
CentOS-7.4-heat-zabbix-lvm10-20180202.qcow2
CentOS-7.4-heat-zabbix-lvm10-20180202.qcow2.raw
Kylin-Desktop-V10-Release-Build1-20200704-x86_64.qcow2
win2k8r2-3.qcow2
win7.qcow2
win7.qcow2.raw
Windows-2008-Enterprise-R2-x64-sysprep.qcow2
Windows-2008-Enterprise-R2-x64-sysprep.qcow2.tar.gz
[root@controller01 ~]#
2.执行上传
- 语法
openstack image create 'xxxxName' --disk-format qcow2 --container-format bare --file /tmp/xxxx.img --public
# xxxxName——显示名称
#/tmp/xxxx.img —— 镜像
- 如,我这上传一个qcow2的镜像
注:过程是看不到进度条的,耐心等待即可,上传成功后显示如下代码行
[root@controller01 ~]# source admin-openrc.sh
[root@controller01 ~]# openstack image create 'KeLindesk' --disk-format qcow2 --container-format bare --file /root/Kylin-Desktop-V10-Release-Build1-20200704-x86_64.qcow2 --public
+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| checksum | e2c0eec7df61ed34aa930a49d7bd360d |
| container_format | bare |
| created_at | 2022-06-23T03:01:29Z |
| disk_format | qcow2 |
| file | /v2/images/61f9b025-19c2-41ff-bb92-c416e4c6ce5d/file |
| id | 61f9b025-19c2-41ff-bb92-c416e4c6ce5d |
| min_disk | 0 |
| min_ram | 0 |
| name | KeLindesk |
| owner | ed270068500d4f22b3ccac210fac8c80 |
| properties | direct_url='rbd://f5bf95c8-94ee-4a95-8e18-1e7f4a1db07a/images/61f9b025-19c2-41ff-bb92-c416e4c6ce5d/snap', locations='[{u'url': u'rbd://f5bf95c8-94ee-4a95-8e18-1e7f4a1db07a/images/61f9b025-19c2-41ff- |
| | bb92-c416e4c6ce5d/snap', u'metadata': {}}]' |
| protected | False |
| schema | /v2/schemas/image |
| size | 8851030016 |
| status | active |
| tags | |
| updated_at | 2022-06-23T03:05:15Z |
| virtual_size | None |
| visibility | public |
+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
[root@controller01 ~]#
3.检查镜像是否上传成功
- 先执行环境变量啊【我上面上传已经执行过了】
# 现实可能各有差异,但有内容就行了
[root@controller01 ~]# glance image-list | grep KeLin
| 61f9b025-19c2-41ff-bb92-c416e4c6ce5d | KeLindesk |
[root@controller01 ~]#
# 其他版本
[root@node-1 ~]# glance image-list
+--------------------------------------+--------------------------+-------------+------------------+-------------+--------+
| ID | Name | Disk Format | Container Format | Size | Status |
+--------------------------------------+--------------------------+-------------+------------------+-------------+--------+
...
| 3edb9730-8dd5-4805-968b-8ed59b0c62ae | KeLindesk | qcow2 | bare | 8851030016 | active |
...
+--------------------------------------+--------------------------+-------------+------------------+-------------+--------+
[root@node-1 ~]#
dashboard上传镜像
- web界面,没啥好说的,登陆上去以后,找到镜像,上传就可以 了
- 需要注意的是,公有我们一般是勾选的,不然只能在上传的项目里面使用。
然后上传方式选择本地,并指定镜像文件就可以了【注意格式要和镜像保持一致】