summaryrefslogtreecommitdiffstats
path: root/roles/openshift_cfme/tasks/storage/nfs.yml
blob: 8151f9fbb1da3712294b65296ec6398c148076df (plain)
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
---
# Tasks to statically provision NFS volumes
# Include if not using dynamic volume provisioning

- name: Note Storage Type - NFS
  debug:
    msg: Setting up NFS storage, openshift_cfme_storage_class is 'nfs'

- name: TODO
  debug:
    msg: TODO - replace hard-coded hostname below with oo_nfs_to_config.0

- name: Set openshift_cfme_nfs_server fact
  when: openshift_cfme_nfs_server is not defined
  set_fact:
    # Hostname/IP of the NFS server. Currently defaults to first master
    openshift_cfme_nfs_server: m01.example.com

# TODO: I was going to try to apply the openshift_storage_nfs role to
# handle this, however, that role is not written to be used by
# itself. Attempting to use it to create CFME exports would just add
# more hard-coded values to the role. That said, we're doing this here
# manually for now until some one comes up with a better solution, or
# the role is made to accept parameters in a more functional way.
#
# I can't really even include the openshift_storage_nfs role in here
# to do basic setup stuff because it would just result in a lot of
# unwanted exports getting set up for the users.

- name: Ensure the /exports/ directory exists
  file:
    path: /exports/
    state: directory
    mode: 0755
    owner: root
    group: root

- name: Ensure exports directory exists
  file:
    path: /etc/exports.d/
    state: directory

# # TODO - with_items should be passed a list of storage configs for the
# # desired CFME setup. This might mean a local or remote nfs server, as
# # well as fully qualified filesystem paths.
# - name: Ensure export directories exist
#   file:
#     path: "{{ item.storage.nfs.directory }}/{{ item.storage.volume.name }}"
#     state: directory
#     mode: 0777
#     owner: nfsnobody
#     group: nfsnobody
#   with_items:

- name: Enable and start services
  systemd:
    name: nfs-server
    state: started
    enabled: yes
  register: start_result

- set_fact:
    nfs_service_status_changed: "{{ start_result | changed }}"

- name: restart nfs-server
  systemd:
    name: nfs-server
    state: restarted
  when: nfs_service_status_changed | default(false)
  notify:
    - "OpenShift-CFME - Reload NFS Exports"

######################################################################
# TODO: Move the export directory and PV creation into individual
# tasks under the respective server/database task files.

# # - name: Ensure the miq-pv0X export directories exist
# #   file:
# #     path: "/exports/{{ item }}"
# #     state: directory
# #     mode: 0775
# #     owner: nfsnobody
# #     group: nfsnobody
# #   with_items: "{{ openshift_cfme_pv_exports }}"

# # - name: Ensure the NFS exports for CFME PVs exist
# #   copy:
# #     src: openshift_cfme.exports
# #     dest: /etc/exports.d/openshift_cfme.exports
# #   register: nfs_exports_updated


# # Create the required CFME PVs. Check out these online docs if you
# # need a refresher on includes looping with items:
# # * http://docs.ansible.com/ansible/playbooks_loops.html#loops-and-includes-in-2-0
# # * http://stackoverflow.com/a/35128533

# # TODO: Handle the case where a PV template is updated in
# # openshift-ansible and the change needs to be landed on the managed
# # cluster.

# # - include: create_pvs.yml
# #   with_items: "{{ openshift_cfme_pv_data }}"