、在控制节点( controller )安装 Keystone
1 、登录数据库创建 keystone 数据库
MariaDB [(none)]> CREATE DATABASE keystone default character set utf8;
创建并授予 keystone 用户完全操作 keystone 权限
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'openstack';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'openstack';
[root@controller etcd]# mysql -uroot -pmaster
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 18
Server version: 10.3.20-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> update user set Host='%' where User='root' and Host='localhost' and user='root';
ERROR 1046 (3D000): No database selected
MariaDB [(none)]> CREATE DATABASE keystone default character set utf8;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'openstack';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'openstack';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]>
/*
说明:
openstack 的账户密码设置中,不支持部分特殊符号,如 “#” ; openstack 本身对密码的复杂度也没有要求,可以设置为不带特殊字符的密码;若在设置
密码时,一定要包含特殊符号, openstack 仅支持如下如下特殊字符: & = $ - _ . + ! * ( )
也可以对照官方文档做实验验证, https://docs.openstack.org/install-guide/environment-security.html
*/
2 、安装 Keystone 软件包并修改配置文件
# yum -y install openstack-keystone httpd mod_wsgi
/*
说明:
配置文件中能写成主机名的就改成主机名,增强配置文件通用性,便于快速部署。
Error: Package: python2-qpid-proton-0.22.0-1.el7.x86_64 (centos-openstack-queens) (确保有效)
报错“qpid-proton-c-0.37.0-1.el7.x86_64”
包冲突导致的兼容错误单独选定需要的版本进行安装即可
解决方案
[root@controller ~]# yum install -y python2-qpid-proton-0.26.0-2.el7.x86_64
--> Processing Dependency: libqpid-proton.so.11()(64bit) for package: python2-qpid-proton-0.26.0-2.el7.x86_64
--> Running transaction check
---> Package qpid-proton-c.x86_64 0:0.26.0-2.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================
Package Arch Version Repository Size
====================================================================================
Installing:
python2-qpid-proton x86_64 0.26.0-2.el7 centos-openstack-train 217 k
Installing for dependencies:
qpid-proton-c x86_64 0.26.0-2.el7 centos-openstack-train 185 k
Transaction Summary
====================================================================================
Install 1 Package (+1 Dependent package)
Total download size: 402 k
Installed size: 1.9 M
Downloading packages:
(1/2): python2-qpid-proton-0.26.0-2.el7.x86_64.rpm | 217 kB 00:00:00
(2/2): qpid-proton-c-0.26.0-2.el7.x86_64.rpm | 185 kB 00:00:00
------------------------------------------------------------------------------------
Total 4.5 MB/s | 402 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : qpid-proton-c-0.26.0-2.el7.x86_64 1/2
Installing : python2-qpid-proton-0.26.0-2.el7.x86_64 2/2
Verifying : qpid-proton-c-0.26.0-2.el7.x86_64 1/2
Verifying : python2-qpid-proton-0.26.0-2.el7.x86_64 2/2
Installed:
python2-qpid-proton.x86_64 0:0.26.0-2.el7
Dependency Installed:
qpid-proton-c.x86_64 0:0.26.0-2.el7
Complete!
安装 Keystone 软件包并修改配置文件
[root@controller ~]# yum -y install openstack-keystone httpd mod_wsgi
Loaded plugins: fastestmirror, langpacks
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.cqu.edu.cn
* updates: mirrors.ustc.edu.cn
Package httpd-2.4.6-97.el7.centos.5.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package mod_wsgi.x86_64 0:3.4-18.el7 will be installed
---> Package openstack-keystone.noarch 1:16.0.2-1.el7 will be installed
--> Processing Dependency: python2-keystone = 1:16.0.2-1.el7 for package: 1:openstack-keystone-16.0.2-1.el7.noarch
--> Running transaction check
---> Package python2-keystone.noarch 1:16.0.2-1.el7 will be installed
--> Processing Dependency: python2-sqlalchemy >= 1.1.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-scrypt >= 0.8.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-pysaml2 >= 4.5.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-pycadf >= 2.1.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-passlib >= 1.7.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-osprofiler >= 1.4.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-oslo-upgradecheck >= 0.1.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-oslo-policy >= 2.3.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-oslo-middleware >= 3.31.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-oslo-messaging >= 5.29.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-oslo-db >= 4.27.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-oslo-concurrency >= 3.26.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-oslo-cache >= 1.26.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-oauthlib >= 0.6.2 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-keystonemiddleware >= 7.0.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-flask-restful >= 0.3.5 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-flask >= 1.0.2 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-bcrypt >= 3.1.3 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python-webob >= 1.7.1 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python-migrate >= 0.11.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python-ldappool >= 2.0.0 for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Processing Dependency: python2-jwt for package: 1:python2-keystone-16.0.2-1.el7.noarch
--> Running transaction check
---> Package python-migrate.noarch 0:0.11.0-1.el7 will be installed
--> Processing Dependency: python-sqlparse for package: python-migrate-0.11.0-1.el7.noarch
---> Package python2-bcrypt.x86_64 0:3.1.6-2.el7 will be installed
---> Package python2-flask.noarch 1:1.0.2-1.el7 will be installed
--> Processing Dependency: python-werkzeug for package: 1:python2-flask-1.0.2-1.el7.noarch
--> Processing Dependency: python-jinja2 for package: 1:python2-flask-1.0.2-1.el7.noarch
--> Processing Dependency: python-itsdangerous for package: 1:python2-flask-1.0.2-1.el7.noarch
--> Processing Dependency: python-click for package: 1:python2-flask-1.0.2-1.el7.noarch
---> Package python2-flask-restful.noarch 0:0.3.6-7.el7 will be installed
--> Processing Dependency: python-aniso8601 for package: python2-flask-restful-0.3.6-7.el7.noarch
---> Package python2-jwt.noarch 0:1.6.1-1.el7 will be installed
---> Package python2-keystonemiddleware.noarch 0:7.0.1-2.el7 will be installed
---> Package python2-ldappool.noarch 0:2.4.0-2.el7 will be installed
---> Package python2-oauthlib.noarch 0:2.0.1-8.el7 will be installed
---> Package python2-oslo-cache.noarch 0:1.37.1-1.el7 will be installed
--> Processing Dependency: python-oslo-cache-lang = 1.37.1-1.el7 for package: python2-oslo-cache-1.37.1-1.el7.noarch
---> Package python2-oslo-concurrency.noarch 0:3.30.1-1.el7 will be installed
--> Processing Dependency: python-oslo-concurrency-lang = 3.30.1-1.el7 for package: python2-oslo-concurrency-3.30.1-1.el7.noarch
--> Processing Dependency: python2-fasteners for package: python2-oslo-concurrency-3.30.1-1.el7.noarch
---> Package python2-oslo-db.noarch 0:5.0.2-2.el7 will be installed
--> Processing Dependency: python-oslo-db-lang = 5.0.2-2.el7 for package: python2-oslo-db-5.0.2-2.el7.noarch
--> Processing Dependency: python-alembic >= 0.9.6 for package: python2-oslo-db-5.0.2-2.el7.noarch
---> Package python2-oslo-messaging.noarch 0:10.2.4-1.el7 will be installed
--> Processing Dependency: python2-oslo-service >= 1.24.0 for package: python2-oslo-messaging-10.2.4-1.el7.noarch
--> Processing Dependency: python2-kombu >= 1:4.0.0 for package: python2-oslo-messaging-10.2.4-1.el7.noarch
--> Processing Dependency: python2-futurist >= 1.2.0 for package: python2-oslo-messaging-10.2.4-1.el7.noarch
--> Processing Dependency: python2-amqp >= 2.4.1 for package: python2-oslo-messaging-10.2.4-1.el7.noarch
--> Processing Dependency: python2-eventlet for package: python2-oslo-messaging-10.2.4-1.el7.noarch
--> Processing Dependency: python2-cachetools for package: python2-oslo-messaging-10.2.4-1.el7.noarch
--> Processing Dependency: python-pyngus for package: python2-oslo-messaging-10.2.4-1.el7.noarch
---> Package python2-oslo-middleware.noarch 0:3.38.1-2.el7 will be installed
--> Processing Dependency: python-oslo-middleware-lang = 3.38.1-2.el7 for package: python2-oslo-middleware-3.38.1-2.el7.noarch
--> Processing Dependency: python2-statsd for package: python2-oslo-middleware-3.38.1-2.el7.noarch
---> Package python2-oslo-policy.noarch 0:2.3.4-1.el7 will be installed
--> Processing Dependency: python-oslo-policy-lang = 2.3.4-1.el7 for package: python2-oslo-policy-2.3.4-1.el7.noarch
---> Package python2-oslo-upgradecheck.noarch 0:0.3.2-1.el7 will be installed
---> Package python2-osprofiler.noarch 0:2.8.2-1.el7 will be installed
---> Package python2-passlib.noarch 0:1.7.1-1.el7 will be installed
---> Package python2-pycadf.noarch 0:2.10.0-2.el7 will be installed
--> Processing Dependency: python-pycadf-common = 2.10.0-2.el7 for package: python2-pycadf-2.10.0-2.el7.noarch
---> Package python2-pysaml2.noarch 0:4.6.5-1.el7 will be installed
--> Processing Dependency: python2-future for package: python2-pysaml2-4.6.5-1.el7.noarch
--> Processing Dependency: python2-defusedxml for package: python2-pysaml2-4.6.5-1.el7.noarch
---> Package python2-scrypt.x86_64 0:0.8.0-2.el7 will be installed
---> Package python2-sqlalchemy.x86_64 0:1.2.17-2.el7 will be installed
---> Package python2-webob.noarch 0:1.8.5-1.el7 will be installed
--> Running transaction check
---> Package python-aniso8601.noarch 0:0.82-3.el7 will be installed
---> Package python-oslo-cache-lang.noarch 0:1.37.1-1.el7 will be installed
---> Package python-oslo-concurrency-lang.noarch 0:3.30.1-1.el7 will be installed
---> Package python-oslo-db-lang.noarch 0:5.0.2-2.el7 will be installed
---> Package python-oslo-middleware-lang.noarch 0:3.38.1-2.el7 will be installed
---> Package python-oslo-policy-lang.noarch 0:2.3.4-1.el7 will be installed
---> Package python-pycadf-common.noarch 0:2.10.0-2.el7 will be installed
---> Package python-pyngus.noarch 0:2.0.3-3.el7 will be installed
---> Package python-sqlparse.noarch 0:0.1.18-5.el7 will be installed
---> Package python2-alembic.noarch 0:1.0.7-1.el7 will be installed
--> Processing Dependency: python-editor for package: python2-alembic-1.0.7-1.el7.noarch
---> Package python2-amqp.noarch 0:2.4.1-1.el7 will be installed
--> Processing Dependency: python2-vine >= 1.1.3 for package: python2-amqp-2.4.1-1.el7.noarch
---> Package python2-cachetools.noarch 0:3.1.0-1.el7 will be installed
---> Package python2-click.noarch 0:6.7-8.el7 will be installed
---> Package python2-defusedxml.noarch 0:0.5.0-2.el7 will be installed
---> Package python2-eventlet.noarch 0:0.25.1-1.el7 will be installed
--> Processing Dependency: python2-greenlet for package: python2-eventlet-0.25.1-1.el7.noarch
---> Package python2-fasteners.noarch 0:0.16.3-1.el7 will be installed
---> Package python2-future.noarch 0:0.18.2-2.el7 will be installed
---> Package python2-futurist.noarch 0:1.9.0-2.el7 will be installed
---> Package python2-itsdangerous.noarch 0:0.24-14.el7 will be installed
---> Package python2-jinja2.noarch 0:2.10.1-1.el7 will be installed
---> Package python2-kombu.noarch 1:4.6.3-3.el7 will be installed
---> Package python2-oslo-service.noarch 0:1.40.2-2.el7 will be installed
--> Processing Dependency: python-paste-deploy >= 1.5.0 for package: python2-oslo-service-1.40.2-2.el7.noarch
--> Processing Dependency: python2-yappi for package: python2-oslo-service-1.40.2-2.el7.noarch
--> Processing Dependency: python2-routes for package: python2-oslo-service-1.40.2-2.el7.noarch
---> Package python2-statsd.noarch 0:3.2.1-5.el7 will be installed
---> Package python2-werkzeug.noarch 0:0.14.1-3.el7 will be installed
--> Running transaction check
---> Package python-editor.noarch 0:0.4-4.el7 will be installed
---> Package python-paste-deploy.noarch 0:1.5.2-6.el7 will be installed
---> Package python-routes.noarch 0:2.4.1-1.el7 will be installed
---> Package python2-greenlet.x86_64 0:0.4.12-1.el7 will be installed
---> Package python2-vine.noarch 0:1.2.0-2.el7 will be installed
---> Package python2-yappi.x86_64 0:1.0-1.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================
Package Arch Version Repository Size
====================================================================================
Installing:
mod_wsgi x86_64 3.4-18.el7 base 77 k
openstack-keystone noarch 1:16.0.2-1.el7 centos-openstack-train 78 k
Installing for dependencies:
python-aniso8601 noarch 0.82-3.el7 centos-openstack-train 31 k
python-editor noarch 0.4-4.el7 centos-openstack-train 12 k
python-migrate noarch 0.11.0-1.el7 centos-openstack-train 228 k
python-oslo-cache-lang noarch 1.37.1-1.el7 centos-openstack-train 12 k
python-oslo-concurrency-lang noarch 3.30.1-1.el7 centos-openstack-train 9.5 k
python-oslo-db-lang noarch 5.0.2-2.el7 centos-openstack-train 9.0 k
python-oslo-middleware-lang noarch 3.38.1-2.el7 centos-openstack-train 7.8 k
python-oslo-policy-lang noarch 2.3.4-1.el7 centos-openstack-train 7.9 k
python-paste-deploy noarch 1.5.2-6.el7 centos-openstack-train 46 k
python-pycadf-common noarch 2.10.0-2.el7 centos-openstack-train 10 k
python-pyngus noarch 2.0.3-3.el7 centos-openstack-train 41 k
python-routes noarch 2.4.1-1.el7 centos-openstack-train 191 k
python-sqlparse noarch 0.1.18-5.el7 centos-openstack-train 74 k
python2-alembic noarch 1.0.7-1.el7 centos-openstack-train 786 k
python2-amqp noarch 2.4.1-1.el7 centos-openstack-train 90 k
python2-bcrypt x86_64 3.1.6-2.el7 epel 39 k
python2-cachetools noarch 3.1.0-1.el7 centos-openstack-train 28 k
python2-click noarch 6.7-8.el7 epel 126 k
python2-defusedxml noarch 0.5.0-2.el7 centos-openstack-train 45 k
python2-eventlet noarch 0.25.1-1.el7 centos-openstack-train 322 k
python2-fasteners noarch 0.16.3-1.el7 epel 50 k
python2-flask noarch 1:1.0.2-1.el7 centos-openstack-train 152 k
python2-flask-restful noarch 0.3.6-7.el7 centos-openstack-train 117 k
python2-future noarch 0.18.2-2.el7 epel 806 k
python2-futurist noarch 1.9.0-2.el7 centos-openstack-train 59 k
python2-greenlet x86_64 0.4.12-1.el7 centos-openstack-train 25 k
python2-itsdangerous noarch 0.24-14.el7 centos-openstack-train 25 k
python2-jinja2 noarch 2.10.1-1.el7 centos-openstack-train 251 k
python2-jwt noarch 1.6.1-1.el7 centos-openstack-train 37 k
python2-keystone noarch 1:16.0.2-1.el7 centos-openstack-train 1.1 M
python2-keystonemiddleware noarch 7.0.1-2.el7 centos-openstack-train 88 k
python2-kombu noarch 1:4.6.3-3.el7 centos-openstack-train 365 k
python2-ldappool noarch 2.4.0-2.el7 centos-openstack-train 25 k
python2-oauthlib noarch 2.0.1-8.el7 base 146 k
python2-oslo-cache noarch 1.37.1-1.el7 centos-openstack-train 47 k
python2-oslo-concurrency noarch 3.30.1-1.el7 centos-openstack-train 36 k
python2-oslo-db noarch 5.0.2-2.el7 centos-openstack-train 145 k
python2-oslo-messaging noarch 10.2.4-1.el7 centos-openstack-train 221 k
python2-oslo-middleware noarch 3.38.1-2.el7 centos-openstack-train 49 k
python2-oslo-policy noarch 2.3.4-1.el7 centos-openstack-train 65 k
python2-oslo-service noarch 1.40.2-2.el7 centos-openstack-train 66 k
python2-oslo-upgradecheck noarch 0.3.2-1.el7 centos-openstack-train 18 k
python2-osprofiler noarch 2.8.2-1.el7 centos-openstack-train 125 k
python2-passlib noarch 1.7.1-1.el7 epel 741 k
python2-pycadf noarch 2.10.0-2.el7 centos-openstack-train 46 k
python2-pysaml2 noarch 4.6.5-1.el7 centos-openstack-train 542 k
python2-scrypt x86_64 0.8.0-2.el7 centos-openstack-train 26 k
python2-sqlalchemy x86_64 1.2.17-2.el7 centos-openstack-train 1.8 M
python2-statsd noarch 3.2.1-5.el7 centos-openstack-train 28 k
python2-vine noarch 1.2.0-2.el7 centos-openstack-train 30 k
python2-webob noarch 1.8.5-1.el7 centos-openstack-train 246 k
python2-werkzeug noarch 0.14.1-3.el7 centos-openstack-train 466 k
python2-yappi x86_64 1.0-1.el7 centos-openstack-train 39 k
Transaction Summary
====================================================================================
Install 2 Packages (+53 Dependent packages)
Total download size: 10 M
Installed size: 49 M
Downloading packages:
(1/55): python-aniso8601-0.82-3.el7.noarch.rpm | 31 kB 00:00:00
(2/55): openstack-keystone-16.0.2-1.el7.noarch.rpm | 78 kB 00:00:00
(3/55): python-editor-0.4-4.el7.noarch.rpm | 12 kB 00:00:00
(4/55): python-oslo-cache-lang-1.37.1-1.el7.noarch.rpm | 12 kB 00:00:00
(5/55): python-migrate-0.11.0-1.el7.noarch.rpm | 228 kB 00:00:00
(6/55): python-oslo-concurrency-lang-3.30.1-1.el7.noarch.rpm | 9.5 kB 00:00:00
(7/55): python-oslo-middleware-lang-3.38.1-2.el7.noarch.rpm | 7.8 kB 00:00:00
(8/55): python-oslo-db-lang-5.0.2-2.el7.noarch.rpm | 9.0 kB 00:00:00
(9/55): python-oslo-policy-lang-2.3.4-1.el7.noarch.rpm | 7.9 kB 00:00:00
(10/55): python-paste-deploy-1.5.2-6.el7.noarch.rpm | 46 kB 00:00:00
(11/55): python-pycadf-common-2.10.0-2.el7.noarch.rpm | 10 kB 00:00:00
(12/55): python-routes-2.4.1-1.el7.noarch.rpm | 191 kB 00:00:00
(13/55): python-pyngus-2.0.3-3.el7.noarch.rpm | 41 kB 00:00:00
(14/55): python-sqlparse-0.1.18-5.el7.noarch.rpm | 74 kB 00:00:00
(15/55): python2-amqp-2.4.1-1.el7.noarch.rpm | 90 kB 00:00:00
(16/55): python2-alembic-1.0.7-1.el7.noarch.rpm | 786 kB 00:00:00
(17/55): mod_wsgi-3.4-18.el7.x86_64.rpm | 77 kB 00:00:00
(18/55): python2-cachetools-3.1.0-1.el7.noarch.rpm | 28 kB 00:00:00
(19/55): python2-bcrypt-3.1.6-2.el7.x86_64.rpm | 39 kB 00:00:00
(20/55): python2-click-6.7-8.el7.noarch.rpm | 126 kB 00:00:00
(21/55): python2-defusedxml-0.5.0-2.el7.noarch.rpm | 45 kB 00:00:00
(22/55): python2-eventlet-0.25.1-1.el7.noarch.rpm | 322 kB 00:00:00
(23/55): python2-fasteners-0.16.3-1.el7.noarch.rpm | 50 kB 00:00:00
(24/55): python2-flask-1.0.2-1.el7.noarch.rpm | 152 kB 00:00:00
(25/55): python2-flask-restful-0.3.6-7.el7.noarch.rpm | 117 kB 00:00:00
(26/55): python2-futurist-1.9.0-2.el7.noarch.rpm | 59 kB 00:00:00
(27/55): python2-greenlet-0.4.12-1.el7.x86_64.rpm | 25 kB 00:00:00
(28/55): python2-itsdangerous-0.24-14.el7.noarch.rpm | 25 kB 00:00:00
(29/55): python2-jinja2-2.10.1-1.el7.noarch.rpm | 251 kB 00:00:00
(30/55): python2-future-0.18.2-2.el7.noarch.rpm | 806 kB 00:00:00
(31/55): python2-jwt-1.6.1-1.el7.noarch.rpm | 37 kB 00:00:00
(32/55): python2-keystonemiddleware-7.0.1-2.el7.noarch.rpm | 88 kB 00:00:00
(33/55): python2-keystone-16.0.2-1.el7.noarch.rpm | 1.1 MB 00:00:00
(34/55): python2-ldappool-2.4.0-2.el7.noarch.rpm | 25 kB 00:00:00
(35/55): python2-kombu-4.6.3-3.el7.noarch.rpm | 365 kB 00:00:00
(36/55): python2-oauthlib-2.0.1-8.el7.noarch.rpm | 146 kB 00:00:00
(37/55): python2-oslo-concurrency-3.30.1-1.el7.noarch.rpm | 36 kB 00:00:00
(38/55): python2-oslo-cache-1.37.1-1.el7.noarch.rpm | 47 kB 00:00:00
(39/55): python2-oslo-db-5.0.2-2.el7.noarch.rpm | 145 kB 00:00:00
(40/55): python2-oslo-middleware-3.38.1-2.el7.noarch.rpm | 49 kB 00:00:00
(41/55): python2-oslo-messaging-10.2.4-1.el7.noarch.rpm | 221 kB 00:00:00
(42/55): python2-oslo-policy-2.3.4-1.el7.noarch.rpm | 65 kB 00:00:00
(43/55): python2-oslo-upgradecheck-0.3.2-1.el7.noarch.rpm | 18 kB 00:00:00
(44/55): python2-oslo-service-1.40.2-2.el7.noarch.rpm | 66 kB 00:00:00
(45/55): python2-osprofiler-2.8.2-1.el7.noarch.rpm | 125 kB 00:00:00
(46/55): python2-pysaml2-4.6.5-1.el7.noarch.rpm | 542 kB 00:00:00
(47/55): python2-pycadf-2.10.0-2.el7.noarch.rpm | 46 kB 00:00:00
(48/55): python2-scrypt-0.8.0-2.el7.x86_64.rpm | 26 kB 00:00:00
(49/55): python2-passlib-1.7.1-1.el7.noarch.rpm | 741 kB 00:00:00
(50/55): python2-statsd-3.2.1-5.el7.noarch.rpm | 28 kB 00:00:00
(51/55): python2-vine-1.2.0-2.el7.noarch.rpm | 30 kB 00:00:00
(52/55): python2-sqlalchemy-1.2.17-2.el7.x86_64.rpm | 1.8 MB 00:00:00
(53/55): python2-webob-1.8.5-1.el7.noarch.rpm | 246 kB 00:00:00
(54/55): python2-werkzeug-0.14.1-3.el7.noarch.rpm | 466 kB 00:00:00
(55/55): python2-yappi-1.0-1.el7.x86_64.rpm | 39 kB 00:00:00
------------------------------------------------------------------------------------
Total 3.0 MB/s | 10 MB 00:03
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : python2-webob-1.8.5-1.el7.noarch 1/55
Installing : python2-sqlalchemy-1.2.17-2.el7.x86_64 2/55
Installing : python2-greenlet-0.4.12-1.el7.x86_64 3/55
Installing : python2-eventlet-0.25.1-1.el7.noarch 4/55
Installing : python2-vine-1.2.0-2.el7.noarch 5/55
Installing : python2-amqp-2.4.1-1.el7.noarch 6/55
Installing : python2-jinja2-2.10.1-1.el7.noarch 7/55
Installing : 1:python2-kombu-4.6.3-3.el7.noarch 8/55
Installing : python-oslo-concurrency-lang-3.30.1-1.el7.noarch 9/55
Installing : python-oslo-db-lang-5.0.2-2.el7.noarch 10/55
Installing : python2-oslo-upgradecheck-0.3.2-1.el7.noarch 11/55
Installing : python2-jwt-1.6.1-1.el7.noarch 12/55
Installing : python2-werkzeug-0.14.1-3.el7.noarch 13/55
Installing : python2-itsdangerous-0.24-14.el7.noarch 14/55
Installing : python2-statsd-3.2.1-5.el7.noarch 15/55
Installing : python2-ldappool-2.4.0-2.el7.noarch 16/55
Installing : python-oslo-policy-lang-2.3.4-1.el7.noarch 17/55
Installing : python2-oslo-policy-2.3.4-1.el7.noarch 18/55
Installing : python-aniso8601-0.82-3.el7.noarch 19/55
Installing : python-routes-2.4.1-1.el7.noarch 20/55
Installing : python2-scrypt-0.8.0-2.el7.x86_64 21/55
Installing : python2-cachetools-3.1.0-1.el7.noarch 22/55
Installing : python2-click-6.7-8.el7.noarch 23/55
Installing : 1:python2-flask-1.0.2-1.el7.noarch 24/55
Installing : python2-flask-restful-0.3.6-7.el7.noarch 25/55
Installing : python2-passlib-1.7.1-1.el7.noarch 26/55
Installing : python-oslo-cache-lang-1.37.1-1.el7.noarch 27/55
Installing : python2-oslo-cache-1.37.1-1.el7.noarch 28/55
Installing : python-editor-0.4-4.el7.noarch 29/55
Installing : python2-alembic-1.0.7-1.el7.noarch 30/55
Installing : python-paste-deploy-1.5.2-6.el7.noarch 31/55
Installing : python2-defusedxml-0.5.0-2.el7.noarch 32/55
Installing : python2-yappi-1.0-1.el7.x86_64 33/55
Installing : python-pyngus-2.0.3-3.el7.noarch 34/55
Installing : python2-future-0.18.2-2.el7.noarch 35/55
Installing : python2-pysaml2-4.6.5-1.el7.noarch 36/55
Installing : python-oslo-middleware-lang-3.38.1-2.el7.noarch 37/55
Installing : python2-oslo-middleware-3.38.1-2.el7.noarch 38/55
Installing : python2-bcrypt-3.1.6-2.el7.x86_64 39/55
Installing : python-sqlparse-0.1.18-5.el7.noarch 40/55
Installing : python-migrate-0.11.0-1.el7.noarch 41/55
Installing : python2-oslo-db-5.0.2-2.el7.noarch 42/55
Installing : python2-oauthlib-2.0.1-8.el7.noarch 43/55
Installing : python2-fasteners-0.16.3-1.el7.noarch 44/55
Installing : python2-oslo-concurrency-3.30.1-1.el7.noarch 45/55
Installing : python2-oslo-service-1.40.2-2.el7.noarch 46/55
Installing : python-pycadf-common-2.10.0-2.el7.noarch 47/55
Installing : python2-pycadf-2.10.0-2.el7.noarch 48/55
Installing : python2-keystonemiddleware-7.0.1-2.el7.noarch 49/55
Installing : python2-futurist-1.9.0-2.el7.noarch 50/55
Installing : python2-oslo-messaging-10.2.4-1.el7.noarch 51/55
Installing : python2-osprofiler-2.8.2-1.el7.noarch 52/55
Installing : 1:python2-keystone-16.0.2-1.el7.noarch 53/55
Installing : 1:openstack-keystone-16.0.2-1.el7.noarch 54/55
Installing : mod_wsgi-3.4-18.el7.x86_64 55/55
Verifying : python2-jinja2-2.10.1-1.el7.noarch 1/55
Verifying : python2-amqp-2.4.1-1.el7.noarch 2/55
Verifying : python2-pycadf-2.10.0-2.el7.noarch 3/55
Verifying : python2-futurist-1.9.0-2.el7.noarch 4/55
Verifying : python-pycadf-common-2.10.0-2.el7.noarch 5/55
Verifying : python2-webob-1.8.5-1.el7.noarch 6/55
Verifying : python2-fasteners-0.16.3-1.el7.noarch 7/55
Verifying : python2-oauthlib-2.0.1-8.el7.noarch 8/55
Verifying : python-sqlparse-0.1.18-5.el7.noarch 9/55
Verifying : python2-bcrypt-3.1.6-2.el7.x86_64 10/55
Verifying : python2-vine-1.2.0-2.el7.noarch 11/55
Verifying : python2-keystonemiddleware-7.0.1-2.el7.noarch 12/55
Verifying : python2-oslo-middleware-3.38.1-2.el7.noarch 13/55
Verifying : python2-greenlet-0.4.12-1.el7.x86_64 14/55
Verifying : python2-osprofiler-2.8.2-1.el7.noarch 15/55
Verifying : python2-sqlalchemy-1.2.17-2.el7.x86_64 16/55
Verifying : python-oslo-middleware-lang-3.38.1-2.el7.noarch 17/55
Verifying : python2-eventlet-0.25.1-1.el7.noarch 18/55
Verifying : 1:python2-keystone-16.0.2-1.el7.noarch 19/55
Verifying : python2-oslo-policy-2.3.4-1.el7.noarch 20/55
Verifying : python2-future-0.18.2-2.el7.noarch 21/55
Verifying : python-pyngus-2.0.3-3.el7.noarch 22/55
Verifying : python2-yappi-1.0-1.el7.x86_64 23/55
Verifying : python2-defusedxml-0.5.0-2.el7.noarch 24/55
Verifying : mod_wsgi-3.4-18.el7.x86_64 25/55
Verifying : python-paste-deploy-1.5.2-6.el7.noarch 26/55
Verifying : python2-alembic-1.0.7-1.el7.noarch 27/55
Verifying : python-editor-0.4-4.el7.noarch 28/55
Verifying : python-oslo-cache-lang-1.37.1-1.el7.noarch 29/55
Verifying : 1:openstack-keystone-16.0.2-1.el7.noarch 30/55
Verifying : python2-passlib-1.7.1-1.el7.noarch 31/55
Verifying : python2-click-6.7-8.el7.noarch 32/55
Verifying : python2-pysaml2-4.6.5-1.el7.noarch 33/55
Verifying : python2-oslo-cache-1.37.1-1.el7.noarch 34/55
Verifying : python2-cachetools-3.1.0-1.el7.noarch 35/55
Verifying : python2-scrypt-0.8.0-2.el7.x86_64 36/55
Verifying : 1:python2-flask-1.0.2-1.el7.noarch 37/55
Verifying : python-routes-2.4.1-1.el7.noarch 38/55
Verifying : python-aniso8601-0.82-3.el7.noarch 39/55
Verifying : python-migrate-0.11.0-1.el7.noarch 40/55
Verifying : python-oslo-policy-lang-2.3.4-1.el7.noarch 41/55
Verifying : 1:python2-kombu-4.6.3-3.el7.noarch 42/55
Verifying : python2-ldappool-2.4.0-2.el7.noarch 43/55
Verifying : python2-statsd-3.2.1-5.el7.noarch 44/55
Verifying : python2-oslo-concurrency-3.30.1-1.el7.noarch 45/55
Verifying : python2-itsdangerous-0.24-14.el7.noarch 46/55
Verifying : python2-flask-restful-0.3.6-7.el7.noarch 47/55
Verifying : python2-oslo-service-1.40.2-2.el7.noarch 48/55
Verifying : python2-werkzeug-0.14.1-3.el7.noarch 49/55
Verifying : python2-jwt-1.6.1-1.el7.noarch 50/55
Verifying : python2-oslo-messaging-10.2.4-1.el7.noarch 51/55
Verifying : python2-oslo-upgradecheck-0.3.2-1.el7.noarch 52/55
Verifying : python2-oslo-db-5.0.2-2.el7.noarch 53/55
Verifying : python-oslo-db-lang-5.0.2-2.el7.noarch 54/55
Verifying : python-oslo-concurrency-lang-3.30.1-1.el7.noarch 55/55
Installed:
mod_wsgi.x86_64 0:3.4-18.el7 openstack-keystone.noarch 1:16.0.2-1.el7
Dependency Installed:
python-aniso8601.noarch 0:0.82-3.el7
python-editor.noarch 0:0.4-4.el7
python-migrate.noarch 0:0.11.0-1.el7
python-oslo-cache-lang.noarch 0:1.37.1-1.el7
python-oslo-concurrency-lang.noarch 0:3.30.1-1.el7
python-oslo-db-lang.noarch 0:5.0.2-2.el7
python-oslo-middleware-lang.noarch 0:3.38.1-2.el7
python-oslo-policy-lang.noarch 0:2.3.4-1.el7
python-paste-deploy.noarch 0:1.5.2-6.el7
python-pycadf-common.noarch 0:2.10.0-2.el7
python-pyngus.noarch 0:2.0.3-3.el7
python-routes.noarch 0:2.4.1-1.el7
python-sqlparse.noarch 0:0.1.18-5.el7
python2-alembic.noarch 0:1.0.7-1.el7
python2-amqp.noarch 0:2.4.1-1.el7
python2-bcrypt.x86_64 0:3.1.6-2.el7
python2-cachetools.noarch 0:3.1.0-1.el7
python2-click.noarch 0:6.7-8.el7
python2-defusedxml.noarch 0:0.5.0-2.el7
python2-eventlet.noarch 0:0.25.1-1.el7
python2-fasteners.noarch 0:0.16.3-1.el7
python2-flask.noarch 1:1.0.2-1.el7
python2-flask-restful.noarch 0:0.3.6-7.el7
python2-future.noarch 0:0.18.2-2.el7
python2-futurist.noarch 0:1.9.0-2.el7
python2-greenlet.x86_64 0:0.4.12-1.el7
python2-itsdangerous.noarch 0:0.24-14.el7
python2-jinja2.noarch 0:2.10.1-1.el7
python2-jwt.noarch 0:1.6.1-1.el7
python2-keystone.noarch 1:16.0.2-1.el7
python2-keystonemiddleware.noarch 0:7.0.1-2.el7
python2-kombu.noarch 1:4.6.3-3.el7
python2-ldappool.noarch 0:2.4.0-2.el7
python2-oauthlib.noarch 0:2.0.1-8.el7
python2-oslo-cache.noarch 0:1.37.1-1.el7
python2-oslo-concurrency.noarch 0:3.30.1-1.el7
python2-oslo-db.noarch 0:5.0.2-2.el7
python2-oslo-messaging.noarch 0:10.2.4-1.el7
python2-oslo-middleware.noarch 0:3.38.1-2.el7
python2-oslo-policy.noarch 0:2.3.4-1.el7
python2-oslo-service.noarch 0:1.40.2-2.el7
python2-oslo-upgradecheck.noarch 0:0.3.2-1.el7
python2-osprofiler.noarch 0:2.8.2-1.el7
python2-passlib.noarch 0:1.7.1-1.el7
python2-pycadf.noarch 0:2.10.0-2.el7
python2-pysaml2.noarch 0:4.6.5-1.el7
python2-scrypt.x86_64 0:0.8.0-2.el7
python2-sqlalchemy.x86_64 0:1.2.17-2.el7
python2-statsd.noarch 0:3.2.1-5.el7
python2-vine.noarch 0:1.2.0-2.el7
python2-webob.noarch 0:1.8.5-1.el7
python2-werkzeug.noarch 0:0.14.1-3.el7
python2-yappi.x86_64 0:1.0-1.el7
Complete!
[root@controller ~]#
配置 keystone.conf
[root@controller keystone]# cd /etc/keystone/ && mv keystone.conf keystone.conf.source && cat keystone.conf.source |grep -Ev "^#|^$" > keystone.conf && chown root:keystone keystone.conf
mv: overwrite ‘keystone.conf.source’? yes
[root@controller keystone]# ll
total 24
-rw-r----- 1 root keystone 2303 Jun 7 2021 default_catalog.templates
-rw-r--r-- 1 root keystone 601 Nov 24 00:50 keystone.conf
-rw-r--r-- 1 root root 601 Nov 24 00:49 keystone.conf.source
-rw-r----- 1 root keystone 1046 Jun 7 2021 logging.conf
-rw-r----- 1 root keystone 3 Jun 8 2021 policy.json
-rw-r----- 1 keystone keystone 665 Jun 7 2021 sso_callback_template.html
[root@controller keystone]# vi /etc/keystone/keystone.conf
[root@controller keystone]# cat /etc/keystone/keystone.conf
[DEFAULT]
[application_credential]
[assignment]
[auth]
[cache]
[catalog]
[cors]
[credential]
[database]
connection = mysql+pymysql://keystone:openstack@controller/keystone
[domain_config]
[endpoint_filter]
[endpoint_policy]
[eventlet_server]
[federation]
[fernet_receipts]
[fernet_tokens]
[healthcheck]
[identity]
[identity_mapping]
[jwt_tokens]
[ldap]
[memcache]
[oauth1]
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_middleware]
[oslo_policy]
[policy]
[profiler]
[receipt]
[resource]
[revoke]
[role]
[saml]
[security_compliance]
[shadow_users]
[token]
expiration = 86400
# 令牌提供者为 fernet ,即生成令牌方式
provider = fernet
[tokenless_auth]
[totp]
[trust]
[unified_limit]
[wsgi]
[root@controller keystone]#
同步 Identity 服务的初始数据到 keystone 库
[root@controller keystone]# su -s /bin/sh -c "keystone-manage db_sync" keystone
初始化 Fernet 密钥存储库
[root@controller keystone]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
[root@controller keystone]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
执行身份引导服务(会创建 endpoint )
[root@controller keystone]# keystone-manage bootstrap --bootstrap-password openstack2022 \
> --bootstrap-admin-url http://controller:5000/v3/ \
> --bootstrap-internal-url http://controller:5000/v3/ \
> --bootstrap-public-url http://controller:5000/v3/ \
> --bootstrap-region-id RegionOne
[root@controller keystone]#
同步 Identity 服务的初始数据到 keystone 库。
[root@controller keystone]# su -s /bin/sh -c "keystone-manage db_sync" keystone
初始化 Fernet 密钥存储库
[root@controller keystone]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
[root@controller keystone]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
[root@controller keystone]# keystone-manage bootstrap --bootstrap-password openstack2022 \
> --bootstrap-admin-url http://controller:5000/v3/ \
> --bootstrap-internal-url http://controller:5000/v3/ \
> --bootstrap-public-url http://controller:5000/v3/ \
> --bootstrap-region-id RegionOne
在控制节点( controller )配置 Apache 服务
[root@controller keystone]# clear
[root@controller keystone]# ^C
[root@controller keystone]# vi /etc/httpd/conf/httpd.conf
# This is the main Apache HTTP server configuration file. It contains the
.......
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80
ServerName controller:80
#
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
# <Directory> blocks below.
#
<Directory />
AllowOverride none
Require all denied
</Directory>
"/etc/httpd/conf/httpd.conf" 353L, 11777C written
创建软链接。
[root@controller keystone]# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
[root@controller keystone]# systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@controller keystone]# systemctl restart httpd.service
[root@controller keystone]# lsof -i:5000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 14326 root 8u IPv6 103531 0t0 TCP *:commplex-main (LISTEN)
httpd 14327 apache 8u IPv6 103531 0t0 TCP *:commplex-main (LISTEN)
httpd 14333 apache 8u IPv6 103531 0t0 TCP *:commplex-main (LISTEN)
httpd 14334 apache 8u IPv6 103531 0t0 TCP *:commplex-main (LISTEN)
httpd 14335 apache 8u IPv6 103531 0t0 TCP *:commplex-main (LISTEN)
httpd 14336 apache 8u IPv6 103531 0t0 TCP *:commplex-main (LISTEN)
httpd 14337 apache 8u IPv6 103531 0t0 TCP *:commplex-main (LISTEN)
配置管理员帐户,并创建项目、域、用户、角色
[root@controller keystone]# cat > /etc/keystone/admin-openrc.sh <<EOF
> export OS_USERNAME=admin
> export OS_PASSWORD=openstack2022
> export OS_PROJECT_NAME=admin
> export OS_USER_DOMAIN_NAME=Default
> export OS_PROJECT_DOMAIN_NAME=Default
> export OS_AUTH_URL=http://controller:5000/v3
> export OS_IDENTITY_API_VERSION=3
> export OS_IMAGE_API_VERSION=2
> EOF
[root@controller keystone]# source admin-openrc.sh
[root@controller keystone]# openstack domain list
+---------+---------+---------+--------------------+
| ID | Name | Enabled | Description |
+---------+---------+---------+--------------------+
| default | Default | True | The default domain |
+---------+---------+---------+--------------------+
[root@controller keystone]#
创建新域 example ,(仅用于测试,可以不创建)。
[root@controller keystone]# source admin-openrc.sh
[root@controller keystone]# openstack domain list
+---------+---------+---------+--------------------+
| ID | Name | Enabled | Description |
+---------+---------+---------+--------------------+
| default | Default | True | The default domain |
+---------+---------+---------+--------------------+
[root@controller keystone]# ^C
[root@controller keystone]# openstack domain create --description "An Example Domain" example
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | An Example Domain |
| enabled | True |
| id | 82de7a9cd4494c3eb7859cfb198c42cf |
| name | example |
| options | {} |
| tags | [] |
+-------------+----------------------------------+
[root@controller keystone]# openstack domain list
+----------------------------------+---------+---------+--------------------+
| ID | Name | Enabled | Description |
+----------------------------------+---------+---------+--------------------+
| 82de7a9cd4494c3eb7859cfb198c42cf | example | True | An Example Domain |
| default | Default | True | The default domain |
+----------------------------------+---------+---------+--------------------+
[root@controller keystone]# openstack project create --domain default --description "Demo Project" myproject
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Demo Project |
| domain_id | default |
| enabled | True |
| id | 9594da677b474ee9af733ae9a5ea5688 |
| is_domain | False |
| name | myproject |
| options | {} |
| parent_id | default |
| tags | [] |
+-------------+----------------------------------+
[root@controller keystone]# openstack user create --domain default --password-prompt myuser
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 391df4420b9f478cad18581e71c342d6 |
| name | myuser |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
[root@controller keystone]# openstack role create myrole
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | None |
| domain_id | None |
| id | e18143fc6cb84f34b43131e07d560fd9 |
| name | myrole |
| options | {} |
+-------------+----------------------------------+
[root@controller keystone]# openstack role add --project myproject --user myuser myrole
[root@controller keystone]# openstack role list
+----------------------------------+--------+
| ID | Name |
+----------------------------------+--------+
| 1909b08134ed44e2a92c06f7a840b9e5 | admin |
| 30617e316f89414c941f2d753a440452 | member |
| e18143fc6cb84f34b43131e07d560fd9 | myrole |
| ee694a1bf4c84e0f848cd7bd6324dfe4 | reader |
+----------------------------------+--------+
[root@controller keystone]#
创建 service 项目(租户), service 项目将作为 OpenStack 的系统项目,所有系统服务都要加入到 service 项目中。
[root@controller keystone]# openstack project create --domain default --description "Service Project" service
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Service Project |
| domain_id | default |
| enabled | True |
| id | 00af7b38a648455f8b933e9c9b64f92b |
| is_domain | False |
| name | service |
| options | {} |
| parent_id | default |
| tags | [] |
+-------------+----------------------------------+
[root@controller keystone]# openstack project list
+----------------------------------+-----------+
| ID | Name |
+----------------------------------+-----------+
| 00af7b38a648455f8b933e9c9b64f92b | service |
| 9594da677b474ee9af733ae9a5ea5688 | myproject |
| b069ab279ac147b6a16f9ff2107f7b1b | admin |
+----------------------------------+-----------+
创建 user 角色
[root@controller keystone]# openstack role create user
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | None |
| domain_id | None |
| id | d54a275b52f549d0a5dcb8958fea8492 |
| name | user |
| options | {} |
+-------------+----------------------------------+
[root@controller keystone]# openstack role list
+----------------------------------+--------+
| ID | Name |
+----------------------------------+--------+
| 1909b08134ed44e2a92c06f7a840b9e5 | admin |
| 30617e316f89414c941f2d753a440452 | member |
| d54a275b52f549d0a5dcb8958fea8492 | user |
| e18143fc6cb84f34b43131e07d560fd9 | myrole |
| ee694a1bf4c84e0f848cd7bd6324dfe4 | reader |
+----------------------------------+--------+
验证 Keystone
[root@controller keystone]# source /etc/keystone/admin-openrc.sh
[root@controller keystone]# openstack token issue
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| expires | 2022-11-24T18:30:18+0000 |
| id | gAAAAABjfma6G9zZ3n3Qt3Z2rSdjj8kMD1Iwg73jW7ED1gpz9v-e_obEhBbIkL2FVpmtmCiG0radF_BZy_qMOz00mwDJUR6PJXcfu_c2zrn0tw-Cq3AFxATU-eWr9nsciLse4wnUDSGWYta2kq_vnRQXyT7_Xms7CC4QXnWDU0Mof7M4S7bVw74 |
| project_id | b069ab279ac147b6a16f9ff2107f7b1b |
| user_id | ddcbc0b63d2c4fcd93bdfbf6c8bbd279 |
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
使用 admin 用户,请求身份验证令牌。
[root@controller keystone]# unset OS_AUTH_URL OS_PASSWORD
[root@controller keystone]# openstack --os-auth-url http://controller:5000/v3 \
> --os-project-domain-name Default \
> --os-user-domain-name Default \
> --os-project-name admin \
> --os-username admin token issue
Password:
Password:
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| expires | 2022-11-24T18:33:11+0000 |
| id | gAAAAABjfmdn8T76QxCbGXDXzn37VR6D4D8k_DXDpL4gVmviwykTlgG9IPUZnrUgcvLmNmgyoGTK83UuJJu9HdrPJC-vt1Nemts4jR9L-Y7WDy5hpDmSc5kza1-v7_CWP9_z7OpRe0-JiKceUry9H6-PQGrAcjLSo7089mcT2VZ_fVu_8ag7LpU |
| project_id | b069ab279ac147b6a16f9ff2107f7b1b |
| user_id | ddcbc0b63d2c4fcd93bdfbf6c8bbd279 |
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
[root@controller keystone]#
在控制节点(controller)安装 Placemen配置数据库
#登录数据库创建 placement 数据库
[root@controller etcd]# mysql -uroot -pmaster
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 26
Server version: 10.3.20-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE placement default character set utf8;
Query OK, 1 row affected (0.000 sec)
#创建并授予 placement 用户完全操作 placement 库权限
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'openstack';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'openstack';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]>
在控制节点( controller )安装 Placement
[root@controller keystone]# lsof -i:2379
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
etcd 5848 etcd 6u IPv4 56286 0t0 TCP controller:2379 (LISTEN)
etcd 5848 etcd 10u IPv4 57107 0t0 TCP controller:32012->controller:2379 (ESTABLISHED)
etcd 5848 etcd 12u IPv4 57552 0t0 TCP controller:2379->controller:32012 (ESTABLISHED)
创建用户和 API 服务端点
[root@controller keystone]# source /etc/keystone/admin-openrc.sh
[root@controller keystone]# openstack user create --domain default --password-prompt placement
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 26b2d53488804228a0b57b233c5cc593 |
| name | placement |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
#将 placement 加入到 service 项目以及 admin 角色
[root@controller keystone]# openstack role add --project service --user placement admin
#创建服务实体
[root@controller keystone]# openstack service create --name placement --description "Placement API" placement
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Placement API |
| enabled | True |
| id | 68f54270c7dc4d4a9b9cbdf6264b4ec1 |
| name | placement |
| type | placement |
+-------------+----------------------------------+
创建 Placement API 服务端点
[root@controller keystone]# openstack endpoint create --region RegionOne placement public http://controller:8778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 7ad9669702454249bbc8451214d7088d |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 68f54270c7dc4d4a9b9cbdf6264b4ec1 |
| service_name | placement |
| service_type | placement |
| url | http://controller:8778 |
+--------------+----------------------------------+
[root@controller keystone]# openstack endpoint create --region RegionOne placement internal http://controller:8778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | c1c689d076f04a268a8a70a34e055497 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 68f54270c7dc4d4a9b9cbdf6264b4ec1 |
| service_name | placement |
| service_type | placement |
| url | http://controller:8778 |
+--------------+----------------------------------+
[root@controller keystone]# openstack endpoint create --region RegionOne placement admin http://controller:8778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 894ebf45d0f34d209b42cb6aedb59e16 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 68f54270c7dc4d4a9b9cbdf6264b4ec1 |
| service_name | placement |
| service_type | placement |
| url | http://controller:8778 |
+--------------+----------------------------------+
#查看
[root@controller keystone]# openstack endpoint list
+----------------------------------+-----------+--------------+--------------+---------+-----------+----------------------------+
| ID | Region | Service Name | Service Type | Enabled | Interface | URL |
+----------------------------------+-----------+--------------+--------------+---------+-----------+----------------------------+
| 1e6cc1d447794d23acb27b31ee623e03 | RegionOne | keystone | identity | True | public | http://controller:5000/v3/ |
| 352a0664398a43ab925a0258323ea028 | RegionOne | keystone | identity | True | internal | http://controller:5000/v3/ |
| 7ad9669702454249bbc8451214d7088d | RegionOne | placement | placement | True | public | http://controller:8778 |
| 894ebf45d0f34d209b42cb6aedb59e16 | RegionOne | placement | placement | True | admin | http://controller:8778 |
| c1c689d076f04a268a8a70a34e055497 | RegionOne | placement | placement | True | internal | http://controller:8778 |
| cf8962f9a9b64086af9f31b6d730ed86 | RegionOne | keystone | identity | True | admin | http://controller:5000/v3/ |
+----------------------------------+-----------+--------------+--------------+---------+-----------+----------------------------+
#安装配置 Placement
[root@controller keystone]# yum -y install openstack-placement-api
Loaded plugins: fastestmirror, langpacks
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.cqu.edu.cn
* updates: mirrors.ustc.edu.cn
base | 3.6 kB 00:00:00
Not using downloaded base/repomd.xml because it is older than what we have:
Current : Tue Nov 22 17:31:15 2022
Downloaded: Fri Oct 30 04:03:00 2020
centos-nfs-ganesha28 | 2.9 kB 00:00:00
centos-openstack-train | 2.9 kB 00:00:00
centos-qemu-ev | 2.9 kB 00:00:00
ceph | 2.9 kB 00:00:00
ceph-noarch | 2.9 kB 00:00:00
docker-ce-stable | 2.9 kB 00:00:00
epel | 2.9 kB 00:00:00
extras | 2.9 kB 00:00:00
Not using downloaded extras/repomd.xml because it is older than what we have:
Current : Wed Nov 23 15:27:27 2022
Downloaded: Wed Oct 5 01:24:54 2022
openresty | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
Not using downloaded updates/repomd.xml because it is older than what we have:
Current : Wed Nov 23 15:26:42 2022
Downloaded: Sat Nov 12 01:10:48 2022
Resolving Dependencies
--> Running transaction check
---> Package openstack-placement-api.noarch 0:2.0.1-1.el7 will be installed
--> Processing Dependency: openstack-placement-common = 2.0.1-1.el7 for package: openstack-placement-api-2.0.1-1.el7.noarch
--> Running transaction check
---> Package openstack-placement-common.noarch 0:2.0.1-1.el7 will be installed
--> Processing Dependency: python2-placement = 2.0.1-1.el7 for package: openstack-placement-common-2.0.1-1.el7.noarch
--> Running transaction check
---> Package python2-placement.noarch 0:2.0.1-1.el7 will be installed
--> Processing Dependency: python2-os-traits >= 0.16.0 for package: python2-placement-2.0.1-1.el7.noarch
--> Processing Dependency: python2-os-resource-classes >= 0.5.0 for package: python2-placement-2.0.1-1.el7.noarch
--> Processing Dependency: python2-microversion-parse >= 0.2.1 for package: python2-placement-2.0.1-1.el7.noarch
--> Running transaction check
---> Package python2-microversion-parse.noarch 0:0.2.1-1.el7 will be installed
---> Package python2-os-resource-classes.noarch 0:0.5.0-1.el7 will be installed
---> Package python2-os-traits.noarch 0:0.16.0-1.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================
Package Arch Version Repository Size
====================================================================================
Installing:
openstack-placement-api noarch 2.0.1-1.el7 centos-openstack-train 8.5 k
Installing for dependencies:
openstack-placement-common noarch 2.0.1-1.el7 centos-openstack-train 21 k
python2-microversion-parse noarch 0.2.1-1.el7 centos-openstack-train 27 k
python2-os-resource-classes noarch 0.5.0-1.el7 centos-openstack-train 13 k
python2-os-traits noarch 0.16.0-1.el7 centos-openstack-train 34 k
python2-placement noarch 2.0.1-1.el7 centos-openstack-train 245 k
Transaction Summary
====================================================================================
Install 1 Package (+5 Dependent packages)
Total download size: 349 k
Installed size: 1.2 M
Downloading packages:
(1/6): openstack-placement-api-2.0.1-1.el7.noarch.rpm | 8.5 kB 00:00:00
(2/6): openstack-placement-common-2.0.1-1.el7.noarch.rpm | 21 kB 00:00:00
(3/6): python2-microversion-parse-0.2.1-1.el7.noarch.rpm | 27 kB 00:00:00
(4/6): python2-os-traits-0.16.0-1.el7.noarch.rpm | 34 kB 00:00:00
(5/6): python2-placement-2.0.1-1.el7.noarch.rpm | 245 kB 00:00:00
(6/6): python2-os-resource-classes-0.5.0-1.el7.noarch.rpm | 13 kB 00:00:00
------------------------------------------------------------------------------------
Total 602 kB/s | 349 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : python2-os-traits-0.16.0-1.el7.noarch 1/6
Installing : python2-os-resource-classes-0.5.0-1.el7.noarch 2/6
Installing : python2-microversion-parse-0.2.1-1.el7.noarch 3/6
Installing : python2-placement-2.0.1-1.el7.noarch 4/6
Installing : openstack-placement-common-2.0.1-1.el7.noarch 5/6
Installing : openstack-placement-api-2.0.1-1.el7.noarch 6/6
Verifying : python2-microversion-parse-0.2.1-1.el7.noarch 1/6
Verifying : python2-placement-2.0.1-1.el7.noarch 2/6
Verifying : openstack-placement-api-2.0.1-1.el7.noarch 3/6
Verifying : python2-os-resource-classes-0.5.0-1.el7.noarch 4/6
Verifying : openstack-placement-common-2.0.1-1.el7.noarch 5/6
Verifying : python2-os-traits-0.16.0-1.el7.noarch 6/6
Installed:
openstack-placement-api.noarch 0:2.0.1-1.el7
Dependency Installed:
openstack-placement-common.noarch 0:2.0.1-1.el7
python2-microversion-parse.noarch 0:0.2.1-1.el7
python2-os-resource-classes.noarch 0:0.5.0-1.el7
python2-os-traits.noarch 0:0.16.0-1.el7
python2-placement.noarch 0:2.0.1-1.el7
Complete!
[root@controller keystone]#
修改配置文件 /etc/placement/placement.conf
[root@controller keystone]# cd /etc/placement/ && mv placement.conf placement.conf.source && cat placement.conf.source |grep -Ev "^#|^$" > placement.conf && chown root:placement placement.conf
<VirtualHost *:8778>
WSGIProcessGroup placement-api
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
WSGIDaemonProcess placement-api processes=3 threads=1 user=placement group=placement
WSGIScriptAlias / /usr/bin/placement-api
<IfVersion >= 2.4>
ErrorLogFormat "%M"
</IfVersion>
ErrorLog /var/log/placement/placement-api.log
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
#SSLEngine On
#SSLCertificateFile ...
#SSLCertificateKeyFile ...
</VirtualHost>
"/etc/httpd/conf.d/00-placement-api.conf" 34L, 820C written
#配置
[root@controller placement]# vi /etc/placement/placement.conf
[root@controller placement]# cat /etc/placement/placement.conf
[DEFAULT]
[api]
auth_strategy = keystone
[cors]
[keystone_authtoken]
auth_url = http://controller:5000/v3
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = placement
password = openstack2022
[oslo_policy]
[placement]
[placement_database]
connection = mysql+pymysql://placement:openstack@controller/placement
[profiler]
#配置
[root@controller placement]# vi /etc/httpd/conf.d/00-placement-api.conf
[root@controller placement]# cat /etc/httpd/conf.d/00-placement-api.conf
Listen 8778
<VirtualHost *:8778>
WSGIProcessGroup placement-api
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
WSGIDaemonProcess placement-api processes=3 threads=1 user=placement group=placement
WSGIScriptAlias / /usr/bin/placement-api
<IfVersion >= 2.4>
ErrorLogFormat "%M"
</IfVersion>
ErrorLog /var/log/placement/placement-api.log
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
#SSLEngine On
#SSLCertificateFile ...
#SSLCertificateKeyFile ...
</VirtualHost>
Alias /placement-api /usr/bin/placement-api
<Location /placement-api>
SetHandler wsgi-script
Options +ExecCGI
WSGIProcessGroup placement-api
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
</Location>
#同步 placement 数据库
[root@controller placement]# su -s /bin/sh -c "placement-manage db sync" placement
/usr/lib/python2.7/site-packages/pymysql/cursors.py:170: Warning: (1280, u"Name 'alembic_version_pkc' ignored for PRIMARY key.")
result = self._query(query)
#重启 httpd 服务并验证 Placement
[root@controller placement]# systemctl restart httpd
[root@controller placement]# placement-status upgrade check
+----------------------------------+
| Upgrade Check Results |
+----------------------------------+
| Check: Missing Root Provider IDs |
| Result: Success |
| Details: None |
+----------------------------------+
| Check: Incomplete Consumers |
| Result: Success |
| Details: None |
+----------------------------------+
[root@controller placement]#
机器 yum01上配置数据 源
配置国内 pip 源
cat > /etc/pip.conf <<EOF
[global]
index-url = https://pypi.douban.com/simple/
[install]
trusted-host = https://pypi.douban.com
来 bilibili 关注: itcooking 33
EOF
安装 osc-placement 插件
在 yum01 主机上通过 pip download osc-placement==2.2.0 下载离线包放入 /var/www/html/yumrepos/pip 目录下
#yum install -y python-pip
#pip download osc-placement==2.2.0
列出可用的资源类和特征。
# openstack --os-placement-api-version 1.2 resource class list --sort-column name
# openstack --os-placement-api-version 1.6 trait list --sort-column nam
安装配置并验证 Glance( 控制节点
一、在控制节点( controller )安装 Glance
1 、登录数据库创建 glance 数据库
MariaDB [(none)]> CREATE DATABASE glance default character set utf8;
创建并授予 glance 用户完全操作 glance 库权限
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'openstack';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'openstack';
2 、 创建用户和 API 服务端点
# source /etc/keystone/admin-openrc.sh
创建 glance 用户,密码设置为: openstack2022
# openstack user create --domain default --password openstack2022 glance
将 glance 加入到 service 项目以及 admin 角色
# openstack role add --project service --user glance admin
创建 glance 服务实体
openstack service create --name glance --description “OpenStack Image” image
创建 Glance 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
3 、安装配置 Glance
# yum -y install openstack-glance
修改 /etc/glance/glance-api.conf
# cd /etc/glance/ && mv glance-api.conf glance-api.conf.source && cat glance-api.conf.source |grep -Ev "^#|^$" > glance-api.conf && chown
root:glance glance-api.conf
# vi /etc/glance/glance-api.conf
在 [DEFAULT] 部分,增加 rabbitmq 配置
[DEFAULT]
show_image_direct_url = True
transport_url = rabbit://openstack:openstack@controller
在 [database] 部分中,配置数据库访问。
[database]
connection = mysql+pymysql://glance:openstack@controller/glance
在 [keystone_authtoken] 和 [paste_deploy] 部分中,配置身份认证服务
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = openstack2022
[paste_deploy]
flavor = keystone
在该 [glance_store] 部分,配置镜像使用哪种存储来存储镜像,默认使用文件系统存储,路径为 /var/lib/glance/images/ 。也支持 swift 、 ceph 、 GlusterFS
[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
修改 /etc/glance/glance-registry.conf
# cd /etc/glance/ && mv glance-registry.conf glance-registry.conf.source && cat glance-registry.conf.source |grep -Ev "^#|^$" > glance-registry.conf && chown root:glance glance-registry.conf
# vi /etc/glance/glance-registry.conf
在该 [database] 部分中,配置数据库访问。
[database]
connection = mysql+pymysql://glance:openstack@controller/glance
在 [keystone_authtoken] 和 [paste_deploy] 部分中,配置身份服务访问。
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = openstack2022
[paste_deploy]
flavor = keystone
4 、同步 Glance 数据库
su -s /bin/sh -c "glance-manage db_sync" glance
5 、启动 Glance 服务并设置成开机自启动
# systemctl enable openstack-glance-api.service openstack-glance-registry.service && systemctl start openstack-glance-api.service openstack-glance-registry.service
6 、验证 Glance 服务
# source /etc/keystone/admin-openrc.sh
下载测试镜像 cirros 上传到 Glance
# wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
使用本地 yum 源下载地址
# wget http://yum01/yumrepos/cirros-0.4.0-x86_64-disk.img
说明: cirros 是一个裁剪过的镜像,用于 Openstack 故障检测和测试。
[root@controller ~]# cd /etc/glance/ && mv glance-api.conf glance-api.conf.source && cat glance-api.conf.source |grep -Ev "^#|^$" > glance-api.conf && chown
chown: missing operand
Try 'chown --help' for more information.
[root@controller glance]# ls
glance-api.conf glance-image-import.conf glance-swift.conf rootwrap.conf
glance-api.conf.source glance-registry.conf metadefs rootwrap.d
glance-cache.conf glance-scrubber.conf policy.json schema-image.json
[root@controller glance]# ll
total 456
-rw-r--r-- 1 root root 476 Nov 24 13:59 glance-api.conf
-rw-r----- 1 root glance 192260 Aug 12 2020 glance-api.conf.source
-rw-r----- 1 root glance 88147 Aug 12 2020 glance-cache.conf
-rw-r--r-- 1 root glance 7779 Aug 12 2020 glance-image-import.conf
-rw-r----- 1 root glance 66036 Aug 12 2020 glance-registry.conf
-rw-r----- 1 root glance 79994 Aug 12 2020 glance-scrubber.conf
-rw-r--r-- 1 root glance 632 Aug 13 2020 glance-swift.conf
drwxr-xr-x 2 root root 4096 Nov 24 13:59 metadefs
-rw-r----- 1 root glance 1388 Aug 12 2020 policy.json
[root@controller glance]# chown root:glance glance-api.conf
[root@controller glance]# ll
total 456
-rw-r--r-- 1 root glance 476 Nov 24 13:59 glance-api.conf
-rw-r----- 1 root glance 192260 Aug 12 2020 glance-api.conf.source
-rw-r----- 1 root glance 88147 Aug 12 2020 glance-cache.conf
-rw-r--r-- 1 root glance 7779 Aug 12 2020 glance-image-import.conf
-rw-r----- 1 root glance 66036 Aug 12 2020 glance-registry.conf
-rw-r----- 1 root glance 79994 Aug 12 2020 glance-scrubber.conf
-rw-r--r-- 1 root glance 632 Aug 13 2020 glance-swift.conf
drwxr-xr-x 2 root root 4096 Nov 24 13:59 metadefs
-rw-r----- 1 root glance 1388 Aug 12 2020 policy.json
-rw-r----- 1 root glance 941 Aug 13 2020 rootwrap.conf
drwxr-xr-x 2 root root 65 Nov 24 13:59 rootwrap.d
-rw-r----- 1 root glance 2145 Aug 12 2020 schema-image.json
[root@controller glance]# vi /etc/glance/glance-api.conf
[root@controller glance]# cat /etc/glance/glance-api.conf
[DEFAULT]
show_image_direct_url = True
transport_url = rabbit://openstack:openstack@controller
[cinder]
[cors]
[database]
connection = mysql+pymysql://glance:openstack@controller/glance
[file]
[glance.store.http.store]
[glance.store.rbd.store]
[glance.store.sheepdog.store]
[glance.store.swift.store]
[glance.store.vmware_datastore.store]
[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
[image_format]
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
[DEFAULT]
[database]
connection = mysql+pymysql://glance:openstack@controller/glance
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = openstack2022
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_policy]
[paste_deploy]
flavor = keystone
[profiler]
"glance-registry.conf" 24L, 528C written
username = glance
password = openstack2022
[oslo_concurrency]
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_middleware]
[oslo_policy]
[paste_deploy]
flavor = keystone
[profiler]
[store_type_location_strategy]
[task]
[taskflow_executor]
[root@controller glance]#
[root@controller glance]# cd /etc/glance/ && mv glance-registry.conf glance-registry.conf.source && cat glance-registry.conf.source |grep -Ev "^#|^$" > glance-registry.conf && chown root:glance glance-registry.conf
[root@controller glance]# vi /etc/glance/glance-registry.conf
[root@controller glance]# su -s /bin/sh -c "glance-manage db_sync" glance
。。。。。。
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
Database is synced successfully.
[root@controller glance]# systemctl enable openstack-glance-api.service openstack-glance-registry.service && systemctl start openstack-glance-api.service openstack-glance-registry.service
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-glance-api.service to /usr/lib/systemd/system/openstack-glance-api.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-glance-registry.service to /usr/lib/systemd/system/openstack-glance-registry.service.
[root@controller glance]# source /etc/keystone/admin-openrc.sh
[root@controller glance]# wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
--2022-11-24 14:07:52-- http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
Resolving download.cirros-cloud.net (download.cirros-cloud.net)... 64.90.42.85, 2607:f298:6:a036::bd6:a72a
Connecting to download.cirros-cloud.net (download.cirros-cloud.net)|64.90.42.85|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github.com/cirros-dev/cirros/releases/download/0.4.0/cirros-0.4.0-x86_64-disk.img [following]
--2022-11-24 14:07:53-- https://github.com/cirros-dev/cirros/releases/download/0.4.0/cirros-0.4.0-x86_64-disk.img
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... connected.
Unable to establish SSL connection.
[root@controller glance]#
查看Glance 服务
[root@controller glance]# systemctl status openstack-glance-api.service openstack-glance-registry.service
● openstack-glance-api.service - OpenStack Image Service (code-named Glance) API server
Loaded: loaded (/usr/lib/systemd/system/openstack-glance-api.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2022-11-24 14:07:34 CST; 9min ago
Main PID: 62515 (glance-api)
Tasks: 5
CGroup: /system.slice/openstack-glance-api.service
├─62515 /usr/bin/python2 /usr/bin/glance-api
├─62546 /usr/bin/python2 /usr/bin/glance-api
├─62547 /usr/bin/python2 /usr/bin/glance-api
├─62548 /usr/bin/python2 /usr/bin/glance-api
└─62549 /usr/bin/python2 /usr/bin/glance-api
Nov 24 14:07:34 controller systemd[1]: Started OpenStack Image Service (code-named Glance) API server.
Nov 24 14:07:35 controller glance-api[62515]: /usr/lib/python2.7/site-packages/paste/deploy/loadwsg...ly.
Nov 24 14:07:35 controller glance-api[62515]: return pkg_resources.EntryPoint.parse("x=" + s).load(False)
● openstack-glance-registry.service - OpenStack Image Service (code-named Glance) Registry server
Loaded: loaded (/usr/lib/systemd/system/openstack-glance-registry.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2022-11-24 14:07:34 CST; 9min ago
Main PID: 62520 (glance-registry)
Tasks: 5
CGroup: /system.slice/openstack-glance-registry.service
├─62520 /usr/bin/python2 /usr/bin/glance-registry
├─62541 /usr/bin/python2 /usr/bin/glance-registry
├─62542 /usr/bin/python2 /usr/bin/glance-registry
├─62543 /usr/bin/python2 /usr/bin/glance-registry
└─62544 /usr/bin/python2 /usr/bin/glance-registry
Nov 24 14:07:34 controller systemd[1]: Started OpenStack Image Service (code-named Glance) Registr...ver.
Nov 24 14:07:35 controller glance-registry[62520]: /usr/lib/python2.7/site-packages/paste/deploy/lo...ly.
Nov 24 14:07:35 controller glance-registry[62520]: return pkg_resources.EntryPoint.parse("x=" + s)....se)
Hint: Some lines were ellipsized, use -l to show in full.
[root@controller glance]# tail -f /var/log/glance/*.log
==> /var/log/glance/api.log <==
). Its value may be silently ignored in the future.
2022-11-24 14:07:37.340 62515 INFO glance.common.wsgi [-] Starting 4 workers
2022-11-24 14:07:37.358 62515 INFO glance.common.wsgi [-] Started child 62546
2022-11-24 14:07:37.404 62515 INFO glance.common.wsgi [-] Started child 62547
yum01节点下载cirros-0.4.0-x86_64-disk.
[root@yum01 yumrepos]# vi /etc/hosts
[root@yum01 yumrepos]# wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
--2022-11-24 13:34:18-- http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
Resolving download.cirros-cloud.net (download.cirros-cloud.net)... 64.90.42.85, 2607:f298:6:a036::bd6:a72a
Connecting to download.cirros-cloud.net (download.cirros-cloud.net)|64.90.42.85|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github.com/cirros-dev/cirros/releases/download/0.4.0/cirros-0.4.0-x86_64-disk.img [following]
--2022-11-24 13:34:18-- https://github.com/cirros-dev/cirros/releases/download/0.4.0/cirros-0.4.0-x86_64-disk.img
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... connected.
Unable to establish SSL connection.
[root@yum01 yumrepos]# yum update wget
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* centos-ceph-nautilus: mirrors.cqu.edu.cn
* centos-nfs-ganesha28: mirrors.ustc.edu.cn
* centos-openstack-train: mirrors.ustc.edu.cn
* centos-qemu-ev: mirrors.ustc.edu.cn
* epel: mirrors.bfsu.edu.cn
No packages marked for update
[root@yum01 yumrepos]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@yum01 yumrepos]# wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
--2022-11-24 13:35:37-- http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
Resolving download.cirros-cloud.net (download.cirros-cloud.net)... 64.90.42.85, 2607:f298:6:a036::bd6:a72a
Connecting to download.cirros-cloud.net (download.cirros-cloud.net)|64.90.42.85|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github.com/cirros-dev/cirros/releases/download/0.4.0/cirros-0.4.0-x86_64-disk.img [following]
--2022-11-24 13:35:37-- https://github.com/cirros-dev/cirros/releases/download/0.4.0/cirros-0.4.0-x86_64-disk.img
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/219785102/b2074f00-411a-11ea-9620-afb551cf9af3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221124%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221124T033056Z&X-Amz-Expires=300&X-Amz-Signature=44a2b0140ee846675c2711eebfc17f978e1f681349e05064640ead7bc206acae&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=219785102&response-content-disposition=attachment%3B%20filename%3Dcirros-0.4.0-x86_64-disk.img&response-content-type=application%2Foctet-stream [following]
--2022-11-24 13:35:38-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/219785102/b2074f00-411a-11ea-9620-afb551cf9af3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221124%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221124T033056Z&X-Amz-Expires=300&X-Amz-Signature=44a2b0140ee846675c2711eebfc17f978e1f681349e05064640ead7bc206acae&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=219785102&response-content-disposition=attachment%3B%20filename%3Dcirros-0.4.0-x86_64-disk.img&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.110.133, 185.199.109.133, 185.199.111.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.110.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12716032 (12M) [application/octet-stream]
Saving to: ‘cirros-0.4.0-x86_64-disk.img’
100%[===============================================================>] 12,716,032 1.54MB/s in 11s
2022-11-24 13:36:31 (1.15 MB/s) - ‘cirros-0.4.0-x86_64-disk.img’ saved [12716032/12716032]
[root@yum01 yumrepos]# ls
base centos-openstack-train ceph-noarch epel pip
centos-ceph-nautilus centos-qemu-ev cirros-0.4.0-x86_64-disk.img extras updates
centos-nfs-ganesha28 ceph docker-ce-stable openresty zabbix
[root@yum01 yumrepos]# pwd
/var/www/html/yumrepos
控制节点验证 Glance 服务
使用本地 yum 源下载地址, cirros 是一个裁剪过的镜像,用于 Openstack 故障检测和测试
[root@controller ~]# wget http://yum01/yumrepos/cirros-0.4.0-x86_64-disk.img
--2022-11-24 14:42:54-- http://yum01/yumrepos/cirros-0.4.0-x86_64-disk.img
Resolving yum01 (yum01)... 192.168.182.250
Connecting to yum01 (yum01)|192.168.182.250|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12716032 (12M) [application/octet-stream]
Saving to: ‘cirros-0.4.0-x86_64-disk.img’
100%[===============================================================>] 12,716,032 --.-K/s in 0.09s
2022-11-24 14:42:54 (132 MB/s) - ‘cirros-0.4.0-x86_64-disk.img’ saved [12716032/12716032]
[root@controller ~]# ls
anaconda-ks.cfg Documents Music Pictures Videos
cirros-0.4.0-x86_64-disk.img Downloads osc-placement-2.2.0.tar.gz Public
Desktop initial-setup-ks.cfg perl5 Templates
#上传镜像到 glance 。
[root@controller ~]# openstack image create "cirros-0.4.0-x86_64" --file cirros-0.4.0-x86_64-disk.img --disk-format qcow2 --container-format bare --public
+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| checksum | 443b7623e27ecf03dc9e01ee93f67afe |
| container_format | bare |
| created_at | 2022-11-24T06:44:58Z |
| disk_format | qcow2 |
| file | /v2/images/85219bb3-2513-4792-9b5e-c51de301b4c3/file |
| id | 85219bb3-2513-4792-9b5e-c51de301b4c3 |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros-0.4.0-x86_64 |
| owner | b069ab279ac147b6a16f9ff2107f7b1b |
| properties | direct_url='file:///var/lib/glance/images/85219bb3-2513-4792-9b5e-c51de301b4c3', os_hash_algo='sha512', os_hash_value='6513f21e44aa3da349f248188a44bc304a3653a04122d8fb4535423c8e1d14cd6a153f735bb0982e2161b5b5186106570c17a9e58b64dd39390617cd5a350f78', os_hidden='False' |
| protected | False |
| schema | /v2/schemas/image |
| size | 12716032 |
| status | active |
| tags | |
| updated_at | 2022-11-24T06:44:59Z |
| virtual_size | None |
| visibility | public |
+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
[root@controller ~]# ls /var/lib/glance/images/85219bb3-2513-4792-9b5e-c51de301b4c3
/var/lib/glance/images/85219bb3-2513-4792-9b5e-c51de301b4c3
[root@controller ~]# du -sh /var/lib/glance/images/85219bb3-2513-4792-9b5e-c51de301b4c3
13M /var/lib/glance/images/85219bb3-2513-4792-9b5e-c51de301b4c3
[root@controller ~]# du -sh cirros-0.4.0-x86_64-disk.img
13M cirros-0.4.0-x86_64-disk.img
[root@controller ~]#
确认上传的镜像和属性。
# openstack image list
或
# glance image-list
# openstack image show ${image_id}
或
# glance image-show ${image_id}
设置镜像为公有镜像
# openstack image set cirros-0.4.0-x86_64 --public
删除镜像
# openstack image delete ${image_name}