Linux

用ansible執行“systemctl edit”?

  • February 21, 2022

我最近學會了執行sudo systemctl edit <SERVICE>而不是編輯下的服務文件/lib/systemd/...

問題是,我想用 ansible 來做這件事。

systemd 模組或服務模組似乎都不可能:

https://docs.ansible.com/ansible/2.10/collections/ansible/builtin/systemd_module.html

https://docs.ansible.com/ansible/2.10/collections/ansible/builtin/service_module.html

我錯過了一個選項,還是我必須手動執行此操作?

在 systemd 上systemctl edit <service>,將創建一個插入目錄到/etc/systemd/system/<service>.service.d. 這就是我所做的,從一個角色中脫穎而出:

# file module will create a directory if missing
- name: Create <service>.service.d directory
 file:
   path: /etc/systemd/system/<service>.service.d/
   state: directory
   owner: root
   group: root
   mode: 0755

# template module will create a file
- name: Copy <service>.service drop-in
 template:
   src: <service>.service.j2
   dest: /etc/systemd/system/<service>.service.d/override.conf
   owner: root
   group: root
   mode: 0644
 notify: daemon-reload # Don't forget to do `systemctl daemon-reload`!

這可以通過when和/或group_vars如果您有非同質設置進行擴展。

希望這可以幫助!

編輯:修正錯別字,感謝@KdgDev,@trebor 的輸入

引用自:https://unix.stackexchange.com/questions/657226