Guillaume Coré
2020-03-11 1d970fbaa4bd88c9d094d9587db59fdf9cd0239a
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
---
- name: Test if device was already mapped
  stat:
    path: "/var/preserve/{{ disk_map_device.name }}"
  changed_when: false
  register: rfile
 
- when: not rfile.stat.exists
  block:
    - name: Map device using LUN
      changed_when: false
      shell: >-
        sg_map -x
        | awk '($2 == 5 && $5 == {{ disk_map_device.lun }}) {print $7}'
      register: result
 
    - name: Volume to map
      debug:
        msg: "{{ disk_map_device.name }}  (LUN={{ disk_map_device.lun }}) : {{ result.stdout }}"
 
    - name: Fail if volume not found
      fail:
      when: result.stdout == ''
 
    - name: Set fact using variable name
      set_fact: {"{{ disk_map_device.name }}": "{{ result.stdout }}"}
      when: result is succeeded
 
    - name: Write down device for idempotency
      copy:
        dest: /var/preserve/{{ disk_map_device.name }}
        content: "{{ result.stdout }}"
        force: no
      when: result is succeeded
 
# idempotency
 
- when: rfile.stat.exists
  block:
    - name: get device_name from file (from previous run)
      slurp:
        src: /var/preserve/{{ disk_map_device.name }}
      register: slurp_result
 
    - name: Set fact using variable name
      set_fact: {"{{ disk_map_device.name }}": "{{ slurp_result.content|b64decode }}"}
      when: slurp_result is succeeded