Linux
用ansible執行“systemctl edit”?
我最近學會了執行
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 的輸入