继上篇云计算实训(实验1、实验2)
实验3 控制节点安装Keystone认证服务
实验目的:掌握搭建 Openstack Keystone 组件、熟练掌握 Linux 常用命令。
实验步骤:
1、使用root用户登录控制节点(Controller)。输出Hostname,确认所在节点是控制节点。
2、输入‘mysql -u root -p’,连接MariaDB,进入数据库命令行,输入密码123456。
3、输入‘CREATE DATABASE keystone;’,创建一个名为keystone的库。
4、输入如图所示语句,创建名为keystone,密码为KEYSTONE_DBPASS 的数据库用户,并授权访问 keystone 库。
5、输入‘use keystone;和show tables;’,查看keystone库,此时库中没有任何表(Table)。
6、输入‘exit;’,退出数据库命令行。
7、分别输入‘dnf install /opt/repo/openstack-yoga/python3-sqlalchemy-1.4.31-1.el8.x86_64.rpm -y’和‘dnf install openstack-keystone httpd python3-mod_wsgi -y’语句,安装Keystone相关软件包。
8、输入‘cp -n /etc/keystone/keystone.conf{,.bak}’命令,备份Keystone的配置文件keystone.conf 为 keystone.conf.bak。
9、输入‘grep -Ev '^$|#' /etc/keystone/keystone.conf.bak >/etc/keystone/keystone.conf’,清除 Keystone 配置文件的注释。
10、输入‘dnf install openstack-utils -y’,安装openstack-utils。
11、输入以下代码,配置Keystone的admin_token,数据库连接,token provider。
openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token ADMIN_TOKEN
openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:KEYSTONE_DBPASS@controller202/keystone
openstack-config --set /etc/keystone/keystone.conf token provider fernet
12、输入‘cd /etc/keystone/和su -s /bin/sh -c "keystone-manage db_sync" keystone’,执行同步数据库。
13、再次连接MariaDB,可以查看到keystone库中存在表,并记录到报告。
mysql -u root -p
use keystone;
show tables;
exit;
14、输入以下命令,初始化fernet。
cd /etc/keystone/
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
15、输入以下命令,创建keystone认证服务(Identify Service),和API端点(endpoint)。
keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://controller202:5000/v3/ \
--bootstrap-internal-url http://controller202:5000/v3/ \
--bootstrap-public-url http://controller202:5000/v3/ \
--bootstrap-region-id RegionOne
16、输入语句‘echo "ServerName controller202" >>/etc/httpd/conf/httpd.conf’,追加Apache (httpd)的配置。这里主要是增加ServerName的配置。
17、输入命令‘ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/’,把keystone的配置链接到httpd的配置目录下,让keystone API 生效。
18、输入‘systemctl enable httpd.service和systemctl start httpd.service’,启动Apache(httpd),并设置为开机启动。
19、输入‘systemctl status httpd.service’,查看服务的状态是否为active。
20、输入以下命令语句,设置Keystone的相关环境变量。
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller202:5000/v3
export OS_IDENTITY_API_VERSION=3
21、输入‘openstack user list’,查询刚创建的用户的ID。
22、复制上文的用户ID,关联项目admin,用户admin,角色admin。
需输入以下语句:openstack role add --project admin --user 替换为用户ID admin
23、使用语句‘unset OS_AUTH_URL’和‘unset OS_PASSWORD’,移除上面步骤19设置的部分环境变量。
24、输入‘vim /etc/keystone/admin-openrc’,创建一个设置环境变量的脚本,输入内容,测试keystone能否正常运行。
25、输入‘source /etc/keystone/admin-openrc’,执行脚本,设置环境变量。
26、输入‘openstack token issue’,查看token,多运行几次,查看token id是否更新。
27、输入以下命令清除环境变量,使用openstack命令验证是否能够获取Token。
unset OS_PROJECT_DOMAIN_NAME
unset OS_USER_DOMAIN_NAME
unset OS_PROJECT_NAME
unset OS_USERNAME
unset OS_PASSWORD
unset OS_AUTH_URL
unset OS_IDENTITY_API_VERSION
unset OS_IMAGE_API_VERSION
openstack --os-auth-url http://controller202:5000/v3 \
--os-project-domain-name default --os-user-domain-name default \
--os-project-name admin --os-username admin --os-auth-type password \
--os-password ADMIN_PASS token issue
28、输入以下语句,把常用OpenStack环境变量写入每次登录自动执行脚本。
echo '#!/usr/bin/env bash
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller202:5000/v3
export OS_IDENTITY_API_VERSION=3'>>/etc/profile.d/admin-openrc.sh
29、输入以下命令,查询keystone identity service。
source /etc/keystone/admin-openrc
openstack service list |grep -E "ID|keystone"
30、输入以下命令,查询keystone endpoint。
source /etc/keystone/admin-openrc
openstack endpoint list |grep -E "ID|keystone"
31、输入‘opst-proc-show.sh’,在控制节点上查看OpenStack相关服务是否是active的状态。
实验4 控制节点安装Glance镜像服务
实验目的:掌握搭建 Openstack Glance 组件。
实验步骤:
1、使用root用户登录控制节点(Controller)。输出Hostname,确认所在节点是控制节点。
2、输入以下语句,使用root用户登录MariaDB数据库,密码为123456。创建Glance库,glance用户和授权。
mysql -u root -p
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';
exit;
3、输入以下命令,在Keystone创建Glance用户及关联角色。
source /etc/keystone/admin-openrc
openstack user create --domain default --password GLANCE_PASS glance
openstack project create --domain default --description "Service Project" service
openstack role add --project service --user glance admin
openstack user create --domain default --password MY_PASSWORD MY_SERVICE
openstack role add --user MY_SERVICE --user-domain Default --system all reader
4、输入以下命令语句,在Keystone上创建Glance Service和endpont。
openstack service create --name glance \
--description "OpenStack Image" image
openstack endpoint create --region RegionOne \
image public http://controller202:9292
openstack endpoint create --region RegionOne \
image internal http://controller202:9292
openstack endpoint create --region RegionOne \
image admin http://controller202:9292
5、输入‘dnf install openstack-glance -y’,安装服务相应Glance软件包。
6、输入‘cp /etc/glance/glance-api.conf{,.bak}’,备份Glance API配置文件。
7、输入以下命令,清除配置文件注释。
grep '^[a-Z\[]' /etc/glance/glance-api.conf.bak >/etc/glance/glance-api.conf
8、输入以下命令语句,设置API配置项。
openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:GLANCE_DBPASS@controller202/glance
openstack-config --set /etc/glance/glance-api.conf glance_store stores file,http
openstack-config --set /etc/glance/glance-api.conf glance_store default_store file
openstack-config --set /etc/glance/glance-api.conf glance_store filesystem_store_datadir /var/lib/glance/images/
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://controller202:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken www_authenticate_uri http://controller202:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers controller202:11211
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_type password
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name service
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password GLANCE_PASS
openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone
openstack-config --set /etc/glance/glance-api.conf DEFAULT use_keystone_quotas True
openstack-config --set /etc/glance/glance-api.conf oslo_limit auth_url http://controller202:5000
openstack-config --set /etc/glance/glance-api.conf oslo_limit auth_type password
openstack-config --set /etc/glance/glance-api.conf oslo_limit user_domain_id default
openstack-config --set /etc/glance/glance-api.conf oslo_limit username MY_SERVICE
openstack-config --set /etc/glance/glance-api.conf oslo_limit system_scope all
openstack-config --set /etc/glance/glance-api.conf oslo_limit password MY_PASSWORD
openstack-config --set /etc/glance/glance-api.conf oslo_limit endpoint_id ENDPOINT_ID
openstack-config --set /etc/glance/glance-api.conf oslo_limit region_name RegionOne
9、输入‘cd /etc/glance’和‘su -s /bin/sh -c "glance-manage db_sync" glance’命令语句,同步glance数据库。
10.输入以下命令,进入MariaDB查看是否有表格出现。密码为GLANCE_DBPASS。出现表则为成功。
mysql -u glance -p
use glance;
show tables;
11、输入exit;,退出MariaDB。
12、输入‘systemctl enable openstack-glance-api’和‘systemctl start openstack-glance-api’命令语句,启动Glance服务。
13、输入‘systemctl status openstack-glance-api’,查看Glance服务是否active。
14、上传镜像文件cirros-0.4.0-x86_64-disk.img和cirros-0.6.2-x86_64-disk.img到/opt目录。
15、输入以下语句,使用上传的镜像文件,创建一个名为cirros,磁盘格式为qcow2的镜像。
source /etc/keystone/admin-openrc
openstack image create "cirros4" \
--file /opt/cirros-0.4.0-x86_64-disk.img \
--disk-format qcow2 --container-format bare \
--public
openstack image create "cirros62" \
--file /opt/cirros-0.6.2-x86_64-disk.img \
--disk-format qcow2 --container-format bare \
--public
16、输入‘source /etc/keystone/admin-openrc’和‘openstack service list |grep -E "ID|glance"’命令语句,查询glance service。
17.输入‘source /etc/keystone/admin-openrc’和‘openstack endpoint list |grep -E "ID|glance"’命令语句,查询glance endpoint。
18、输入‘source /etc/keystone/admin-openrc’和‘openstack user list |grep -E "ID|glance"’命令语句,查询glance user。
19、输入以下命令,进入数据库查询Glance库,查看images表的镜像信息是否和上面结果一致。
mysql -u glance -p
MariaDB [(none)]>use glance;
MariaDB [glance]> select name,status,disk_format,created_at from images;
20、使用openstack客户端命令‘source /etc/keystone/admin-openrc’和‘openstack image list’查询镜像信息。
21、输入‘opst-proc-show.sh’命令,查看OpenStack相关服务是否是active的状态。
实验3和实验4可能出现的问题:
在实验4,使用手册所给的openstack客户端命令语句无法进行查询镜像信息,是因为版本不同的原因。解决方法:通过修改手册中原先所给的命令,成功执行了。(原命令语句为source /etc/keystone/admin-openrc 和openstack image list --property name=cirros 将第二条语句修改为openstack image list --property)