【问题标题】:How to enable systemd's --user functionality on RedHat via Ansible?如何通过 Ansible 在 RedHat 上启用 systemd 的 --user 功能?
【发布时间】:2020-08-08 02:25:10
【问题描述】:

我们需要允许非 root 用户帐户操作他们自己的服务:启动时启动、停止、(重新)启动、查询状态...用户将提供他们自己的服务.service 文件——我们只需要告诉 systemd 尊重这些文件...

我相信,这是通过运行 systemd --user 来完成的,我们需要在数十台使用 Ansible 的 RHEL7 机器上执行此操作。

可以使用systemd module 完成吗?请举个例子。

如果不是,我们应该在 shell 模块或命令模块中使用哪些命令?谢谢!

【问题讨论】:

  • 您链接的文档似乎已经回答了这个问题(特别是围绕scope 选项的文档)。文档的哪些部分不清楚?
  • 也许,我只需要一个例子?你能提供一个吗,@larsks?让它成为一个正确的答案,我很乐意接受它!谢谢!
  • line开始你会发现一个例子。
  • @rcastellcastell,在那个链接上没有一个对 systemd-module 的引用......而且这一切似乎都是关于以 root 身份启动服务(Oracle)——而不是作为普通用户。

标签: ansible daemon systemd rhel7


【解决方案1】:

我认为您的问题不是关于使用 systemd 创建服务,您的问题更多是关于授予用户或组管理服务的权限。因此,您应该编辑 sudoers 文件以提供这些权限。我从here 中提取了这个例子,希望对你来说很清楚。

%webteam cms051=/usr/bin/systemctl restart httpd.service
%webteam cms051=/usr/bin/systemctl stop httpd.service
%webteam cms051=/usr/bin/systemctl start httpd.service 
%webteam cms051=/usr/bin/systemctl status httpd.service

我可以在这里添加的小价值是建议您可以使用模板自动执行此配置来修改文件。在这里,我有一个示例,前段时间用于修改 sudoers 用于其他目的,所以我认为您将能够使用上面的示例创建自己的模板。

模板

    {{ xyz_user }} ALL = ({{ oracle_user }}) NOPASSWD: ALL

任务

    - name: "Creating sudoers file for {{ xyz_user }} user"
      template:
        src: templates/xyzsudoers.j2
        dest: /etc/sudoers.d/xyzsudoers
        mode: 0440
        validate: '/usr/sbin/visudo -cf %s'

重要的是,我创建的任务是基于这个惊人的post

【讨论】:

  • 谢谢。此方法允许用户以 root 身份(使用sudo)操作某些——预定的——服务集。我一直在寻找的是让用户能够操纵他们自己的任何服务——完整的列表事先不知道。我已经学会了如何在基于 RHEL 的系统上执行此操作,很快就会回答我自己的问题。
猜你喜欢
  • 1970-01-01
  • 2021-01-08
  • 2011-04-18
  • 1970-01-01
  • 2013-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多