前のファイル/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
項目にはホストごとに異なる可能性がある特定の項目が必要な場合があります。正規表現の失敗の可能性が低いがゼロ以外を捕捉するために適切なファイルシステムデバイスが設定されているかどうかをテストするには、追加のルールまたはスクリプトを使用する必要があります。