使用ansible执行“systemctl编辑”?

使用ansible执行“systemctl编辑”?

我最近学会了执行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

我是否缺少一个选项,或者我必须手动执行此操作?

答案1

在 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

希望这可以帮助!

相关内容