Beispiel #1
0
def start_ssh_docker(container_name,
                     jobs_directory,
                     port=10022,
                     image='agaveapi/slurm'):
    ssh_keys = generate_ssh_keys()
    START_SLURM_DOCKER = [
        'docker',
        'run',
        '-h',
        'localhost',
        '-p',
        f'{port}:22',
        '-d',
        '--name',
        container_name,
        '--rm',
        '--privileged',  # for torque
        '-v',
        "{jobs_directory}:{jobs_directory}".format(
            jobs_directory=jobs_directory),
        "-v",
        f"{ssh_keys.public_key_file}:/home/testuser/.ssh/authorized_keys",
        '--ulimit',
        'nofile=2048:2048',
        image
    ]
    subprocess.check_call(START_SLURM_DOCKER)
    if sys.platform != 'darwin':
        subprocess.check_call([
            'docker', 'exec', container_name, 'usermod', '-u',
            str(os.getuid()), 'testuser'
        ])
    return RemoteConnection('localhost', 'testuser', port,
                            ssh_keys.private_key_file,
                            ssh_keys.public_key_file)
Beispiel #2
0
 def setUpClass(cls):
     cls.ssh_keys = generate_ssh_keys()
     cls.username = '******'
     cls.shell_params = {
         'username': cls.username,
         'private_key': cls.ssh_keys.private_key_file,
         'hostname': 'localhost'
     }
     cls.cli_interface = CliInterface()
Beispiel #3
0
def start_ssh_docker(container_name,
                     jobs_directory,
                     port=10022,
                     image='agaveapi/slurm'):
    ssh_keys = generate_ssh_keys()
    START_SLURM_DOCKER = [
        'docker', 'run', '-h', 'localhost', '-p',
        '{port}:22'.format(port=port), '-d', '--name', container_name, '--rm',
        '-v', "{jobs_directory}:{jobs_directory}".format(
            jobs_directory=jobs_directory), "-v",
        "{public_key_file}:/home/testuser/.ssh/authorized_keys".format(
            public_key_file=ssh_keys.public_key_file), '--ulimit',
        'nofile=2048:2048', image
    ]
    subprocess.check_call(START_SLURM_DOCKER)
    return RemoteConnection('localhost', 'testuser', 'testuser', port,
                            ssh_keys.private_key_file,
                            ssh_keys.public_key_file)