たとえば、構成ファイルを編集するときには、等しく更新するのが/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