OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++四、Openstack镜像服务(glance)

四、Openstack镜像服务(glance)

 

简单介绍:

Glance主要有两个组件:glance-api、glance-registry

glance-api:接受镜像api调用,镜像发现、恢复、存储

glance-registry:存储、处理和恢复镜像的元数据

 

安装

glance安装在控制节点

 

进入SQL创建keystone数据库并授予权限

 

mysql -uroot -p

 

CREATE DATABASE glance;

GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
  IDENTIFIED BY '123456';

GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
  IDENTIFIED BY '123456';

 

创建glance用户

 

需要管理员权限

 

. admin-openrc

 

 

 

openstack user create --domain default --password-prompt glance


添加 admin 角色到 glance 用户和 service 项目上

 

 

 

 

openstack role add --project service --user glance admin


创建``glance``服务实体

 

 

 

 

openstack service create --name glance  --description "OpenStack Image" image


创建镜像服务的 API 端点

 

 

openstack endpoint create --region RegionOne image public http://controller:9292

openstack endpoint create --region RegionOne image internal http://controller:9292

openstack endpoint create --region RegionOne image admin http://controller:9292

 

 

 

安装glance软件包

 

 

 

yum install openstack-glance


修改配置文件/etc/glance/glance-api.conf

 

 

vi /etc/glance/glance-api.conf

数据库连接
[database]
connection = mysql+pymysql://glance:123456@controller/glance

认证
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = 123456(你为glance设置的密码)

[paste_deploy]
flavor = keystone

