]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
nfs: several fixes 1923/head
authorSébastien Han <seb@redhat.com>
Tue, 19 Sep 2017 14:19:14 +0000 (16:19 +0200)
committerSébastien Han <seb@redhat.com>
Thu, 21 Sep 2017 22:37:32 +0000 (00:37 +0200)
- move the file fetch/push to the existing task
- rename the include
- generate the ganesha template from ansible
- re-arrange role structure
- re-use tasks for non-container and container
- configure keys for non-container and container
- fix rgw container key collection;

Signed-off-by: Sébastien Han <seb@redhat.com>
12 files changed:
group_vars/nfss.yml.sample
roles/ceph-nfs/defaults/main.yml
roles/ceph-nfs/tasks/create_rgw_nfs_user.yml [new file with mode: 0644]
roles/ceph-nfs/tasks/docker/copy_configs.yml
roles/ceph-nfs/tasks/docker/copy_ganesha_configs.yml [deleted file]
roles/ceph-nfs/tasks/docker/main.yml
roles/ceph-nfs/tasks/docker/start_docker_nfs.yml
roles/ceph-nfs/tasks/main.yml
roles/ceph-nfs/tasks/pre_requisite.yml
roles/ceph-nfs/tasks/start_nfs.yml [new file with mode: 0644]
roles/ceph-rgw/tasks/docker/copy_rgw_configs.yml [deleted file]
roles/ceph-rgw/tasks/docker/main.yml

index 03b8772537b57be2ede7093a2cd5f5fb8a2b8a0f..eb0aa08a67b66c029f2d3c92aec4fa3ebe97ebfe 100644 (file)
@@ -91,7 +91,7 @@ dummy:
 # DOCKER #
 ##########
 
-#ceph_docker_image: "ceph/ganesha"
+#ceph_docker_image: "ceph/daemon"
 #ceph_docker_image_tag: latest
 #ceph_nfs_docker_extra_env:
 #ceph_config_keys: [] # DON'T TOUCH ME
index 320879ed3f43496e0daa7af0927fc1d14ab5b63c..6025d7e311dca62198f99aa5fce288de53882b25 100644 (file)
@@ -83,7 +83,7 @@ rgw_client_name: client.rgw.{{ ansible_hostname }}
 # DOCKER #
 ##########
 
-ceph_docker_image: "ceph/ganesha"
+ceph_docker_image: "ceph/daemon"
 ceph_docker_image_tag: latest
 ceph_nfs_docker_extra_env:
 ceph_config_keys: [] # DON'T TOUCH ME
diff --git a/roles/ceph-nfs/tasks/create_rgw_nfs_user.yml b/roles/ceph-nfs/tasks/create_rgw_nfs_user.yml
new file mode 100644 (file)
index 0000000..3c24fec
--- /dev/null
@@ -0,0 +1,29 @@
+---
+- name: set_fact docker_exec_cmd_nfs
+  set_fact:
+    docker_exec_cmd_nfs: "docker exec ceph-mon-{{ hostvars[groups[mon_group_name][0]]['ansible_hostname'] }}"
+  when:
+    - containerized_deployment
+
+- name: create rgw nfs user
+  command: "{{ docker_exec_cmd_nfs }} radosgw-admin --cluster {{ cluster }} user create --uid={{ ceph_nfs_rgw_user }} --display-name='RGW NFS User'"
+  register: rgwuser
+  delegate_to: "{{ groups[mon_group_name][0] }}"
+  when:
+    - nfs_obj_gw
+
+- name: set_fact ceph_nfs_rgw_access_key
+  set_fact:
+    ceph_nfs_rgw_access_key: "{{ (rgwuser.stdout | from_json)['keys'][0]['access_key'] }}"
+  delegate_to: "{{ groups[mon_group_name][0] }}"
+  when:
+    - nfs_obj_gw
+    - ceph_nfs_rgw_access_key is not defined
+
+- name: set_fact ceph_nfs_rgw_secret_key
+  set_fact:
+    ceph_nfs_rgw_secret_key: "{{(rgwuser.stdout | from_json)['keys'][0]['secret_key']}}"
+  delegate_to: "{{ groups[mon_group_name][0] }}"
+  when:
+    - nfs_obj_gw
+    - ceph_nfs_rgw_secret_key is not defined
index 9686111b15b6923094476194bcb40727d73321d3..9985d052b2a150d95505bfd55ed05c1b33824afa 100644 (file)
@@ -3,7 +3,7 @@
   set_fact:
     ceph_config_keys:
       - /etc/ceph/{{ cluster }}.client.admin.keyring
-      - /var/lib/ceph/radosgw/keyring
+      - /var/lib/ceph/bootstrap-rgw/{{ cluster }}.keyring
 
 - name: stat for config and keys
   local_action: stat path={{ fetch_directory }}/{{ fsid }}/{{ item }}
@@ -25,7 +25,8 @@
   with_together:
     - "{{ ceph_config_keys }}"
     - "{{ statconfig.results }}"
