什么用户可以将我的命令作为?

什么用户可以将我的命令作为?

背景

我的问题似乎很简单,但它变得越来越复杂得很快。

基本上,我真的厌倦了手动维护我的服务器(在后台尖叫) ,我决定是时候找到一种使服务器管理员更加宜居的方式。 那是当我发现可以安全的。 好吗? 确保为所有我想要自动化的一切制作bash脚本(更响亮的尖叫声)

有什么问题?

我有很多麻烦找出什么用户我的ansible手册会运行某些事情。 我还需要指定什么用户特定的任务运行的能力。 这里有一些具体的用例:

作为另一个用户克隆回购:

我的目的是从另一个用户运行我的node.js webapp,我们称之为帐单 (只能使用sudo来运行一个启动节点服务器的脚本,而不是root或我的用户可以对所有命令使用sudo)。 为此,我需要将Ansible的git模块克隆我的git repo作为帐单 。 我该怎么做?

知道如何可以获得根:

据我所知,您可以通过定义“用户”和播放文件的开头来设置用户可以连接到您要维护的服务器的用户。 这是我不明白的:如果我通过我的用户名joe告诉它连接,并要求它通过apt模块更新一个包,它将如何获得根? Sudo通常会提示我密码,我宁愿保持这种方式(为安全起见)。

最终要求

我已经浏览了可复制的文档,完成了一些(我认为是彻底的)谷歌搜索,一般只是试图自己弄清楚,但是这个信息继续不了我的意思。

我对于Ansible很新,虽然它大部分是直接的,但是如果我能够明确地了解可执行的运行方式,运行哪些用户以及在何种/哪里可以指定什么用户在不同的时间使用,那么我将受益匪浅。

谢谢你提前吨

采纳答案:

阅读Ansible文档网站上的“主机和用户”部分可能会发现有用:

http://docs.ansible.com/playbooks_intro.html#hosts-and-users

总而言之,ansible将以在remote_user变量中指定的用户(假设您使用ansible> = 1.4,之前的user )在playbook中运行所有命令。 您也可以在每个任务的基础上指定此变量,以防任务需要作为特定用户运行。

使用sudo: true在任何一个playbook /任务中使用sudo来运行它。 如果您不想使用root请使用sudo_user变量指定要sudo的用户。

在实践中,我发现最简单的方式是作为具有sudo权限的deploy用户来运行我的手册。 我设置了我的SSH密钥,所以我可以SSH进入任何主机作为deploy而不使用密码。 这意味着我可以运行我的Playbook而不使用密码,甚至使用sudo如果我需要。

我使用同样的用户来执行克隆git repos和启动/停止服务。 如果一个服务需要作为一个较低权限的用户运行,我让init脚本来处理这个问题。 一个快速的Google搜索node.js init.d脚本显示了CentOS的这个脚本:

https://gist.github.com/nariyu/1211413

这样做有助于保持简单,我喜欢。

希望有帮助。

参考更多解答:什么用户可以将我的命令作为?,转载请保留什么用户可以将我的命令作为?

更多:linux