ceph/qa/tasks/ceph_iscsi_client.py

57 lines
1.8 KiB
Python

"""
Set up ceph-iscsi client.
"""
import logging
import contextlib
from textwrap import dedent
log = logging.getLogger(__name__)
@contextlib.contextmanager
def task(ctx, config):
"""
Set up ceph-iscsi client.
tasks:
ceph_iscsi_client:
clients: [client.1]
"""
log.info('Setting up ceph-iscsi client...')
for role in config['clients']:
(remote,) = (ctx.cluster.only(role).remotes.keys())
conf = dedent('''
InitiatorName=iqn.1994-05.com.redhat:client
''')
path = "/etc/iscsi/initiatorname.iscsi"
remote.sudo_write_file(path, conf, mkdir=True)
# the restart is needed after the above change is applied
remote.run(args=['sudo', 'systemctl', 'restart', 'iscsid'])
remote.run(args=['sudo', 'modprobe', 'dm_multipath'])
remote.run(args=['sudo', 'mpathconf', '--enable'])
conf = dedent('''
devices {
device {
vendor "LIO-ORG"
product "TCMU device"
hardware_handler "1 alua"
path_grouping_policy "failover"
path_selector "queue-length 0"
failback 60
path_checker tur
prio alua
prio_args exclusive_pref_bit
fast_io_fail_tmo 25
no_path_retry queue
}
}
''')
path = "/etc/multipath.conf"
remote.sudo_write_file(path, conf, append=True)
remote.run(args=['sudo', 'systemctl', 'start', 'multipathd'])
yield