使用Ansible在fstab中双重输入

问题描述 投票:0回答:1

我想要:

  1. mount / dev / xvdb1到/ mnt / newvar
  2. 将文件从/ var /复制到/ mnt / newvar
  3. mount / dev / xvdb1到/ var

但是当我用ansible做这个时,我在fstab中有两个条目,它应该替换前一个,这个问题的任何解决方案?:

UUID = 7698aac5-0a24-333f-a8c3-b76349gec0e2 / mnt / newvar ext4默认值,noauto 0 0

UUID = 7698aac5-0a24-333f-a8c3-b76349gec0e2 / var ext4默认值0 2

- name: "Get UUID for partition"
  command: "lsblk -no UUID /dev/xvdb1"
  register: with_output

- name: Mount /mnt/newvar to /dev/xvdb1
  mount:
    path: "{{ newvar_dir }}"
    src: "UUID={{ item }}"
    fstype: "{{ volume_filesystem_type }}"
    opts: "defaults,noauto"
    state: mounted
  with_items: 
    - "{{ with_output.stdout_lines }}"

- name: copy files from /var/* to /mnt/newvar 
  synchronize:
    src: /var/
    dest: "{{ newvar_dir }}"
    recursive: yes
    archive: yes
    delete: False
  delegate_to: "{{ vault_ip }}"

- name: Mount /dev/xvdb1 to /var
  mount:
    path: /var
    src: "UUID={{ item }}"
    fstype: "{{ volume_filesystem_type }}"
    opts: defaults
    state: mounted
    passno: 2
  with_items: 
    - "{{ with_output.stdout_lines }}"
ansible ansible-2.x
1个回答
0
投票

当你安装相同的UUID两次被添加到/etc/fstab两次,因为mount ansible模块的工作方式如下: enter image description here

所以它总是会修改/etc/fstab,除非你使用absent,但它不是你的情况

这仍在讨论中: https://github.com/ansible/ansible/issues/48134

我想你可以使用shell模块,如果你只想安装

例:

- shell: |
    mount /dev/xvdb1 /var
© www.soinside.com 2019 - 2024. All rights reserved.