Как отключить файл подкачки, настроенный systemd, через Ansible?

Если я правильно понимаю, это должно работать. Обратите внимание, что «*. *» соответствует только файлам с точкой в ​​имени (, в отличие от Windows, где он соответствует всем файлам ).

#!/bin/sh
INBOX=/dropbox/dev/inbox
OUTBOX=/dropbox/dev/outbox
for d in $(cat /dropbox/script/DirList.txt); do
    if [ -d $INBOX/$d ]; then
        mkdir -p $OUTBOX/$d
        mv $INBOX/$d/* $OUTBOX/$d/
    fi
done
1
26.02.2021, 22:11
1 ответ

Вы можете позволить systemd делать свою работу по умолчанию, а затем сразу после этого сразу же отменить ее с другим модулем systemd.

Если вы проверите с помощью systemd show swapfile.swap, вы увидите, что все, что делает устройство, это запускает swaponдля этого файла. Когда вы вводите swapoffвручную, подкачка снова появится при следующей загрузке.

Запуск swapoffсразу после swaponзаймет всего долю секунды, потому что нечего возвращать с диска в память. Однако вы должны убедиться, что запускаетеswapoffпосле swapon, и вы можете указать systemd сделать это с помощью After=local-fs.target.

Поместите файл вашего модуля в качестве шаблона j2 с именем noswap.service.j2в каталог templates/для вашей книги воспроизведения или роли:

{{ ansible_managed|comment }}

[Unit]
Description=Disable swapfile
Documentation=man:swapon(8) man:systemd.swap(5)
After=local-fs.target

[Service]
Type=oneshot
User=root
ExecStart=/usr/sbin/swapoff -a

[Install]
WantedBy=default.target

Включите что-то подобное в свой сценарий или роль:

---
- name: Your playbook

  tasks:
    - name: Write noswap systemd service config file
      template:
        src: noswap.service.j2
        dest: /etc/systemd/system/noswap.service
        owner: root
        group: root
        mode: 0644
      notify: Enable noswap service

  handlers:
    - name: Enable noswap service
      systemd:
        name: noswap
        state: started
        enabled: true
        daemon_reload: true

После первого раза служба будет запущена во время загрузки, поэтому state: startedдолжен предотвращать ее повторный запуск при каждом запуске ansible.

1
18.03.2021, 22:28

Теги

Похожие вопросы