在/ etc / exports文件中添加条目后,任何人都指导我使用Ansible导出文件系统...
答案 0 :(得分:0)
如果是Linux,则可能要重用我的Ansible Galaxy角色linux_postinstall任务nfsd。
创建/ etc / exports
- name: "nfsd: Configure exports"
template:
src: "exports.j2"
dest: "/etc/exports"
owner: "root"
group: "root"
mode: "0644"
notify: reload nfsd
带有模板exports.j2
# {{ ansible_managed }}
{% for item in lp_nfsd_exports %}
{{ item }}
{% endfor %}
并使用handler“重新加载nfsd”重新加载nfsd
- name: reload nfsd
systemd: name="{{ lp_nfsd_reload_service }}" state="reloaded"
when: lp_nfsd
答案 1 :(得分:0)
我使用如下简单命令。
但请注意,它不是幂等的(可以多次应用而不改变初始应用后的结果)。每次 playbook 运行时都会执行任务。
最终任务(以下剧本中的方式)就是您要寻找的(exportfs -rav)。
- hosts: all
name: Make changes to storage node.
become: yes
tasks:
- name: Install NFS Server.
apt:
name: nfs-kernel-server
state: present
- name: Ensure volumes directory exists
file:
path: /export/volumes
state: directory
mode: 0777
- name: Ensure pod inside volumes directory exists
file:
path: /export/volumes/pod
state: directory
mode: 0777
- name: Ensure required entries are made to hosts file. # Notes 1232
lineinfile:
path: /etc/exports
state: present
line: "{{ item }}"
with_items:
- '/export/volumes *(rw,no_root_squash,no_subtree_check,insecure)'
- name: Restart nfs-kernel-server.service
ansible.builtin.systemd:
daemon_reload: yes
state: started
name: nfs-kernel-server.service
- name: Re-export the share
command: exportfs -rav