이전 파일인 /etc/fstab 파일에서 /home이 포함된 줄에 "nodev"라는 단어를 추가하고 싶습니다.
UUID=2ea6e2e5-d902-4289-b516-40c175cd481b / ext3 defaults 1 1
UUID=114107f7-5b48-44b7-ad38-09b47b1d6b02 /boot ext3 defaults 1 2
UUID=830757d1-60ad-4f4a-b41a-cad04d309e9d /home ext3 defaults 1 2
UUID=4b309559-2391-4f28-b2f5-38029e278db0 /tmp ext3 defaults 1 2
UUID=1dfc4cab-4de4-491f-8bd0-3503e9027717 /var xfs defaults 0 0
UUID=f0846773-528b-42a2-a0dc-7a736595f7e1 /var/log xfs defaults 0 0
UUID=25ef70f1-7083-4a9b-a64c-970f5d4ad742 /var/log/audit xfs defaults 0 0
UUID=40d2f177-aa5c-43a1-9d85-e21bf2bafb39 swap swap defaults 0 0
이것이 내가 원하는거야
UUID=2ea6e2e5-d902-4289-b516-40c175cd481b / ext3 defaults 1 1
UUID=114107f7-5b48-44b7-ad38-09b47b1d6b02 /boot ext3 defaults 1 2
UUID=830757d1-60ad-4f4a-b41a-cad04d309e9d /home ext3 defaults,nodev 1 2
UUID=4b309559-2391-4f28-b2f5-38029e278db0 /tmp ext3 defaults 1 2
UUID=1dfc4cab-4de4-491f-8bd0-3503e9027717 /var xfs defaults 0 0
UUID=f0846773-528b-42a2-a0dc-7a736595f7e1 /var/log xfs defaults 0 0
UUID=25ef70f1-7083-4a9b-a64c-970f5d4ad742 /var/log/audit xfs defaults 0 0
UUID=40d2f177-aa5c-43a1-9d85-e21bf2bafb39 swap swap defaults 0 0
ansible과 lineinfile 모듈을 사용하여 이 작업을 어떻게 수행할 수 있나요?
답변1
lineinfile
파일 형식이 변경되지 않았고 defaults
일치 항목을 제한하는 것이라고 가정하면 이 작업을 수행할 수 있으며 그 후에 nodev
옵션과 나머지 줄을 추가할 수 있습니다.
- hosts: localhost
tasks:
- lineinfile:
path: /tmp/fstab
regexp: '^(\S+\s+/home\s+\S+\s+defaults)'
line: '\1,nodev 1 2'
backrefs: yes
테스트됨:
$ ansible-playbook lineinfile.yml
$ diff /tmp/fstab.orig /tmp/fstab
마운트 지점에는 다음이 있지만모듈 설치이는 정규식 구문 분석보다 취약할 수 있습니다 fstab
. 반면에 정규식은 UUID가 무엇인지 상관하지 않는 반면, mount
모듈 항목에는 호스트마다 다를 수 있는 특정 항목이 필요할 수 있습니다. 정규식 실패 가능성이 낮지만 0이 아닌 것을 포착하기 위해 적절한 파일 시스템 장치가 설정되어 있는지 테스트하려면 추가 규칙이나 스크립트를 사용해야 할 수도 있습니다.