pro*_*cle 6 python deployment sudo fabric
这个问题是关于最佳实践的.我正在使用Fabric运行部署脚本.我的部署用户'deploy'需要sudo来重启服务.所以我使用fabric中的sudo函数在我的脚本中运行这些命令.这工作正常,但在脚本执行期间提示输入密码.我不想在部署期间输入密码.什么是最好的做法.我能想到的唯一解决方案是将sudo权限更改为我的部署用户运行的命令不需要密码.这对我来说似乎不对.
理想的解决方案是在服务器上创建仅用于部署的用户(例如,deploy).然后,env.user=deploy在fabfile中设置.然后在您的服务器上,您可以在sudoers文件中逐个命令地为用户提供必要的权限:
重要信息:始终用于sudo visudo修改sudoers文件
Cmnd_Alias RELOAD_SITE = /bin/bash -l -c supervisorctl*, /usr/bin/supervisorctl*
deploy ALL = NOPASSWD: RELOAD_SITE
Run Code Online (Sandbox Code Playgroud)
您可以Cmnd_Alias根据部署用户的需要添加任意数量的指令,然后NOPASSWD为每个命令授予访问权限.有关man sudoers详细信息,请参阅
我喜欢保留特定于部署的sudoers配置/etc/sudoers.d/deploy并在最后/etc/sudoers添加:包含该文件includedir /etc/suoders.d.
Jas*_*sch -2
正如 Bartek 还建议的那样,在 sudoers 文件中为部署“用户”启用无密码 sudo。
就像是:
run('echo "{0} ALL=(ALL) ALL" >> /etc/sudoers'.format(env.user))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7103 次 |
| 最近记录: |