Inject validation roles path in ansible config

In order to allow access to the roles provided by tripleo-validations,
we have to inject its path in the generated ansible configuration.

We also inject tripleo-validations library paths.

Change-Id: Ic73411ab5a30a57e3e33a9990fa6b3ecea3ee389
Implements: blueprint inflight-validations
This commit is contained in:
Cédric Jeanneret 2019-04-08 13:01:11 +02:00
parent c7ffea0745
commit f387083362
1 changed files with 22 additions and 0 deletions

View File

@ -33,6 +33,7 @@ from tripleo_common.actions import base
from tripleo_common import inventory
LOG = logging.getLogger(__name__)
TRIPLEO_VALIDATIONS = '/usr/share/openstack-tripleo-validations'
def write_default_ansible_cfg(work_dir,
@ -44,10 +45,31 @@ def write_default_ansible_cfg(work_dir,
ansible_config_path = os.path.join(work_dir, 'ansible.cfg')
shutil.copy(base_ansible_cfg, ansible_config_path)
modules_path = ('/root/.ansible/plugins/modules:'
'/usr/share/ansible/plugins/modules:'
'%s/library' % TRIPLEO_VALIDATIONS)
lookups_path = ('root/.ansible/plugins/lookup:'
'/usr/share/ansible/plugins/lookup:'
'%s/lookup_plugins' % TRIPLEO_VALIDATIONS)
callbacks_path = ('~/.ansible/plugins/callback:'
'/usr/share/ansible/plugins/callback:'
'%s/callback_plugins' % TRIPLEO_VALIDATIONS)
roles_path = ('%(work_dir)s/roles:'
'/root/.ansible/roles:'
'/usr/share/ansible/roles:'
'/etc/ansible/roles:'
'%(ooo_val_path)s/roles:'
'%(work_dir)s' % {'work_dir': work_dir,
'ooo_val_path': TRIPLEO_VALIDATIONS})
config = configparser.ConfigParser()
config.read(ansible_config_path)
config.set('defaults', 'retry_files_enabled', 'False')
config.set('defaults', 'roles_path', roles_path)
config.set('defaults', 'library', modules_path)
config.set('defaults', 'callback_plugins', callbacks_path)
config.set('defaults', 'lookup_plugins', lookups_path)
log_path = os.path.join(work_dir, 'ansible.log')
config.set('defaults', 'log_path', log_path)