如何解决在 EC2 实例中未通过状态检查的 Ansible 挂载模块更新 fstab
这是我的 Ansible 任务 -
在 EC2 实例中挂载一个带有外部 ebs 卷的目录以创建 Amazon EBS volume available。
- name: Create Data directory #1
file:
path: "{{ data_directory }}/"
state: directory
- name: Get the EBS volume/block #2
shell: lsblk -x SIZE | grep disk | tail -1 | awk '{print $1}'
register: ebs_nvme_block
check_mode: false
- name: Printout the block #3
debug:
var: ebs_nvme_block.stdout_lines[0]
- name: Create a xfs filesystem on EBS volume #4
filesystem:
fstype: xfs
dev: "/dev/{{ ebs_nvme_block.stdout_lines[0] }}"
ignore_errors: "{{ ansible_check_mode }}"
- name: Get UUID of ebs volume #5
shell: lsblk -o +UUID | grep "{{ ebs_nvme_block.stdout_lines[0] }}" | awk '{print $NF}'
register: uuid
check_mode: false
- name: Print UUID #6
debug:
var: uuid.stdout
- name: Mount the ebs volume with /data directory #6
mount:
backup: yes
path: "{{ data_directory }}"
src: "/dev/{{ ebs_nvme_block.stdout_lines[0] }}" # or use UUID={{ uuid.stdout }}
state: mounted
opts: defaults,nofail
dump: 0
passno: 2
fstype: xfs
ignore_errors: "{{ ansible_check_mode }}"
现在这个 #6 代码块安装并创建 /etc/fstab
的备份并更新如下
LABEL=cloudimg-rootfs / ext4 defaults,discard 0 0
/dev/nvme1n1 /data xfs defaults,nofail 0 2
如果我使用 UUID
挂载,那么 /etc/fstab
被修改为
LABEL=cloudimg-rootfs / ext4 defaults,discard 0 0
UUID=XXXXXXXXXXXXXXXX /data xfs defaults,nofail 0 0
#7 块代码将 /etc/fstab
更新为
LABEL=cloudimg-rootfs / ext4 defaults,discard 0 0
UUID={{ uuid.stdout }} {{ data_directory }} xfs defaults,nofail 0 2
一切正常。挂载时我没有收到任何错误,但无论 EC2 实例出现状态检查错误 [1/2 checks passed
] 的原因是什么。
- 第一个问题是 - 是否有任何格式的
/etc/fstab
文件。值之间是单空格还是双空格? - 从这里How fstab works和Make an Amazon EBS volume available for use on Linux,我得到的是
- 字段之间有 2 个空格。当 Ansible 修改
fstab
文件时,它不会创建任何额外空间。
UUID=aebf131c-6957-451e-8d34-ec978d9581ae /data xfs defaults,nofail 0 2
UUID=aebf131c-6957-451e-8d34-ec978d9581ae /data xfs defaults,nofail 0 2
[Ansible 修改]
- 它对状态检查有影响吗?
- Ansible 将回溯文件创建为
fstab.DATETIME~
。同样的问题,这个备份文件有没有状态检查错误的影响。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。