<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>48956</bug_id>
          
          <creation_ts>2023-12-28 09:48:12 +0300</creation_ts>
          <short_desc>Permission denied: ‘/var/log/glance/glance-manage.log’</short_desc>
          <delta_ts>2023-12-28 09:51:54 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Branch p10</product>
          <component>openstack-glance</component>
          <version>не указана</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Evgeny Shesteperov">alimektor</reporter>
          <assigned_to name="Grigory Ustinov">grenka</assigned_to>
          <cc>aminov</cc>
          
          <qa_contact name="qa-p10@altlinux.org">qa-p10</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>239701</commentid>
    <comment_count>0</comment_count>
    <who name="Evgeny Shesteperov">alimektor</who>
    <bug_when>2023-12-28 09:48:12 +0300</bug_when>
    <thetext>Версия

-   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 &amp;&amp; sleep 5; systemctl status memcached mysqld.service --no-pager -l

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

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

    cat &gt; /etc/my.cnf.d/openstack.cnf &lt;&lt;&apos;EOF&apos;
    [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 &quot;/skip-networking/d&quot; /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 &gt; auth_data &lt;&lt;&apos;EOF&apos;
    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 &quot;CREATE DATABASE glance;&quot; | mysql -u root
    echo &quot;GRANT ALL PRIVILEGES ON glance.* TO &apos;glance&apos;@&apos;127.0.0.1&apos; IDENTIFIED BY &apos;1&apos;;&quot; | mysql -u root
    echo &quot;GRANT ALL PRIVILEGES ON glance.* TO &apos;glance&apos;@&apos;%&apos; IDENTIFIED BY &apos;1&apos;;&quot; | mysql -u root
    cat &gt; /etc/glance/glance-api.conf &lt;&lt;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 &gt; /etc/glance/glance-registry.conf &lt;&lt;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 &gt; admin_openrc &lt;&lt; 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.  Из-за ошибки https://bugzilla.altlinux.org/48955 - Failed to read
    config file directory: /etc/glance/glance-api.conf.d/ выполнить:

    # mkdir -p /etc/glance/glance-api.conf.d

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

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

Ожидаемый результат: нет ошибок в запуске сервиса
(code=exited, status=0/SUCCESS). Фактический результат: ошибка
Permission denied: &apos;/var/log/glance/glance-manage.log&apos;. Код выхода -
(code=exited, status=1/FAILURE)

Логи:

    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]: Traceback (most recent call last):
    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]:   File &quot;/usr/bin/glance-manage&quot;, line 10, in &lt;module&gt;
    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]:     sys.exit(main())
    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]:   File &quot;/usr/lib/python3/site-packages/glance/cmd/manage.py&quot;, line 557, in main
    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]:     logging.setup(CONF, &apos;glance&apos;)
    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]:   File &quot;/usr/lib/python3/site-packages/oslo_log/log.py&quot;, line 273, in setup
    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]:     _setup_logging_from_conf(conf, product_name, version)
    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]:   File &quot;/usr/lib/python3/site-packages/oslo_log/log.py&quot;, line 381, in _setup_logging_from_conf
    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]:     filelog = file_handler(logpath)
    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]:   File &quot;/usr/lib64/python3.9/logging/handlers.py&quot;, line 470, in __init__
    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]:     logging.FileHandler.__init__(self, filename, mode=mode,
    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]:   File &quot;/usr/lib64/python3.9/logging/__init__.py&quot;, line 1146, in __init__
    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]:     StreamHandler.__init__(self, self._open())
    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]:   File &quot;/usr/lib64/python3.9/logging/__init__.py&quot;, line 1175, in _open
    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]:     return open(self.baseFilename, self.mode, encoding=self.encoding,
    дек 28 09:41:58 server-10-1-x86-64-20231227.localdomain glance-manage[12426]: PermissionError: [Errno 13] Permission denied: &apos;/var/log/glance/glance-manage.log&apos;

Решение: # chown glance:glance -R /var/log/glance</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>