【问题标题】:Can I access multiple azure accounts with azure-cli from the same machine at same time?我可以在同一台机器上同时使用 azure-cli 访问多个 azure 帐户吗?
【发布时间】:2021-01-01 16:44:18
【问题描述】:

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

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

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

【问题讨论】:

    标签: azure azure-cli


    【解决方案1】:

    对于 Windows,以下是步骤

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

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

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

    【讨论】:

      【解决方案2】:

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

      导出 AZURE_CONFIG_DIR=/tmp1

      az 登录

      在其他窗口上

      导出 AZURE_CONFIG_DIR=/tmp2

      az 登录

      参考:configure the AZURE_CONFIG_DIR for fixing concurrency issue

      【讨论】:

        【解决方案3】:

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

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

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

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

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

        【讨论】:

        猜你喜欢
        • 2018-09-26
        • 1970-01-01
        • 2015-07-02
        • 2021-09-06
        • 1970-01-01
        • 1970-01-01
        • 2021-01-29
        • 1970-01-01
        相关资源
        最近更新 更多