From d57af5e77ee39a9e6ca454d1f915a2f74278628c Mon Sep 17 00:00:00 2001 From: Alex Schultz Date: Thu, 29 Oct 2020 12:23:38 -0600 Subject: [PATCH] Handle root as a deployment user better Currently if you don't specify --deployment-user and for whatever reason it's run as root (e.g. ansible as root using sudo), the deployment fails because it attempts to write out to /home/root/. This change updates the user home root lookup for clouds.yaml and throws a warning about setting --deployment-user if it's root. Change-Id: I284b374cc5e6d6a147286f0485832258f93f038f (cherry picked from commit ff56863b261370af213c1ae1a836e87b8b852579) --- tripleoclient/utils.py | 2 +- tripleoclient/v1/tripleo_deploy.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/tripleoclient/utils.py b/tripleoclient/utils.py index a194bff9d..3b6d6b5f4 100644 --- a/tripleoclient/utils.py +++ b/tripleoclient/utils.py @@ -2310,7 +2310,7 @@ def copy_clouds_yaml(user): :param user: deployment user """ clouds_etc_file = '/etc/openstack/clouds.yaml' - clouds_home_dir = os.path.join('/home', user) + clouds_home_dir = os.path.expanduser("~{}".format(user)) clouds_config_dir = os.path.join(clouds_home_dir, '.config') clouds_openstack_config_dir = os.path.join(clouds_config_dir, 'openstack') diff --git a/tripleoclient/v1/tripleo_deploy.py b/tripleoclient/v1/tripleo_deploy.py index fc7b84179..df7595703 100644 --- a/tripleoclient/v1/tripleo_deploy.py +++ b/tripleoclient/v1/tripleo_deploy.py @@ -1410,6 +1410,12 @@ class Deploy(command.Command): def take_action(self, parsed_args): self.log.debug("take_action(%s)" % parsed_args) + if parsed_args.deployment_user == 'root': + self.log.warning( + _("[WARNING] Deployment user is set to 'root'. This may cause " + "some deployment files to be located in /root. Please use " + "--deployment-user to specify the user you are deploying " + "with.")) try: if parsed_args.standalone: self._standalone_deploy(parsed_args)