Mic*_*ael 46 linux git node.js ansible
我的问题似乎很简单,但它变得越来越复杂.
基本上,我真的厌倦了手动维护我的服务器(在后台尖叫),我觉得是时候找到一种方法让服务器管理员更加适宜居住.就在那时我找到了Ansible.好吧?当然要为我想要自动化的一切制作bash脚本(更响亮的尖叫).
我很难搞清楚我的Ansible playbook会运行某些东西的用户.我还需要能够指定某些用户运行的用户.以下是一些特定用例:
我的目的是从另一个用户运行我的node.js webapp,我们称之为bill(只能使用sudo来运行我创建的启动节点服务器的脚本,而不是root或我的用户可以对所有命令使用sudo).要做到这一点,我需要能够让Ansible的git模块克隆我的git repo作为账单.我该怎么办?
据我所知,您可以通过定义'user'和playbook文件的开头来设置Ansible将连接到您正在维护的服务器的用户.这是我不明白的:如果我告诉它通过我的用户名,joe连接,并要求它通过apt模块更新包,它将如何获得root权限?Sudo通常会提示我输入密码,我宁愿保持这种方式(为了安全起见).
我已经搜索了Ansible文档,完成了一些(我认为是彻底的)谷歌搜索,并且通常只是试图自己弄清楚,但这些信息仍然让我无法理解.
我是Ansible的新手,虽然它主要是直接前进,但如果我能够准确理解Ansible的运行方式,运行的用户以及我在何时/何处可以指定在不同时间使用的用户,我将会受益匪浅.
提前谢谢你
mja*_*son 51
您可能会发现阅读Ansible文档站点上的Hosts and Users部分很有用:
http://docs.ansible.com/playbooks_intro.html#hosts-and-users
总之,ansible将以remote_user变量中指定的用户身份运行playbook中的所有命令(假设您user之前使用的是ansible> = 1.4 ).如果任务需要以特定用户身份运行,您也可以基于每个任务指定此变量.
使用sudo: true任何剧本/任务使用sudo来运行它.sudo_user如果您不想使用,请使用该变量指定要sudo的用户root.
在实践中,我发现以deploy具有sudo权限的用户运行我的playbook最容易.我设置了SSH密钥,因此我可以在deploy不使用密码的情况下通过SSH连接到任何主机.这意味着我可以在不使用密码的情况下运行我的剧本,甚至可以sudo在需要时使用.
我使用同一个用户来执行克隆git repos和启动/停止服务等操作.如果服务需要以较低权限的用户身份运行,我让init脚本负责处理.快速谷歌搜索node.js init.d脚本为CentOS揭示了这个:
https://gist.github.com/nariyu/1211413
这样做有助于保持简单,我喜欢.
希望有所帮助.
我的2美分:
~/.ansible.cfg您本地计算机上的root选择root .您可以通过剧本指定不同的情况和不同的用户或sudo .
Playbook定义哪些角色将运行到属于所选库存的每台机器中.
我建议您阅读Ansible最佳实践,以获取有关如何设置基础结构的一些说明.
哦,顺便说一句,因为你没有提到ansible使用的特定模块,你的问题与python无关,那么我没有找到任何使用python标签的问题.
| 归档时间: |
|
| 查看次数: |
44742 次 |
| 最近记录: |