-  when: item.1.stat.exists == true
+  when:
+    - item.1.stat.exists == true
 
 - name: set selinux permissions
   shell: |
@@ -34,4 +35,5 @@
     - "{{ ceph_conf_key_directory }}"
     - /var/lib/ceph
   changed_when: false
-  when: sestatus.stdout != 'Disabled'
+  when:
+    - sestatus.stdout != 'Disabled'
diff --git a/roles/ceph-nfs/tasks/docker/copy_ganesha_configs.yml b/roles/ceph-nfs/tasks/docker/copy_ganesha_configs.yml
deleted file mode 100644 (file)
index 50de38e..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
----
-- name: set config paths
-  set_fact:
-    nfs_config_keys:
-      - /etc/ganesha/ganesha.conf
-
-- name: stat for config and keys
-  local_action: stat path={{ fetch_directory }}/{{ fsid }}/{{ item }}
-  with_items: "{{ nfs_config_keys }}"
-  changed_when: false
-  become: false
-  failed_when: false
-  always_run: true
-  register: statconfig
-
-- name: try to fetch config and keys
-  copy:
-    src: "{{ fetch_directory }}/{{ fsid }}/{{ item.0 }}"
-    dest: "{{ item.0 }}"
-    owner: root
-    group: root
-    mode: 0644
-  changed_when: false
-  with_together:
-    - "{{ nfs_config_keys }}"
-    - "{{ statconfig.results }}"
-  when: item.1.stat.exists == true
-
-- name: push ganesha files to the ansible server
-  fetch:
-    src: "{{ item.0 }}"
-    dest: "{{ fetch_directory }}/{{ fsid }}/{{ item.0 }}"
-    flat: yes
-  with_together:
-    - "{{ nfs_config_keys }}"
-    - "{{ statconfig.results }}"
-  when: item.1.stat.exists == false
index dbf56263bd6fb3076da45c31d1b121b525964de1..f05ce4ae94908b4420153d7c6cc2994125ae8697 100644 (file)
@@ -1,11 +1,3 @@
 ---
-- name: include copy_configs.yml
-  include: copy_configs.yml
-
-- name: copy_ganesha_configs.yml
-  include: copy_ganesha_configs.yml
-  when: not containerized_deployment_with_kv
-
-- name: start_docker_nfs.yml
+- name: include start_docker_nfs.yml
   include: start_docker_nfs.yml
-
index cdf9bb0c54a3363a4c4eabf280c6b05ab7f0f69b..45bc18eb250fb2f263afabd8deb3dd10f08fa268 100644 (file)
@@ -8,22 +8,11 @@
     group: "root"
     mode: "0644"
 
-- name: enable systemd unit file for nfs instance
-  shell: systemctl enable ceph-nfs@{{ ansible_hostname }}.service
-  failed_when: false
-  changed_when: false
-  when: ceph_nfs_enable_service
-
-- name: reload systemd unit files
-  shell: systemctl daemon-reload
-  changed_when: false
-  failed_when: false
-  when: ceph_nfs_enable_service
-
 - name: systemd start nfs container
-  service:
-    name: ceph-nfs@{{ ansible_hostname }}
+  systemd:
+    name: "ceph-nfs@{{ ansible_hostname }}.service"
     state: started
     enabled: yes
-  changed_when: false
-  when: ceph_nfs_enable_service
+    daemon_reload: yes
+  when:
+    - ceph_nfs_enable_service
index f2b42763cab57e6aa5a0fce2017182fc1d7050ca..fe70f3c40e13ccafdf19a78247499902c3f57714 100644 (file)
@@ -1,8 +1,18 @@
 ---
 - name: include pre_requisite.yml
   include: pre_requisite.yml
-  when: not containerized_deployment
+  when:
+    - not containerized_deployment
+
+- name: include create_rgw_nfs_user.yml
+  include: create_rgw_nfs_user.yml
+
+- name: include start_nfs.yml
+  include: start_nfs.yml
+  when:
+    - not containerized_deployment
 
 - name: include docker/main.yml
   include: docker/main.yml
-  when: containerized_deployment
+  when:
+    - containerized_deployment
index 9d4bb2f0da205b5bc6e82f9751a7f1548d16b393..afe1c7094bfe72ef1ee78e3112fe0b7715591a0b 100644 (file)
@@ -1,5 +1,5 @@
 ---
-- name: create rados gateway directories
+- name: create rados gateway and ganesha directories
   file:
     path: "{{ item }}"
     state: directory
@@ -11,6 +11,8 @@
     - /var/lib/ceph/radosgw
     - /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}
     - "{{ rbd_client_admin_socket_path }}"
+    - /var/lib/nfs/ganesha
+    - /var/run/ganesha
   when:
     - nfs_obj_gw
 
   when:
     - cephx
 
