From: Marcus Watts Date: Fri, 17 Sep 2021 09:28:53 +0000 (-0400) Subject: Fix vault token file access. X-Git-Tag: v15.2.16~48^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=58b4166ab02fc0ca65ef3c86debcca5bdac98347;p=ceph.git Fix vault token file access. Put the vault token file in a location that ceph can read. Make it readable only by ceph. On rhel8 (and indeed, any vanilla rhel machine), $HOME is liable to be mode 700. This means the ceph user can't read things in that user's directory. This causes radosgw to emit the confusing message "ERROR: Vault token file ... not found" even though the teuthology log will plainly show it was created and made readable by ceph. Fixes: http://tracker.ceph.com/issues/51539 Signed-off-by: Marcus Watts (cherry picked from commit 454cc8a18c4c3851de5976d3e36e42644dbb1a70) Conflicts: qa/tasks/rgw.py Cherry-pick notes: - Conflict due to ctx.rgw.vault_role not set in Octopus test --- diff --git a/qa/tasks/rgw.py b/qa/tasks/rgw.py index 75004c87a4595..b981ad5f19c96 100644 --- a/qa/tasks/rgw.py +++ b/qa/tasks/rgw.py @@ -113,7 +113,7 @@ def start_rgw(ctx, config, clients): vault_role = client_config.get('use-vault-role', None) barbican_role = client_config.get('use-barbican-role', None) - token_path = teuthology.get_testdir(ctx) + '/vault-token' + token_path = '/etc/ceph/vault-root-token' if barbican_role is not None: if not hasattr(ctx, 'barbican'): raise ConfigError('rgw must run after the barbican task') @@ -131,11 +131,11 @@ def start_rgw(ctx, config, clients): if not ctx.vault.root_token: raise ConfigError('vault: no "root_token" specified') # create token on file - ctx.cluster.only(client).run(args=['echo', '-n', ctx.vault.root_token, run.Raw('>'), token_path]) + ctx.cluster.only(client).run(args=['sudo', 'echo', '-n', ctx.vault.root_token, run.Raw('|'), 'sudo', 'tee', token_path]) log.info("Token file content") ctx.cluster.only(client).run(args=['cat', token_path]) log.info("Restrict access to token file") - ctx.cluster.only(client).run(args=['chmod', '600', token_path]) + ctx.cluster.only(client).run(args=['sudo', 'chmod', '600', token_path]) ctx.cluster.only(client).run(args=['sudo', 'chown', 'ceph', token_path]) rgw_cmd.extend([ @@ -196,7 +196,7 @@ def start_rgw(ctx, config, clients): client=client_with_cluster), ], ) - ctx.cluster.only(client).run(args=['rm', '-f', token_path]) + ctx.cluster.only(client).run(args=['sudo', 'rm', '-f', token_path]) def assign_endpoints(ctx, config, default_cert): role_endpoints = {}