iaas-install-glance.sh
#!/bin/bash
source /etc/iaas-openstack/openrc.sh
source /etc/keystone/admin-openrc.sh
#glance mysql
mysql -uroot -p$DB_PASS -e "create database IF NOT EXISTS glance ;" # 创建 glance 数据库
mysql -uroot -p$DB_PASS -e "GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY '$GLANCE_DBPASS' ;" # 授权 glance 用户拥有从本地访问 glance 数据库的所有权限
mysql -uroot -p$DB_PASS -e "GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '$GLANCE_DBPASS' ;" # 授权 glance 用户拥有从远程访问 glance 数据库的所有权限
#glance user role service endpoint
openstack user create --domain $DOMAIN_NAME --password $GLANCE_PASS glance # 创建 glance 用户
openstack role add --project service --user glance admin # #将 admin role 赋予 service project 和 glance user
openstack service create --name glance --description "OpenStack Image" image # 创建 glance 镜像的service entity
openstack endpoint create --region RegionOne image public http://$HOST_NAME:9292 # 创建 glance 镜像服务组件的 内部通信 internal API endpoint
openstack endpoint create --region RegionOne image internal http://$HOST_NAME:9292 # 创建 glance 镜像服务组件的外部通信 public API endpoint
openstack endpoint create --region RegionOne image admin http://$HOST_NAME:9292 # 创建 glance 镜像服务组件的 管理员通信 admin API endpoint
#glance install
yum install -y openstack-glance # 安装 glance 包
#/etc/glance/glance-api.conf
crudini --set /etc/glance/glance-api.conf database connection #mysql+pymysql://glance:$GLANCE_DBPASS@$HOST_NAME/glance # glance 数据库连接
crudini --set /etc/glance/glance-api.conf keystone_authtoken auth_uri http://$HOST_NAME:5000 # 普通用户访问端点
crudini --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://$HOST_NAME:5000 # 管理员访问端点
crudini --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers $HOST_NAME:11211 # 缓存服务访问端点
crudini --set /etc/glance/glance-api.conf keystone_authtoken auth_type password # 设置认证类型为密码
crudini --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name $DOMAIN_NAME # 设置租户域名
crudini --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name $DOMAIN_NAME # 设置用户域名
crudini --set /etc/glance/glance-api.conf keystone_authtoken project_name service # 设置租户名
crudini --set /etc/glance/glance-api.conf keystone_authtoken username glance # 设置用户名
crudini --set /etc/glance/glance-api.conf keystone_authtoken password $GLANCE_PASS # 设置密码
crudini --set /etc/glance/glance-api.conf paste_deploy flavor keystone
crudini --set /etc/glance/glance-api.conf glance_store stores file,http # 配置虚拟机镜像存储的方式
crudini --set /etc/glance/glance-api.conf glance_store default_store file # 配置虚拟机镜像存储的形式
crudini --set /etc/glance/glance-api.conf glance_store filesystem_store_datadir /var/lib/glance/images/ # 配置虚拟机镜像存储的路径
#/etc/glance/glance-registry.conf
# 配置keystone 身份认证服务组件访问的url 参考/etc/glance/glance-api.conf
crudini --set /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:$GLANCE_DBPASS@$HOST_NAME/glance
crudini --set /etc/glance/glance-registry.conf keystone_authtoken auth_uri http://$HOST_NAME:5000
crudini --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://$HOST_NAME:5000
crudini --set /etc/glance/glance-registry.conf keystone_authtoken memcached_servers $HOST_NAME:11211
crudini --set /etc/glance/glance-registry.conf keystone_authtoken auth_type password
crudini --set /etc/glance/glance-registry.conf keystone_authtoken project_domain_name $DOMAIN_NAME
crudini --set /etc/glance/glance-registry.conf keystone_authtoken user_domain_name $DOMAIN_NAME
crudini --set /etc/glance/glance-registry.conf keystone_authtoken project_name service
crudini --set /etc/glance/glance-registry.conf keystone_authtoken username glance
crudini --set /etc/glance/glance-registry.conf keystone_authtoken password $GLANCE_PASS
crudini --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
#su glance mysql
su -s /bin/sh -c "glance-manage db_sync" glance # 将 glance 镜像服务信息同步到 glance 数据库
#start glance service
systemctl enable openstack-glance-api.service openstack-glance-registry.service # 设置 glance 服务开机启动
systemctl start openstack-glance-api.service openstack-glance-registry.service # 重启 glance 服务