Bug 48955 - Failed to read config file directory: /etc/glance/glance-api.conf.d/
Summary: Failed to read config file directory: /etc/glance/glance-api.conf.d/
Status: NEW
Alias: None
Product: Branch p10
Classification: Unclassified
Component: openstack-glance (show other bugs)
Version: не указана
Hardware: x86_64 Linux
: P5 normal
Assignee: Grigory Ustinov
QA Contact: qa-p10@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-28 09:37 MSK by Evgeny Shesteperov
Modified: 2023-12-28 09:51 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Evgeny Shesteperov 2023-12-28 09:37:16 MSK
Версия

-   openstack-glance-19.0.0-alt1

Шаги воспроизведения

1.  Установить пакеты:

    # apt-get install -y openstack-glance mariadb-common mariadb-server memcached openstack-keystone python3-module-openstackclient apache2-cgi-bin

2.  Запустить сервисы:

    # systemctl enable --now memcached mysqld.service && sleep 5; systemctl status memcached mysqld.service --no-pager -l

3.  Настроить Keystone (от root):

    echo "CREATE DATABASE keystone;" | mysql -u root
    echo "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '1';" | mysql -u root
    echo "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '1';" | mysql -u root
    awk '/^\[database\]/{p=1} p && /^$/ && !a {print "connection = mysql+pymysql://keystone:1@127.0.0.1/keystone"; a=1} 1' /etc/keystone/keystone.conf > /etc/keystone/keystone.conf.tmp && \mv /etc/keystone/keystone.conf.tmp /etc/keystone/keystone.conf
    awk '/^\[cache\]/{p=1} p && /^$/ && !a {print "enabled = true\nbackend = dogpile.cache.memcached"; a=1} 1' /etc/keystone/keystone.conf > /etc/keystone/keystone.conf.tmp && \mv /etc/keystone/keystone.conf.tmp /etc/keystone/keystone.conf

    cat > /etc/my.cnf.d/openstack.cnf <<'EOF'
    [mysqld]
    bind-address = 127.0.0.1
    default-storage-engine = innodb
    innodb_file_per_table
    max_connections = 4096
    collation-server = utf8_general_ci
    character-set-server = utf8
    EOF

    sed -i "/skip-networking/d" /etc/my.cnf.d/server.cnf

    systemctl restart mariadb
    keystone-manage db_sync
    keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
    keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
    keystone-manage bootstrap --bootstrap-password 1 --bootstrap-admin-url http://$(hostname -i):5000/v3/ --bootstrap-internal-url http://$(hostname -i):5000/v3/ --bootstrap-public-url http://$(hostname -i):5000/v3/ --bootstrap-region-id RegionOne
    chown -R keystone:keystone /etc/keystone
    systemctl enable --now httpd2.service
    cat > auth_data <<'EOF'
    export OS_AUTH_URL=http://127.0.0.1:5000/v3
    export OS_IDENTITY_API_VERSION=3
    export OS_USERNAME=admin
    export OS_PASSWORD=1
    export OS_PROJECT_NAME=admin
    export OS_USER_DOMAIN_NAME=Default
    export OS_PROJECT_DOMAIN_NAME=Default
    export OS_REGION_NAME=RegionOne
    EOF

