3
3
# #################### Fileset configuration For CES Nodes #####################
4
4
5
5
# First verifing if fileset already exists if not then creating Independent fileset linking it and printing it.
6
-
7
- - name : config | Create a list of configuration parameters for filesets
8
- set_fact :
9
- config_filset : >
10
- {%- set config_filset = [] -%}
11
- {%- for storage in scale_storage -%}
12
- {%- for fileset_name, quota in storage.filesets.items() -%}
13
- {{ config_filset.append({
14
- 'filesystem': storage.filesystem,
15
- 'fileset_name': fileset_name,
16
- 'quota': quota,
17
- 'defaultMountPoint': storage.defaultMountPoint
18
- }) }}
19
- {%- endfor -%}
20
- {%- endfor -%}
21
- {{ config_filset }}
22
- run_once : true
23
-
24
- - name : debug | Display scale_storage content
25
- debug :
26
- var : config_filset
27
- run_once : true
28
-
29
6
- name : Fileset Creation
30
7
block : # # run_once: true
31
-
32
8
- name : storage | Find existing filesystem(s)
33
9
shell : /usr/lpp/mmfs/bin/mmlsfs all -Y | grep -v HEADER | cut -d ':' -f 7 | uniq
34
10
register : scale_storage_existing_fs
40
16
var : scale_storage_existing_fs.stdout
41
17
ignore_errors : yes
42
18
43
- - name : Check if fileset in filesystem already exists
44
- shell : " /usr/lpp/mmfs/bin/mmlsfileset {{ item.filesystem }} | tail -n +3 | awk '{print $1}' | grep -w {{ item.fileset_name }}"
45
- loop : " {{ config_filset }}"
46
- loop_control :
47
- label : " {{ item.filesystem }}: {{ item.fileset_name }}"
19
+ - name : Check if fileset in file system already exists
20
+ shell : " /usr/lpp/mmfs/bin/mmlsfileset {{ scale_storage_existing_fs.stdout }} | tail -n +3 | awk '{print $1}' | grep -w {{ item.key }}"
21
+ loop : " {{ scale_storage[0].filesets | dict2items }}"
48
22
register : filesets_result
23
+ ignore_errors : yes
49
24
failed_when : false
50
25
51
26
- name : Print return code for each fileset
52
27
debug :
53
- msg : " Fileset {{ item.item.fileset_name }} - Return Code: {{ item.rc }}"
28
+ msg : " Fileset {{ item.item.key }} - Return Code: {{ item.rc }}"
54
29
loop : " {{ filesets_result.results }}"
55
30
loop_control :
56
- label : " {{ item.item.filesystem }}: {{ item.item.fileset_name }} "
31
+ loop_var : item
57
32
58
33
- name : Create new fileset
59
- shell : " /usr/lpp/mmfs/bin/mmcrfileset {{ item.item.filesystem }} {{ item.item.fileset_name }} --inode-space new"
34
+ shell : " /usr/lpp/mmfs/bin/mmcrfileset {{ scale_storage_existing_fs.stdout }} {{ item.item.key }} --inode-space new"
60
35
loop : " {{ filesets_result.results }}"
61
- loop_control :
62
- label : " {{ item.item.filesystem }}: {{ item.item.fileset_name }}"
63
36
register : created_fileset
64
37
when : item.rc != 0
65
38
66
39
- name : Print return code for created filesets
67
40
debug :
68
- msg : " Fileset {{ item.item.item.fileset_name }} in {{ item.item.item.filesystem }} - Return Code: {{ item.item.rc }}"
41
+ msg : " Fileset_created {{ item.item.item.key }} - Return Code: {{ item.item.rc }}"
69
42
loop : " {{ created_fileset.results }}"
70
43
loop_control :
71
- label : " {{ item.item.stdout }} "
44
+ loop_var : item
72
45
73
46
- name : Link new fileset
74
- shell : " /usr/lpp/mmfs/bin/mmlinkfileset {{ item.item.item.filesystem }} {{ item.item.item.fileset_name }} -J {{ item.item.item.defaultMountPoint }}/{{ item.item.item.fileset_name }}"
75
- register : link_fileset
47
+ shell : " /usr/lpp/mmfs/bin/mmlinkfileset {{ scale_storage_existing_fs.stdout }} {{ item.item.item.key }} -J {{ scale_storage[0].defaultMountPoint }}/{{ item.item.item.key }}"
76
48
loop : " {{ created_fileset.results }}"
77
- loop_control :
78
- label : " {{ item.item.stdout }}"
79
49
when : item.changed == true
80
50
81
- - name : Check filesets with its links in the filesystem
82
- command : /usr/lpp/mmfs/bin/mmlsfileset {{ item.item.item.item.filesystem }}
83
- register : linked_filesets
84
- loop : " {{ link_fileset.results }}"
85
- loop_control :
86
- label : " {{ item.item.item.stdout }}"
51
+ - name : Check filesets in file system
52
+ command : /usr/lpp/mmfs/bin/mmlsfileset {{ scale_storage_existing_fs.stdout }}
53
+ register : filesets
54
+ ignore_errors : yes
87
55
88
- - name : Debug the filesets with its link in the filesystem
56
+ - name : Debug the filesets in file system
89
57
debug :
90
- msg : " {{ item.stdout_lines }}"
91
- loop : " {{ linked_filesets.results }}"
92
- loop_control :
93
- label : " {{ item.item.item.item.stdout_lines }}"
58
+ var : filesets.stdout_lines
59
+ ignore_errors : yes
94
60
95
61
run_once : true
62
+ delegate_to : " {{ groups['scale_cluster_admin_nodes'].0 }}"
96
63
97
64
# Setting up quota for filesets
98
65
99
66
- name : Quota allocation for filesets
100
67
block : # # run_once: true
101
68
- name : Check quota is already enabled
102
- shell : " /usr/lpp/mmfs/bin/mmlsfs {{ item.item.item.filesystem }} -Y | grep -w 'quotasAccountingEnabled' | grep -w 'user;group;fileset'"
103
- loop : " {{ created_fileset.results }}"
104
- loop_control :
105
- label : " {{ item.item.stdout }}"
106
- register : check_quota_enabled
107
- failed_when : check_quota_enabled.rc == 2
108
- when : item.item.item.quota > 0
69
+ shell : " /usr/lpp/mmfs/bin/mmlsfs {{ scale_storage_existing_fs.stdout }} -Y | grep -w 'quotasAccountingEnabled' | grep -w 'user;group;fileset'"
70
+ register : enable_quota_check
71
+ loop : " {{ scale_storage[0].filesets | dict2items }}"
72
+ ignore_errors : yes
73
+ failed_when : enable_quota_check.rc == 2
74
+ when : item.value > 0
109
75
110
- - name : Debug to check if quota is already enabled
111
- debug :
112
- msg : >
113
- Quota check for {{ item.item.item.item.filesystem }}:
114
- {{ 'Quota enabled' if item.stdout_lines else 'Quota not enabled' }}
115
- loop : " {{ check_quota_enabled.results }}"
116
- loop_control :
117
- label : " {{ item.item.item.item.filesystem }}"
118
- when : item.item.item.item.quota > 0
76
+ - name : Debug to check it quota is already enabled
77
+ debug :
78
+ msg : " Command to check if quota is already enabled: {{ item.0.cmd }}"
79
+ ignore_errors : yes
80
+ with_together :
81
+ - " {{ enable_quota_check.results }}"
82
+ - " {{ scale_storage[0].filesets | dict2items }}"
83
+ when : item.1.value > 0
119
84
120
85
- name : Run mmchfs command and enable quota
121
- shell : " /usr/lpp/mmfs/bin/mmchfs {{ item.item.item.filesystem }} -Q yes --perfileset-quota"
86
+ shell : " /usr/lpp/mmfs/bin/mmchfs {{ scale_storage_existing_fs.stdout }} -Q yes --perfileset-quota"
122
87
register : enable_quota
123
- loop : " {{ created_fileset.results }}"
124
- loop_control :
125
- label : " {{ item.item.stdout }}"
126
- when : item.item.item.quota > 0 and item.item.rc != 0
88
+ loop : " {{ enable_quota_check.results }}"
89
+ when : item.item.value > 0 and item.rc != 0
127
90
128
91
- name : Run mmcheckquota command
129
- shell : " /usr/lpp/mmfs/bin/mmcheckquota {{ item.item.item.item.filesystem }}"
92
+ shell : " /usr/lpp/mmfs/bin/mmcheckquota {{ scale_storage_existing_fs.stdout }}"
130
93
register : quota_check
131
- loop : " {{ check_quota_enabled.results }}"
132
- loop_control :
133
- label : " {{ item.item.item.item.filesystem }}"
94
+ loop : " {{ enable_quota_check.results }}"
134
95
when : item.changed == true
135
96
136
97
- name : Debug the mmcheckquota command
140
101
loop : " {{ quota_check.results }}"
141
102
when : item.changed == true
142
103
104
+ - name : Debug fileset and quota to be set for it.
105
+ debug :
106
+ msg : " {{ item.key }}: {{ item.value }}GB"
107
+ loop : " {{ scale_storage[0].filesets | dict2items }}"
108
+ ignore_errors : yes
109
+ when : item.value > 0
110
+
143
111
- name : Check if quota for fileset is already set
144
- shell : " /usr/lpp/mmfs/bin/mmlsquota -j {{ item.item.item.fileset_name }} -Y {{ item.item.item.filesystem }} | grep -v HEADER | cut -d ':' -f 13"
112
+ shell : " /usr/lpp/mmfs/bin/mmlsquota -j {{ item.item.item.key }} -Y {{ scale_storage_existing_fs.stdout }} | grep -v HEADER | cut -d ':' -f 13"
145
113
loop : " {{ created_fileset.results }}"
146
114
register : existing_quota_details
147
- loop_control :
148
- label : " {{ item.item.stdout }}"
149
- when : item.item.item.quota > 0
115
+ ignore_errors : yes
116
+ when : item.item.item.value > 0
150
117
151
118
- name : Debug if quota for fileset is already set
152
119
debug :
153
- msg : " Fileset name: {{ item.item.item.item.fileset_name }} Quota allocated: {{ item.item.item.item.quota }} Return Code: {{ item.item.item.rc }}"
120
+ msg : " Fileset name: {{ item.item.item.item.key }} Quota allocated: {{ item.stdout }}"
154
121
loop : " {{ existing_quota_details.results }}"
155
- loop_control :
156
- label : " {{ item.item.item.item.filesystem }}"
157
- when : item.item.item.item.quota > 0
122
+ ignore_errors : yes
123
+ when : item.item.item.item.value > 0
158
124
159
125
- name : Run mmsetquota command
160
- shell : " /usr/lpp/mmfs/bin/mmsetquota {{ item.item.item.item.filesystem }}:{{ item.item.item.item.fileset_name }} --block {{ (item.item.item.item.quota * 0.8) | int }}g:{{ item.item.item.item.quota }}g"
161
- register : set_quota
126
+ shell : " /usr/lpp/mmfs/bin/mmsetquota {{ scale_storage_existing_fs.stdout }}:{{ item.item.item.item.key }} --block {{ (item.item.item.item.value * 0.8) | int }}g:{{ item.item.item.item.value }}g"
162
127
loop : " {{ existing_quota_details.results }}"
163
- loop_control :
164
- label : " {{ item.item.item.item.filesystem }}"
165
- when : item.item.item.item.quota > 0 and item.stdout | int == 0
128
+ register : set_quota
129
+ when : item.item.item.item.value > 0 and item.stdout | int == 0
166
130
167
131
- name : Run mmlsquota command
168
- shell : " /usr/lpp/mmfs/bin/mmlsquota -j {{ item.item.item.item.item.fileset_name }} {{ item.item.item.item.item.filesystem }}"
169
- register : quota_details
132
+ shell : " /usr/lpp/mmfs/bin/mmlsquota -j {{ item.item.item.item.item.key }} {{ scale_storage_existing_fs.stdout }}"
170
133
loop : " {{ set_quota.results }}"
171
- loop_control :
172
- label : " {{ item.item.item.item.item.filesystem }} "
173
- when : item.item.item.item.item.quota > 0
134
+ register : quota_details
135
+ ignore_errors : yes
136
+ when : item.item.item.item.item.value > 0
174
137
175
138
- name : Debug the after setting quota
176
139
debug :
177
140
msg : " {{ item.stdout_lines }}"
178
141
loop : " {{ quota_details.results }}"
179
- loop_control :
180
- label : " {{ item.item.item.item.item.item.filesystem }}"
181
- when : item.item.item.item.item.item.quota > 0
142
+ ignore_errors : yes
143
+ when : item.item.item.item.item.item.value > 0
182
144
183
145
run_once : true
146
+ delegate_to : " {{ groups['scale_cluster_admin_nodes'].0 }}"
184
147
185
148
- name : Update permissions for userinput filesets
186
149
shell : >
187
- find {{ item .defaultMountPoint }}/{{ item.fileset_name }} -type d ! -path '{{ item .defaultMountPoint }}/{{ item.fileset_name }}/.snapshots' -exec chmod 777 {} +
188
- loop : " {{ config_filset }}"
150
+ find {{ scale_storage[0] .defaultMountPoint }}/{{ item.key }} -type d ! -path '{{ scale_storage[0] .defaultMountPoint }}/{{ item.key }}/.snapshots' -exec chmod 777 {} +
151
+ loop : " {{ scale_storage[0].filesets | dict2items }}"
189
152
loop_control :
190
- label : " {{ item.defaultMountPoint }}: {{ item.fileset_name }}"
153
+ label : " {{ item.key }}"
191
154
run_once : true
192
- when : item.fileset_name is defined
155
+ when : scale_storage[0].filesets is defined
0 commit comments