首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Ansible添加fstab选项

使用Ansible添加fstab选项
EN

Stack Overflow用户
提问于 2014-09-22 23:09:28
回答 7查看 26.5K关注 0票数 12

我正在尝试将nodev添加到我的/etc/fstab文件中。我正在使用下面的Ansible命令,但没有成功。我的问题在于正则表达式,我不是正则表达式的专家。

代码语言:javascript
复制
- name: Add nodev to /etc/fstab
  lineinfile:
    dest=/etc/fstab
    backup=yes
    backrefs=yes
    state=present
    regexp='(^/dev[\w/_-]+(\s+(?!nodev)[\w,]+)*)'
    line='\1,nodev'

我正在尝试添加的/etc/fstab中的一行nodev是:

代码语言:javascript
复制
/dev/mapper/ex_sys-ex_home /home /ext4 rw,exec,auto,nouser,sync 1 2
EN

回答 7

Stack Overflow用户

发布于 2014-09-23 01:11:04

虽然这可能不是最优雅的答案,但它对我很有效。

代码语言:javascript
复制
- name: Ensure fstab uses nodev
  mount:
    name: "{{ item.mount }}"
    src: "{{ item.device }}"
    fstype: "{{ item.fstype }}"
    opts: "{{ item.options }},nodev"
    state: present
  with_items: ansible_mounts
  when: item.options.find(",") >= 0 and item.options.find("nodev") == -1
票数 22
EN

Stack Overflow用户

发布于 2018-01-15 17:00:07

受乔的回答的启发,我制作了这个版本,它将在/etc/fstab中的特定行中添加一个选项,如果它还没有出现的话。这也将保留该行已有的任何其他选项。

main.yml

代码语言:javascript
复制
- import_tasks: fstab-opt-present.yml point=/home opt=nodev

fstab-opt-present.yml

代码语言:javascript
复制
- name: '/etc/fstab: Set opt "{{ opt }}" for mount point {{ point }}'
  lineinfile:
    path: /etc/fstab
    backup: yes
    backrefs: yes
    regexp: '^(\S+\s+{{ point }}\s+\S+\s+)(?!(?:\S*,)?{{ opt }}(?:,\S*)?\s+)(\S+)(\s+.+)$'
    line: '\1{{ opt }},\2\3'
  register: fstab

- name: 'If {{ point }} changed, remount'
  command: 'mount {{ point }} -o remount'
  when: fstab.changed

对于构建和测试这类正则表达式,https://regex101.com/是一个非常有用的工具。只需启用"multiline“选项并打开”替换“面板,您甚至可以粘贴到您的/etc/fstab中,看看您的正则表达式将匹配哪些行,以及它将对它们做什么。只需记住在那里测试时使用实数值而不是Ansible变量{{ point }}

票数 8
EN

Stack Overflow用户

发布于 2017-01-16 00:50:32

我们已经开发了一个第三方ansible模块来添加、设置或删除挂载选项。看看这个!

代码语言:javascript
复制
  - mountopts:
      name: /
      option: nodev

https://github.com/Uberspace/ansible-mountopts

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25977410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档