Ansible - 줄의 특정 부분에 있는 특정 줄에 단어를 추가합니다.

Ansible - 줄의 특정 부분에 있는 특정 줄에 단어를 추가합니다.


이전 파일인 /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이 아닌 것을 포착하기 위해 적절한 파일 시스템 장치가 설정되어 있는지 테스트하려면 추가 규칙이나 스크립트를 사용해야 할 수도 있습니다.

관련 정보