使用Ansible模块导出文件系统(/ etc / exports)?

时间:2018-12-31 11:40:42

标签: ansible

在/ etc / exports文件中添加条目后,任何人都指导我使用Ansible导出文件系统...

2 个答案:

答案 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