1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
"""
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
|