-- name: create rgw nfs user
-  command: radosgw-admin --cluster {{ cluster }} user create --uid={{ ceph_nfs_rgw_user }} --display-name="RGW NFS User"
-  register: rgwuser
-  delegate_to: "{{ groups[mon_group_name][0] }}"
-  when:
-    - nfs_obj_gw
-
-- name: set_fact ceph_nfs_rgw_access_key
-  set_fact:
-    ceph_nfs_rgw_access_key: "{{ (rgwuser.stdout | from_json)['keys'][0]['access_key'] }}"
-  delegate_to: "{{ groups[mon_group_name][0] }}"
-  when:
-    - nfs_obj_gw
-    - ceph_nfs_rgw_access_key is not defined
-
-- name: set_fact ceph_nfs_rgw_secret_key
-  set_fact:
-    ceph_nfs_rgw_secret_key: "{{(rgwuser.stdout | from_json)['keys'][0]['secret_key']}}"
-  delegate_to: "{{ groups[mon_group_name][0] }}"
-  when:
-    - nfs_obj_gw
-    - ceph_nfs_rgw_secret_key is not defined
-
-- name: create nfs gateway directories
-  file:
-    path: "{{ item }}"
-    state: directory
-    owner: "ceph"
-    group: "ceph"
-    mode: "0755"
-  with_items:
-    - /var/lib/nfs/ganesha
-    - /var/run/ganesha
-
-- name: generate ganesha configuration file
-  action: config_template
-  args:
-    src: "{{ lookup('env', 'ANSIBLE_ROLES_PATH') | default (playbook_dir + '/roles', true) }}/ceph-nfs/templates/ganesha.conf.j2"
-    dest: /etc/ganesha/ganesha.conf
-    owner: "root"
-    group: "root"
-    mode: "0644"
-    config_type: ini
-  notify:
-    - restart ceph nfss
-
 - name: change ownership on /var/log/ganesha
   file:
     path: '/var/log/ganesha'
     owner: 'root'
     group: 'root'
     mode: '0755'
-
-- name: start nfs gateway service
-  service:
-    name: nfs-ganesha
-    state: started
-    enabled: yes
-  when: ceph_nfs_enable_service
diff --git a/roles/ceph-nfs/tasks/start_nfs.yml b/roles/ceph-nfs/tasks/start_nfs.yml
new file mode 100644 (file)
index 0000000..0251314
--- /dev/null
@@ -0,0 +1,20 @@
+---
+- name: generate ganesha configuration file
+  action: config_template
+  args:
+    src: "{{ lookup('env', 'ANSIBLE_ROLES_PATH') | default (playbook_dir + '/roles', true) }}/ceph-nfs/templates/ganesha.conf.j2"
+    dest: /etc/ganesha/ganesha.conf
+    owner: "root"
+    group: "root"
+    mode: "0644"
+    config_type: ini
+  notify:
+    - restart ceph nfss
+
+- name: start nfs gateway service
+  service:
+    name: nfs-ganesha
+    state: started
+    enabled: yes
+  when:
+    - ceph_nfs_enable_service
diff --git a/roles/ceph-rgw/tasks/docker/copy_rgw_configs.yml b/roles/ceph-rgw/tasks/docker/copy_rgw_configs.yml
deleted file mode 100644 (file)
index cda9f78..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
----
-- name: set_fact rgw_config_keys
-  set_fact:
-    rgw_config_keys:
-      - "/var/lib/ceph/radosgw/{{ ansible_hostname }}/keyring"
-  when:
-    - nfs_obj_gw
-
-- name: wait for rgw keyring
-  wait_for:
-    path: "/var/lib/ceph/radosgw/{{ ansible_hostname }}/keyring"
-  when:
-    - nfs_obj_gw
-    - inventory_hostname == groups[rgw_group_name][0]
-
-- name: stat for config and keys
-  local_action: stat path={{ fetch_directory }}/{{ fsid }}/{{ item }}
-  with_items: "{{ rgw_config_keys }}"
-  changed_when: false
-  become: false
-  failed_when: false
-  always_run: true
-  register: statconfig
-  when:
-    - nfs_obj_gw
-    - inventory_hostname == groups[rgw_group_name][0]
-
-- name: push ceph files to the ansible server
-  fetch:
-    src: "{{ item.0 }}"
-    dest: "{{ fetch_directory }}/{{ fsid }}/var/lib/ceph/radosgw/keyring"
-    flat: yes
-  with_together:
-    - "{{ rgw_config_keys }}"
-    - "{{ statconfig.results }}"
-  when:
-    - nfs_obj_gw
-    - item.1.stat.exists == false
-    - inventory_hostname == groups[rgw_group_name][0]
index 80bcb01096ee6f472741b8398d0384781cf942c7..bad0b065e3e54a0374851626d25ae12ce2776fbd 100644 (file)
@@ -4,6 +4,3 @@
 
 - name: include start_docker_rgw.yml
   include: start_docker_rgw.yml
-
-- name: include copy_rgw_configs.yml
-  include: copy_rgw_configs.yml