예를 들어 구성 파일을 편집할 때 /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 검색을 촉발해 주셔서 감사합니다. 우분투 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