構成ファイルの等価編集

構成ファイルの等価編集

たとえば、構成ファイルを編集するときには、等しく更新するのが/etc/sysctl.conf便利な場合がよくあります。つまり、スクリプトを複数回実行すると、構成変更の項目が複数表示されません。

実際、このような状況が発生したときに、ansibleマルチレベルプレイブックで上記のファイルを編集する必要がありました。しかし、問題は、後で失敗した場合はプレイブックを再実行する必要があるということです。言い換えれば、更新コマンドが複数回実行され、更新が等しくない場合、重複が発生する可能性があります。

もしそうなら、問題はこれらの設定ファイルをすばらしい方法で更新する方法です。

一例いいえ- 重要なアップデートは次のとおりです。

echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf

またはアンサーブルで:

  - name: Set swappiness setting
    shell: echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf

理想的には、変数の値が元々設定されている場合は、新しい値で置き換える必要があります。

答え1

シェルコマンドを実行する代わりに、次を使用します。sysctl基準寸法

可能であれば使用を避けてくださいshell

- ansible.posix.sysctl:
    name: vm.swappiness
    value: '10'
    state: present

答え2

私は別の答えを見つけました。https://stackoverflow.com/a/31632883/376258、方向http://augeas.net/ご質問で好奇心旺盛な Google 検索を促してくれてありがとう。 Ubuntu 20.04で動作させる方法は次のとおりです。

sudo apt install libaugeas-dev
virtualenv -p /usr/bin/python3.10 venv; . venv/bin/activate.fish
pip install git+https://github.com/hercules-team/python-augeas
sudo venv/bin/python3 -c """
import augeas
aug = augeas.Augeas()
aug.set('/files/etc/sysctl.conf/fs.inotify.max_inotify_watches', '44194306')
aug.set('/files/etc/sysctl.conf/fs.inotify.max_user_watches', '44194306')
aug.save()
"""

そして以下を確認してください:

cat /etc/sysctl.conf | grep inotify

関連情報