diff --git a/awx/main/tasks/jobs.py b/awx/main/tasks/jobs.py index ebfce7b03b..e56da04b9f 100644 --- a/awx/main/tasks/jobs.py +++ b/awx/main/tasks/jobs.py @@ -921,7 +921,6 @@ class RunJob(SourceControlMixin, BaseTask): env['ANSIBLE_NET_AUTH_PASS'] = network_cred.get_input('authorize_password', default='') path_vars = [ - ('ANSIBLE_COLLECTIONS_PATHS', 'collections_paths', 'requirements_collections', '~/.ansible/collections:/usr/share/ansible/collections'), ('ANSIBLE_ROLES_PATH', 'roles_path', 'requirements_roles', '~/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles'), ('ANSIBLE_COLLECTIONS_PATH', 'collections_path', 'requirements_collections', '~/.ansible/collections:/usr/share/ansible/collections'), ] @@ -1524,7 +1523,7 @@ class RunInventoryUpdate(SourceControlMixin, BaseTask): raise NotImplementedError('Cannot update file sources through the task system.') if inventory_update.source == 'scm' and inventory_update.source_project_update: - env_key = 'ANSIBLE_COLLECTIONS_PATHS' + env_key = 'ANSIBLE_COLLECTIONS_PATH' config_setting = 'collections_paths' folder = 'requirements_collections' default = '~/.ansible/collections:/usr/share/ansible/collections' @@ -1542,12 +1541,12 @@ class RunInventoryUpdate(SourceControlMixin, BaseTask): paths = [config_values[config_setting]] + paths paths = [os.path.join(CONTAINER_ROOT, folder)] + paths env[env_key] = os.pathsep.join(paths) - if 'ANSIBLE_COLLECTIONS_PATHS' in env: - paths = env['ANSIBLE_COLLECTIONS_PATHS'].split(':') + if 'ANSIBLE_COLLECTIONS_PATH' in env: + paths = env['ANSIBLE_COLLECTIONS_PATH'].split(':') else: paths = ['~/.ansible/collections', '/usr/share/ansible/collections'] paths.append('/usr/share/automation-controller/collections') - env['ANSIBLE_COLLECTIONS_PATHS'] = os.pathsep.join(paths) + env['ANSIBLE_COLLECTIONS_PATH'] = os.pathsep.join(paths) return env diff --git a/awx/main/tests/functional/test_inventory_source_injectors.py b/awx/main/tests/functional/test_inventory_source_injectors.py index 0df9a13226..acced6e59d 100644 --- a/awx/main/tests/functional/test_inventory_source_injectors.py +++ b/awx/main/tests/functional/test_inventory_source_injectors.py @@ -230,7 +230,7 @@ def test_inventory_update_injected_content(this_kind, inventory, fake_credential len([True for k in content.keys() if k.endswith(inventory_filename)]) > 0 ), f"'{inventory_filename}' file not found in inventory update runtime files {content.keys()}" - env.pop('ANSIBLE_COLLECTIONS_PATHS', None) # collection paths not relevant to this test + env.pop('ANSIBLE_COLLECTIONS_PATH', None) base_dir = os.path.join(DATA, 'plugins') if not os.path.exists(base_dir): os.mkdir(base_dir) diff --git a/awx/playbooks/project_update.yml b/awx/playbooks/project_update.yml index 2f4ab183c7..1cdf046106 100644 --- a/awx/playbooks/project_update.yml +++ b/awx/playbooks/project_update.yml @@ -201,7 +201,7 @@ # additional_galaxy_env contains environment variables are used for installing roles and collections and will take precedence over items in galaxy_task_env additional_galaxy_env: # These paths control where ansible-galaxy installs collections and roles on top the filesystem - ANSIBLE_COLLECTIONS_PATHS: "{{ projects_root }}/.__awx_cache/{{ local_path }}/stage/requirements_collections" + ANSIBLE_COLLECTIONS_PATH: "{{ projects_root }}/.__awx_cache/{{ local_path }}/stage/requirements_collections" ANSIBLE_ROLES_PATH: "{{ projects_root }}/.__awx_cache/{{ local_path }}/stage/requirements_roles" # Put the local tmp directory in same volume as collection destination # otherwise, files cannot be moved accross volumes and will cause error