Fabric:作为特定用户做所有事情

Qui*_*Par 4 python deployment build fabric

我的构建和生产部署由一个用户特定用户使用密钥连接,该用户在部署期间共享,并在计算机启动期间复制密钥.

这个用户部署,共享ssh密钥,允许ssh到任何prod机器和它们之间.

现在,我的结构构建以用户Jenkins运行.

如何指示Fabric作为特定用户执行所有操作(在这种情况下部署)?相当于sudo su deploy

我不想做一个prefixwith每个任务.而是设置一个全局变量.

詹金斯是轮组,有sudo烫发

pyf*_*unc 7

如果我正确理解您的问题,您希望以不使用前缀或使用的方式执行另一个用户的命令.

如果您愿意,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.