存储和镜像位置
[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/


修改配置文件/etc/glance/glance-registry.conf

 

 

vi /etc/glance/glance-registry.conf

数据库访问
[database]
connection = mysql+pymysql://glance:123456@controller/glance

认证
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance(你为glance设置的密码)
password = 123456

[paste_deploy]
flavor = keystone


同步数据库

 

 

su -s /bin/sh -c "glance-manage db_sync" glance

 

 

查看glance数据库是否有数据

 

[root@controller ~]# mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 229
Server version: 10.1.12-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use glance;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [glance]> show tables;
+----------------------------------+
| Tables_in_glance                 |
+----------------------------------+
| artifact_blob_locations          |
| artifact_blobs                   |
| artifact_dependencies            |
| artifact_properties              |
| artifact_tags                    |
| artifacts                        |
| image_locations                  |
| image_members                    |
| image_properties                 |
| image_tags                       |
| images                           |
| metadef_namespace_resource_types |
| metadef_namespaces               |
| metadef_objects                  |
| metadef_properties               |
| metadef_resource_types           |
| metadef_tags                     |
| migrate_version                  |
| task_info                        |
| tasks                            |
+----------------------------------+
20 rows in set (0.01 sec)

MariaDB [glance]> 

 

如果没有数据检查[database]下connection=是否正确,如果没有问题可能是赋予glance数据库权限时有误,重新赋予。

 

启动镜像服务、配置他们随机启动

 

systemctl enable openstack-glance-api.service openstack-glance-registry.service
systemctl start openstack-glance-api.service openstack-glance-registry.service

 

 

 

验证glance

获取管理员权限

 

. admin-openrc

 

 

下载镜像(wget下载有点慢,推荐直接下载再上传自虚拟机)

 

wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

 

创建镜像命令

 

 

image是指操作的资源

create表示对资源执行的操作创建一个image

cirros表示名称

--file指定镜像的地址

--disk-format指定image磁盘格式(qcow2,raw,vhd,vmdk,vdi,iso,aki,ari,ami)

container-format指定image容器的格式(bare,ovf,aki,ari,ami)

public表示该镜像可以本公共访问

[root@controller ~]# openstack image create "cirros" \
>   --file cirros-0.3.4-x86_64-disk.img \
>   --disk-format qcow2 --container-format bare \
>   --public
+------------------+------------------------------------------------------+
| Field            | Value                                                |
+------------------+------------------------------------------------------+
| checksum         | ee1eca47dc88f4879d8a229cc70a07c6                     |
| container_format | bare                                                 |
| created_at       | 2017-11-16T20:16:03Z                                 |
| disk_format      | qcow2                                                |
| file             | /v2/images/31cdbfff-c441-4740-a597-05f542ff845c/file |
| id               | 31cdbfff-c441-4740-a597-05f542ff845c                 |
| min_disk         | 0                                                    |
| min_ram          | 0                                                    |
| name             | cirros                                               |
| owner            | af24a3c94886470183c864ef0f161b4c                     |
| protected        | False                                                |
| schema           | /v2/schemas/image                                    |
| size             | 13287936                                             |
| status           | active                                               |
| tags             |                                                      |
| updated_at       | 2017-11-16T20:16:09Z                                 |
| virtual_size     | None                                                 |
| visibility       | public                                               |
+------------------+------------------------------------------------------+

创建成功说明ok

如果创建失败可以检查配置文件认证那块设置是否有误

 

镜像管理基本命令

查看镜像

 

[root@controller ~]# openstack image list
+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| 31cdbfff-c441-4740-a597-05f542ff845c | cirros | active |
+--------------------------------------+--------+--------+


查看镜像详细信息

 

 

 

 

[root@controller ~]# glance image-show 31cdbfff-c441-4740-a597-05f542ff845c
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | ee1eca47dc88f4879d8a229cc70a07c6     |
| container_format | bare                                 |
| created_at       | 2017-11-16T20:16:03Z                 |
| disk_format      | qcow2                                |
| id               | 31cdbfff-c441-4740-a597-05f542ff845c |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | cirros                               |
| owner            | af24a3c94886470183c864ef0f161b4c     |
| protected        | False                                |
| size             | 13287936                             |
| status           | active                               |
| tags             | []                                   |
| updated_at       | 2017-11-16T20:16:09Z                 |
| virtual_size     | None                                 |
| visibility       | public                               |
+------------------+--------------------------------------+

 

 

删除镜像

 

openstack image delete 31cdbfff-c441-4740-a597-05f542ff845c

 

好的,下面是在 Red Hat 上搭建 OpenStack Mitaka 的完整过程: 1. 系统要求 首先,确保您的系统符合以下要求: - 操作系统:Red Hat Enterprise Linux 7.x - CPU:双核或更高 - 内存:至少8GB - 磁盘:至少100GB 2. 安装必要的软件 在开始安装 OpenStack Mitaka 之前,您需要安装一些必要的软件包和依赖项。运行以下命令来安装它们: ``` yum install -y centos-release-openstack-mitaka yum update -y yum install -y python-openstackclient openstack-selinux mariadb mariadb-server MySQL-python rabbitmq-server memcached python-memcached httpd mod_wsgi openstack-keystone openstack-glance openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables ipset ``` 3. 配置数据库 a. 启动 MariaDB 服务并设置自动启动: ``` systemctl start mariadb.service systemctl enable mariadb.service ``` b. 运行 mysql_secure_installation 命令来设置密码和其他安全设置: ``` mysql_secure_installation ``` c. 创建数据库和用户: ``` mysql -u root -p CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS'; CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS'; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS'; CREATE DATABASE nova; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS'; CREATE DATABASE neutron; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'NEUTRON_DBPASS'; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'NEUTRON_DBPASS'; FLUSH PRIVILEGES; EXIT; ``` 4. 配置 Identity Service(Keystone) a. 编辑 /etc/keystone/keystone.conf 文件,修改以下部分: ``` [database] ... connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone ... [token] ... provider = fernet ... ``` b. 初始化 Keystone 数据库: ``` su -s /bin/sh -c "keystone-manage db_sync" keystone ``` c. 设置 Keystone 管理员密码: ``` export OS_TOKEN=ADMIN_TOKEN export OS_URL=http://controller:35357/v3 export OS_IDENTITY_API_VERSION=3 openstack service create --name keystone --description "OpenStack Identity" identity openstack endpoint create --region RegionOne identity public http://controller:5000/v3 openstack endpoint create --region RegionOne identity internal http://controller:5000/v3 openstack endpoint create --region RegionOne identity admin http://controller:35357/v3 openstack domain create --description "Default Domain" default openstack project create --domain default --description "Admin Project" admin openstack user create --domain default --password ADMIN_PASS admin openstack role create admin openstack role add --project admin --user admin admin ``` d. 配置 Apache: ``` echo "ServerName controller" >> /etc/httpd/conf/httpd.conf systemctl restart httpd.service ``` 5. 配置 Image Service(Glance) a. 编辑 /etc/glance/glance-api.conf 文件,修改以下部分: ``` [database] ... connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance ... [keystone_authtoken] ... auth_uri = http://controller:5000 auth_url = http://controller:35357 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = glance password = GLANCE_PASS ... [glance_store] ... default_store = file filesystem_store_datadir = /var/lib/glance/images/ ... ``` b. 编辑 /etc/glance/glance-registry.conf 文件,修改以下部分: ``` [database] ... connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance ... [keystone_authtoken] ... auth_uri = http://controller:5000 auth_url = http://controller:35357 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = glance password = GLANCE_PASS ... ``` c. 初始化 Glance 数据库: ``` su -s /bin/sh -c "glance-manage db_sync" glance ``` d. 重启 Glance 服务: ``` systemctl enable openstack-glance-api.service openstack-glance-registry.service systemctl start openstack-glance-api.service openstack-glance-registry.service ``` 6. 配置 Compute Service(Nova) a. 编辑 /etc/nova/nova.conf 文件,修改以下部分: ``` [database] ... connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova ... [DEFAULT] ... auth_strategy = keystone ... my_ip = CONTROLLER_IP_ADDRESS ... [api] ... auth_strategy = keystone ... [keystone_authtoken] ... auth_uri = http://controller:5000 auth_url = http://controller:35357 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = nova password = NOVA_PASS ... [glance] ... api_servers = http://controller:9292 ... [oslo_concurrency] ... lock_path = /var/lib/nova/tmp ... ``` b. 初始化 Nova 数据库: ``` su -s /bin/sh -c "nova-manage db sync" nova ``` c. 重启 Nova 服务: ``` systemctl enable openstack-nova-api.service openstack-nova-cert.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service systemctl start openstack-nova-api.service openstack-nova-cert.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service ``` 7. 配置 Networking Service(Neutron) a. 编辑 /etc/neutron/neutron.conf 文件,修改以下部分: ``` [database] ... connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron ... [DEFAULT] ... core_plugin = ml2 service_plugins = router allow_overlapping_ips = True auth_strategy = keystone ... rpc_backend = rabbit ... [keystone_authtoken] ... auth_uri = http://controller:5000 auth_url = http://controller:35357 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = neutron password = NEUTRON_PASS ... [oslo_concurrency] ... lock_path = /var/lib/neutron/tmp ... ``` b. 编辑 /etc/neutron/plugins/ml2/ml2_conf.ini 文件,修改以下部分: ``` [ml2] ... type_drivers = flat,vlan,vxlan tenant_network_types = vxlan mechanism_drivers = linuxbridge,l2population extension_drivers = port_security ... [ml2_type_flat] ... flat_networks = provider ... [ml2_type_vxlan] ... vni_ranges = 1:1000 ... [securitygroup] ... enable_ipset = True ... ``` c. 编辑 /etc/neutron/plugins/ml2/linuxbridge_agent.ini 文件,修改以下部分: ``` [linux_bridge] ... physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME ... [vxlan] ... enable_vxlan = True local_ip = CONTROLLER_IP_ADDRESS l2_population = True ... [securitygroup] ... enable_security_group = True firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver ``` d. 编辑 /etc/neutron/l3_agent.ini 文件,修改以下部分: ``` [DEFAULT] ... interface_driver = linuxbridge ... external_network_bridge = ... ``` e. 编辑 /etc/neutron/dhcp_agent.ini 文件,修改以下部分: ``` [DEFAULT] ... interface_driver = linuxbridge dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq enable_isolated_metadata = True ... ``` f. 创建软链接: ``` ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini ``` g. 初始化 Neutron 数据库: ``` su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron ``` h. 重启 Neutron 服务: ``` systemctl enable neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service systemctl start neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service ``` 8. 验证安装 使用 OpenStack 的命令行工具进行验证,例如: ``` source /root/admin-openrc.sh openstack user list ``` 如果可以列出用户列表,则说明 OpenStack Mitaka 已经安装成功了! 希望这个完整的安装过程可以帮助到您!
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值