如何启用systemd';s——通过Ansible在RedHat上的用户功能?

如何启用systemd';s——通过Ansible在RedHat上的用户功能?,ansible,daemon,systemd,rhel7,Ansible,Daemon,Systemd,Rhel7,我们需要允许非root用户帐户操作自己的服务:启动时启动、停止、(重新)启动、查询状态。。。用户将提供他们自己的.service文件--我们只需要告诉systemd以尊重这些 我相信,这是通过运行systemd--user来实现的,我们需要使用Ansible在数十台RHEL7机器上实现这一点 是否可以使用以下方法完成?请举例说明 如果没有,我们应该在shell或命令模块中使用哪些命令?谢谢 我认为您的问题不是使用systemd创建服务,而是授予用户或组管理服务的权限。因此,您应该编辑sudoer

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

我相信,这是通过运行
systemd--user
来实现的,我们需要使用Ansible在数十台RHEL7机器上实现这一点

是否可以使用以下方法完成?请举例说明


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

我认为您的问题不是使用systemd创建服务,而是授予用户或组管理服务的权限。因此,您应该编辑sudoers文件以提供这些权限。我从中提取了这个示例,希望您能理解

%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'

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

您链接到的文档似乎已经回答了这个问题(特别是关于
范围
选项的文档)。文档的哪些部分不清楚?也许,我只需要一个例子?你能提供一个吗,@larsks?给我一个恰当的回答,我会欣然接受的!谢谢从这里开始,您将看到一个示例。@rcatellcastell,在该链接中没有一个对
systemd
-模块的引用。。。这一切似乎都是关于以root用户身份启动服务(Oracle),而不是以普通用户身份启动服务。谢谢。此方法允许用户将某些预先确定的服务集作为根操作(使用
sudo
)。我想要的是让用户能够操作他们自己的任何服务——事先不知道的完整列表。我已经学会了如何在基于RHEL的系统上实现这一点,不久将回答我自己的问题。