4.  Настроить Glance (от root):

    . auth_data
    openstack endpoint create --region RegionOne identity public http://127.0.0.1:5000/v3
    openstack endpoint create --region RegionOne identity internal http://127.0.0.1:5000/v3
    openstack endpoint create --region RegionOne identity admin http://127.0.0.1:35357/v3
    openstack project create --domain default --description TEST service
    openstack role create user
    echo "CREATE DATABASE glance;" | mysql -u root
    echo "GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'127.0.0.1' IDENTIFIED BY '1';" | mysql -u root
    echo "GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '1';" | mysql -u root
    cat > /etc/glance/glance-api.conf <<EOF
    [DEFAULT]
    [database]
    connection = mysql+pymysql://glance:1@127.0.0.1/glance
    [glance_store]
    stores = file,http
    default_store = file
    filesystem_store_datadir = /var/lib/glance/images/
    [image_format]
    [keystone_authtoken]
    auth_uri = http://127.0.0.1:5000
    auth_url = http://127.0.0.1:35357
    memcached_servers = 127.0.0.1:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = glance
    password = 1
    [paste_deploy]
    flavor = keystone
    EOF
    cat > /etc/glance/glance-registry.conf <<EOF
    [DEFAULT]
    [database]
    connection = mysql+pymysql://glance:1@127.0.0.1/glance
    [keystone_authtoken]
    auth_uri = http://127.0.0.1:5000
    auth_url = http://127.0.0.1:35357
    memcached_servers = 127.0.0.1:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = glance
    password = 1
    [paste_deploy]
    flavor = keystone
    [profiler]
    EOF
    cat > admin_openrc << EOF
    export OS_PROJECT_DOMAIN_NAME=default
    export OS_USER_DOMAIN_NAME=default
    export OS_PROJECT_NAME=admin
    export OS_USERNAME=admin
    export OS_PASSWORD=1
    export OS_AUTH_URL=http://127.0.0.1:35357/v3
    export OS_IDENTITY_API_VERSION=3
    export OS_IMAGE_API_VERSION=2
    EOF
    . admin_openrc
    openstack user create --domain default --password 1 glance
    openstack role add --project service --user glance admin
    openstack service create --name glance --description TEST image
    openstack endpoint create --region RegionOne image public http://127.0.0.1:9292
    openstack endpoint create --region RegionOne image internal http://127.0.0.1:9292
    openstack endpoint create --region RegionOne image admin http://127.0.0.1:9292

5.  Выполнить Sync:

    # glance-manage db_sync

6.  Запустить openstack-glance-api:

    # systemctl start openstack-glance-api
    # systemctl status openstack-glance-api

Ожидаемый результат: в логах сервиса нет ошибки
oslo_config.cfg.ConfigDirNotFoundError: Failed to read config file
directory: /etc/glance/glance-api.conf.d/

Фактический результат: в логах сервиса есть ошибка

    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]: Traceback (most recent call last):
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:   File "/usr/bin/glance-manage", line 10, in <module>
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:     sys.exit(main())
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:   File "/usr/lib/python3/site-packages/glance/cmd/manage.py", line 555, in main
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:     config.parse_args(default_config_files=cfg_files)
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:   File "/usr/lib/python3/site-packages/glance/common/config.py", line 706, in parse_args
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:     CONF(args=args,
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:   File "/usr/lib/python3/site-packages/oslo_config/cfg.py", line 2153, in __call__
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:     self._namespace = self._parse_cli_opts(args if args is not None
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:   File "/usr/lib/python3/site-packages/oslo_config/cfg.py", line 2924, in _parse_cli_opts
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:     return self._parse_config_files()
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:   File "/usr/lib/python3/site-packages/oslo_config/cfg.py", line 2960, in _parse_config_files
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:     self._oparser.parse_args(self._args, namespace)
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:   File "/usr/lib/python3/site-packages/oslo_config/cfg.py", line 1936, in parse_args
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:     return super(_CachedArgumentParser, self).parse_args(args, namespace)
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:   File "/usr/lib64/python3.9/argparse.py", line 1825, in parse_args
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:     args, argv = self.parse_known_args(args, namespace)
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:   File "/usr/lib64/python3.9/argparse.py", line 1858, in parse_known_args
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:     namespace, args = self._parse_known_args(args, namespace)
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:   File "/usr/lib64/python3.9/argparse.py", line 2067, in _parse_known_args
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:     start_index = consume_optional(start_index)
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:   File "/usr/lib64/python3.9/argparse.py", line 2007, in consume_optional
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:     take_action(action, args, option_string)
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:   File "/usr/lib64/python3.9/argparse.py", line 1935, in take_action
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:     action(self, namespace, argument_values, option_string)
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:   File "/usr/lib/python3/site-packages/oslo_config/cfg.py", line 1423, in __call__
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]:     raise ConfigDirNotFoundError(values)
    дек 28 09:28:22 server-10-1-x86-64-20231227.localdomain glance-manage[12070]: oslo_config.cfg.ConfigDirNotFoundError: Failed to read config file directory: /etc/glance/glance-api.conf.d/

Решение: создать папку # mkdir -p /etc/glance/glance-api.conf.d