背景
我的问题看起来很简单,但很快就变得更加复杂。
基本上,我已经厌倦了手动维护服务器(在背景中尖叫),我决定找到一种方法使成为服务器管理员更加舒适。这就是我发现Ansible的时候。非常棒,对吧?肯定比为我想要自动化的每个东西编写bash脚本(更大声尖叫)要好得多。
问题是什么?
我有很多麻烦,无法确定我的Ansible playbook将作为哪个用户运行某些内容。我还需要能够指定某些任务将作为哪个用户运行的能力。以下是一些具体用例:
以另一个用户身份克隆存储库:
我使用此目的是从另一个名为bill的用户(只能使用sudo运行我制作的启动节点服务器脚本,而不是可以对所有命令使用sudo的root或我的用户)运行我的node.js webapp。为此,我需要Ansible的git模块克隆我的git repo作为bill。我该怎么做呢?
知道Ansible如何获取root权限:
据我所知,您可以通过在playbook文件开头定义'用户'来设置Ansible将连接到您正在维护的服务器。这是我不明白的地方:如果我告诉它通过我的用户名joe连接,并要求它通过apt模块更新包,它将如何获取root权限?Sudo通常会提示我输入密码,我希望保持这种方式(出于安全考虑)。
最后的请求
我已经搜索了Ansible文档,做了一些(我认为非常彻底的)Google搜索,并且通常尝试自己解决问题,但这些信息仍然难以理解。
我对Ansible非常新手,尽管它大多数情况下都很简单,但如果我能够确切地了解Ansible运行的方式,它运行的用户以及在不同时间和地点指定要使用的用户的方式/位置,那么我将受益匪浅。
非常感谢您提前的支持。