Implement ceph-nfs service

Change-Id: Ia909c62158acbec9d1dd926d45c66ac36e6b4244
Depends-On: I06325d4601128a0b5a2235370fa44012427c29e3
Implements: blueprint ceph-nfs-ganesha
This commit is contained in:
caowei 2017-12-14 15:52:09 +08:00
parent 096746a48b
commit 0bc83d06f3
13 changed files with 100 additions and 0 deletions

View File

@ -382,6 +382,7 @@ enable_central_logging: "no"
enable_ceph: "no"
enable_ceph_mds: "no"
enable_ceph_rgw: "no"
enable_ceph_nfs: "no"
enable_chrony: "no"
enable_cinder: "no"
enable_cinder_backup: "yes"

View File

@ -299,6 +299,9 @@ ceph
[ceph-mgr:children]
ceph
[ceph-nfs:children]
ceph
[ceph-mon:children]
ceph

View File

@ -318,6 +318,9 @@ ceph
[ceph-mgr:children]
ceph
[ceph-nfs:children]
ceph
[ceph-mon:children]
ceph

View File

@ -20,6 +20,10 @@ ceph_mgr_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker
ceph_mgr_tag: "{{ ceph_tag }}"
ceph_mgr_image_full: "{{ ceph_mgr_image }}:{{ ceph_mgr_tag }}"
ceph_nfs_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ ceph_install_type }}-ceph-nfs"
ceph_nfs_tag: "{{ ceph_tag }}"
ceph_nfs_image_full: "{{ ceph_nfs_image }}:{{ ceph_nfs_tag }}"
ceph_osd_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ ceph_install_type }}-ceph-osd"
ceph_osd_tag: "{{ ceph_tag }}"
ceph_osd_image_full: "{{ ceph_osd_image }}:{{ ceph_osd_tag }}"

View File

@ -10,6 +10,7 @@
- "ceph-rgw"
- "ceph-mgr"
- "ceph-mds"
- "ceph-nfs"
- name: Copying over config.json files for services
template:
@ -28,6 +29,8 @@
group: "ceph-mgr"
- name: "ceph-mds"
group: "ceph-mds"
- name: "ceph-nfs"
group: "ceph-nfs"
- name: Copying over ceph.conf
vars:
@ -44,3 +47,4 @@
- "ceph-rgw"
- "ceph-mgr"
- "ceph-mds"
- "ceph-nfs"

View File

@ -12,6 +12,9 @@
- include: start_mgrs.yml
when: inventory_hostname in groups['ceph-mgr']
- include: start_nfss.yml
when: inventory_hostname in groups['ceph-nfs']
- include: bootstrap_osds.yml
when: inventory_hostname in groups['ceph-osd']

View File

@ -36,3 +36,11 @@
when:
- enable_ceph_mds | bool
- inventory_hostname in groups['ceph-mds']
- name: Pulling ceph-nfs image
kolla_docker:
action: "pull_image"
common_options: "{{ docker_common_options }}"
image: "{{ ceph_nfs_image_full }}"
when:
- inventory_hostname in groups['ceph-nfs']

View File

@ -0,0 +1,12 @@
---
- name: Starting ceph-nfs container
kolla_docker:
action: "start_container"
common_options: "{{ docker_common_options }}"
image: "{{ ceph_nfs_image_full }}"
name: "ceph_nfs"
volumes:
- "{{ node_config_directory }}/ceph-nfs/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- "/var/run/dbus:/var/run/dbus"
- "kolla_logs:/var/log/kolla/"

View File

@ -19,3 +19,8 @@
when:
- enable_ceph_mds | bool
- inventory_hostname in groups['ceph-mds']
- include: start_nfss.yml
when:
- enable_ceph_nfs | bool
- inventory_hostname in groups['ceph-nfs']

View File

@ -0,0 +1,24 @@
{
"command": "/usr/bin/ganesha.nfsd -f /etc/ganesha/ganesha.conf",
"config_files": [
{
"source": "{{ container_config_directory }}/ganesha.conf",
"dest": "/etc/ganesha/ganesha.conf",
"owner": "ceph",
"perm": "0600"
},
{
"source": "{{ container_config_directory }}/ceph.conf",
"dest": "/etc/ceph/ceph.conf",
"owner": "ceph",
"perm": "0600"
},
{
"source": "{{ container_config_directory }}/ceph.client.admin.keyring",
"dest": "/etc/ceph/ceph.client.admin.keyring",
"owner": "ceph",
"perm": "0600",
"optional": true
}
]
}

View File

@ -0,0 +1,27 @@
EXPORT
{
Export_id=1;
Path = "/";
Pseudo = /cephfs;
Access_Type = RW;
Protocols = 4;
Transports = TCP;
FSAL {
Name = CEPH;
User_Id = "admin";
}
}
LOG {
Facility {
name = FILE;
destination = "/var/log/kolla/ceph/ceph-nfs.log";
enable = active;
}
}

View File

@ -144,6 +144,7 @@ kolla_internal_vip_address: "10.10.10.254"
#enable_ceph: "no"
#enable_ceph_mds: "no"
#enable_ceph_rgw: "no"
#enable_ceph_nfs: "no"
#enable_chrony: "no"
#enable_cinder: "no"
#enable_cinder_backup: "yes"

View File

@ -0,0 +1,5 @@
---
features:
- |
Implement ceph-nfs service, Nfs-ganesha can be used as a proxy when mounting
ceph file shares.