5

我们实际上有多个 azure 帐户(出于某种正当原因),我希望能够在同一台机器上同时为不同的帐户运行 azure-cli 命令。

问题是,一旦我使用 登录到一个 azure 帐户azure login,令牌将存储在 ~/.azure 目录中,所以我不确定我是否可以在该机器上同时登录另一个帐户。

有没有办法告诉 azure-cli 不要将令牌存储在本地配置文件中,以便我可以使用 azure-cli 从同一台机器同时连接到多个帐户?

4

3 回答 3

8

如果您使用的是 windows 或 mac 机器,则令牌分别存储在 Windows 令牌管理器或 OSx 密钥链中。仅在 Linux 系统上,令牌存储在 ~/.azure/azureProfile.json

但是,您仍然应该能够在 Win/Mac 或 Linux 机器上使用多个帐户登录。

azure account set "subscription-name" 会将订阅设置为您的默认订阅,并且您执行的所有命令都将针对该订阅运行。

每个命令都有一个 -s 或 --subscription 开关,您可以在其中显式指定订阅 ID。即使订阅属于不同的帐户,如果您已使用该帐户进行身份验证,它仍然可以工作。

对于 Linux 系统,我建议创建多个用户帐户,然后从这些帐户运行 CLI。我认为当来自不同帐户的两个命令尝试访问 ~/.azure/azureProfile.json 时,可能会出现竞争情况。

于 2015-10-15T00:19:16.703 回答
2

最新的更新是环境变量AZURE_CONFIG_DIR已被引入,并且可以在az login调用之前为每个环境进行不同的设置。

导出 AZURE_CONFIG_DIR=/tmp1

登录

和其他窗口

导出 AZURE_CONFIG_DIR=/tmp2

登录

参考:配置 AZURE_CONFIG_DIR 以修复并发问题

于 2019-10-22T16:18:10.610 回答
0

对于Windows,这里是步骤

  1. 转到环境变量并添加AZURE_CONFIG_DIR新配置文件夹的值(例如C:\Users\YourUser\.azure-personal
  2. 重启你的cli,然后运行这个az login --use-device-code
  3. 使用步骤 2 中给出的代码并将其与任何浏览器一起使用以登录新的 azure 帐户

现在,您的帐户配置之一位于默认的 azure 文件夹配置 ( C:\Users\YourUser\.azure) 中,而新的帐户配置位于您在步骤 1 中指定的位置。

如果你想在它们之间切换,你需要翻转那个环境变量来指向你想要的任何配置

于 2022-01-06T00:07:38.580 回答