Merge pull request #182 from ryanpetrello/fix-7375

add a configurable for disabling the auto-generated isolated RSA key
This commit is contained in:
Ryan Petrello
2017-08-04 09:19:35 -04:00
committed by GitHub
3 changed files with 18 additions and 1 deletions

View File

@@ -205,6 +205,18 @@ register(
category_slug='jobs', category_slug='jobs',
) )
register(
'AWX_ISOLATED_KEY_GENERATION',
field_class=fields.BooleanField,
default=True,
label=_('Generate RSA keys for isolated instances'),
help_text=_('If set, a random RSA key will be generated and distributed to '
'isolated instances. To disable this behavior and manage authentication '
'for isolated instances outside of Tower, disable this setting.'), # noqa
category=_('Jobs'),
category_slug='jobs',
)
register( register(
'AWX_ISOLATED_PRIVATE_KEY', 'AWX_ISOLATED_PRIVATE_KEY',
field_class=fields.CharField, field_class=fields.CharField,

View File

@@ -192,7 +192,10 @@ class IsolatedManager(object):
def run_pexpect(cls, pexpect_args, *args, **kw): def run_pexpect(cls, pexpect_args, *args, **kw):
isolated_ssh_path = None isolated_ssh_path = None
try: try:
if getattr(settings, 'AWX_ISOLATED_PRIVATE_KEY', None): if all([
getattr(settings, 'AWX_ISOLATED_KEY_GENERATION', False) is True,
getattr(settings, 'AWX_ISOLATED_PRIVATE_KEY', None)
]):
isolated_ssh_path = tempfile.mkdtemp(prefix='awx_isolated', dir=settings.AWX_PROOT_BASE_PATH) isolated_ssh_path = tempfile.mkdtemp(prefix='awx_isolated', dir=settings.AWX_PROOT_BASE_PATH)
os.chmod(isolated_ssh_path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR) os.chmod(isolated_ssh_path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR)
isolated_key = os.path.join(isolated_ssh_path, '.isolated') isolated_key = os.path.join(isolated_ssh_path, '.isolated')
@@ -277,6 +280,7 @@ class IsolatedManager(object):
args.append('-%s' % ('v' * min(5, self.instance.verbosity))) args.append('-%s' % ('v' * min(5, self.instance.verbosity)))
status = 'failed' status = 'failed'
output = ''
rc = None rc = None
buff = cStringIO.StringIO() buff = cStringIO.StringIO()
last_check = time.time() last_check = time.time()

View File

@@ -59,6 +59,7 @@ AWX_PROOT_ENABLED = True
AWX_ISOLATED_USERNAME = 'root' AWX_ISOLATED_USERNAME = 'root'
AWX_ISOLATED_CHECK_INTERVAL = 1 AWX_ISOLATED_CHECK_INTERVAL = 1
AWX_ISOLATED_LAUNCH_TIMEOUT = 30
# Disable Pendo on the UI for development/test. # Disable Pendo on the UI for development/test.
# Note: This setting may be overridden by database settings. # Note: This setting may be overridden by database settings.