Qui*_*Par 4 python deployment build fabric
我的构建和生产部署由一个用户特定用户使用密钥连接,该用户在部署期间共享,并在计算机启动期间复制密钥.
这个用户部署,共享ssh密钥,允许ssh到任何prod机器和它们之间.
现在,我的结构构建以用户Jenkins运行.
如何指示Fabric作为特定用户执行所有操作(在这种情况下部署)?相当于sudo su deploy
我不想做一个prefix或with每个任务.而是设置一个全局变量.
詹金斯是轮组,有sudo烫发
如果我正确理解您的问题,您希望以不使用前缀或使用的方式执行另一个用户的命令.
如果您愿意,sudo函数接受可以是全局变量的用户.
来自文档:
fabric.operations.sudo(command, shell=True, pty=True,
combine_stderr=True, user=None,
quiet=False, stdout=None, stderr=None)
Run Code Online (Sandbox Code Playgroud)
你可以简单地用你的任务来打电话
sudo(command, user=sudouser)
Run Code Online (Sandbox Code Playgroud)
并将sudouser设置为在其他地方"部署".
实际上,这与使用上下文没有什么不同:
with settings(sudo_user=sudouser):
sudo(command)
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,您都应该能够全局更改此sudo_user.