4.7. 创建 Azure Active Directory 应用程序

完成以下流程来创建 Azure Active Directory (AD)应用程序。Azure AD 应用程序授权并自动对集群中所有节点的 HA 操作进行访问。

先决条件

  • Azure 命令行界面(CLI) 已安装在您的系统上。
  • 您是 Microsoft Azure 订阅的管理员或所有者。您需要此授权来创建 Azure AD 应用程序。

流程

  1. 在 HA 集群的任何节点上,登录到您的 Azure 帐户。

    $ az login
  2. 为 Azure 隔离代理的自定义角色创建一个 json 配置文件。使用以下配置,但将 <subscription-id> 替换为您的订阅 ID。

    {
          "Name": "Linux Fence Agent Role",
          "description": "Allows to power-off and start virtual machines",
          "assignableScopes": [
                  "/subscriptions/<subscription-id>"
          ],
          "actions": [
                  "Microsoft.Compute/*/read",
                  "Microsoft.Compute/virtualMachines/powerOff/action",
                  "Microsoft.Compute/virtualMachines/start/action"
          ],
          "notActions": [],
          "dataActions": [],
          "notDataActions": []
    }
  3. 为 Azure 隔离代理定义自定义角色。使用上一步中创建的 json 文件来进行此操作。

    $ az role definition create --role-definition azure-fence-role.json
    
    {
      "assignableScopes": [
        "/subscriptions/<my-subscription-id>"
      ],
      "description": "Allows to power-off and start virtual machines",
      "id": "/subscriptions/<my-subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<role-id>",
      "name": "<role-id>",
      "permissions": [
        {
          "actions": [
            "Microsoft.Compute/*/read",
            "Microsoft.Compute/virtualMachines/powerOff/action",
            "Microsoft.Compute/virtualMachines/start/action"
          ],
          "dataActions": [],
          "notActions": [],
          "notDataActions": []
        }
      ],
      "roleName": "Linux Fence Agent Role",
      "roleType": "CustomRole",
      "type": "Microsoft.Authorization/roleDefinitions"
    }
  4. 在 Azure web 控制台界面中,选择 Virtual Machine → 点击左侧菜单中的 Identity
  5. 选择 On → 点 Save → 点 Yes 来确认。
  6. Azure role assignmentsAdd role assignment
  7. 选择角色所需的Scope,如 Resource Group
  8. 选择所需的 Resource Group
  9. 可选: 如果需要,更改 Subscription
  10. 选择 Linux Fence Agent Role 角色。
  11. 点击 Save

验证

  • 显示 Azure AD 可见的节点。

    # fence_azure_arm --msi -o list
    node1,
    node2,
    [...]

    如果这个命令输出集群中的所有节点,则 AD 应用程序已成功配置。