Невозможно выполнить команду ansible playbook - потенциальная ошибка аутентификации (msrest) - PullRequest
0 голосов
/ 24 сентября 2019

Я недавно начал использовать Ansible для автоматизации развертывания образа докера в службе Azure Kubernetes.

У меня есть ANSIBLE файл с именем azure_create_aks.yml.Я запускаю следующую команду на моем mac ansible-playbook azure_create_aks.yml, но она завершается неудачно со следующим (фрагмент из трассировки стека):

msrest.exceptions.AuthenticationError: , AdalError: Get Token request returned http error: 400 and server response: Bad Request

Я попытался удалить ansible и azure-cli и переустановил, используя следующую: - brew update && brew install azure-cli - az aks install-cli - pip3 install ansible [azure]

Я также попытался удалить python 3, чтобы вместо него использовался python 2.Оглядываясь на переполнение стека, я думаю, что у меня может возникнуть проблема с зависимостью от msrestazure или проблема с версией pip или python, установленной на моем локальном компьютере.

После запуска ansible-playbook azure_create_aks.yml я получаюследующее:

 [WARNING]: No inventory was parsed, only implicit localhost is available

 [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'


PLAY [Create Azure Kubernetes Service] *********************************************************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************************************************************************
ok: [localhost]

TASK [Create resource group] *******************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "module_stderr": "/Users/hughej/.ansible/tmp/ansible-tmp-1569328685.354382-6386128387997/AnsiballZ_azure_rm_resourcegroup.py:18: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses\n  import imp\nTraceback (most recent call last):\n  File \"/usr/local/lib/python3.7/site-packages/msrestazure/azure_active_directory.py\", line 366, in set_token\n    self.secret\n  File \"/usr/local/lib/python3.7/site-packages/adal/authentication_context.py\", line 179, in acquire_token_with_client_credentials\n    return self._acquire_token(token_func)\n  File \"/usr/local/lib/python3.7/site-packages/adal/authentication_context.py\", line 128, in _acquire_token\n    return token_func(self)\n  File \"/usr/local/lib/python3.7/site-packages/adal/authentication_context.py\", line 177, in token_func\n    return token_request.get_token_with_client_credentials(client_secret)\n  File \"/usr/local/lib/python3.7/site-packages/adal/token_request.py\", line 310, in get_token_with_client_credentials\n    token = self._oauth_get_token(oauth_parameters)\n  File \"/usr/local/lib/python3.7/site-packages/adal/token_request.py\", line 112, in _oauth_get_token\n    return client.get_token(oauth_parameters)\n  File \"/usr/local/lib/python3.7/site-packages/adal/oauth2_client.py\", line 289, in get_token\n    raise AdalError(return_error_string, error_response)\nadal.adal_error.AdalError: Get Token request returned http error: 400 and server response: Bad Request\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/Users/hughej/.ansible/tmp/ansible-tmp-1569328685.354382-6386128387997/AnsiballZ_azure_rm_resourcegroup.py\", line 114, in <module>\n    _ansiballz_main()\n  File \"/Users/hughej/.ansible/tmp/ansible-tmp-1569328685.354382-6386128387997/AnsiballZ_azure_rm_resourcegroup.py\", line 106, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/Users/hughej/.ansible/tmp/ansible-tmp-1569328685.354382-6386128387997/AnsiballZ_azure_rm_resourcegroup.py\", line 49, in invoke_module\n    imp.load_module('__main__', mod, module, MOD_DESC)\n  File \"/usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/imp.py\", line 234, in load_module\n    return load_source(name, filename, file)\n  File \"/usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/imp.py\", line 169, in load_source\n    module = _exec(spec, sys.modules[name])\n  File \"<frozen importlib._bootstrap>\", line 630, in _exec\n  File \"<frozen importlib._bootstrap_external>\", line 728, in exec_module\n  File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\n  File \"/var/folders/2t/30gk2pfx5_n08tfd45g3v674b8c1y8/T/ansible_azure_rm_resourcegroup_payload_6hqj1_fs/__main__.py\", line 266, in <module>\n  File \"/var/folders/2t/30gk2pfx5_n08tfd45g3v674b8c1y8/T/ansible_azure_rm_resourcegroup_payload_6hqj1_fs/__main__.py\", line 262, in main\n  File \"/var/folders/2t/30gk2pfx5_n08tfd45g3v674b8c1y8/T/ansible_azure_rm_resourcegroup_payload_6hqj1_fs/__main__.py\", line 144, in __init__\n  File \"/var/folders/2t/30gk2pfx5_n08tfd45g3v674b8c1y8/T/ansible_azure_rm_resourcegroup_payload_6hqj1_fs/ansible_azure_rm_resourcegroup_payload.zip/ansible/module_utils/azure_rm_common.py\", line 318, in __init__\n  File \"/var/folders/2t/30gk2pfx5_n08tfd45g3v674b8c1y8/T/ansible_azure_rm_resourcegroup_payload_6hqj1_fs/ansible_azure_rm_resourcegroup_payload.zip/ansible/module_utils/azure_rm_common.py\", line 1095, in __init__\n  File \"/usr/local/lib/python3.7/site-packages/msrestazure/azure_active_directory.py\", line 354, in __init__\n    self.set_token()\n  File \"/usr/local/lib/python3.7/site-packages/msrestazure/azure_active_directory.py\", line 370, in set_token\n    raise_with_traceback(AuthenticationError, \"\", err)\n  File \"/usr/local/lib/python3.7/site-packages/msrest/exceptions.py\", line 54, in raise_with_traceback\n    raise error.with_traceback(exc_traceback)\n  File \"/usr/local/lib/python3.7/site-packages/msrestazure/azure_active_directory.py\", line 366, in set_token\n    self.secret\n  File \"/usr/local/lib/python3.7/site-packages/adal/authentication_context.py\", line 179, in acquire_token_with_client_credentials\n    return self._acquire_token(token_func)\n  File \"/usr/local/lib/python3.7/site-packages/adal/authentication_context.py\", line 128, in _acquire_token\n    return token_func(self)\n  File \"/usr/local/lib/python3.7/site-packages/adal/authentication_context.py\", line 177, in token_func\n    return token_request.get_token_with_client_credentials(client_secret)\n  File \"/usr/local/lib/python3.7/site-packages/adal/token_request.py\", line 310, in get_token_with_client_credentials\n    token = self._oauth_get_token(oauth_parameters)\n  File \"/usr/local/lib/python3.7/site-packages/adal/token_request.py\", line 112, in _oauth_get_token\n    return client.get_token(oauth_parameters)\n  File \"/usr/local/lib/python3.7/site-packages/adal/oauth2_client.py\", line 289, in get_token\n    raise AdalError(return_error_string, error_response)\nmsrest.exceptions.AuthenticationError: , AdalError: Get Token request returned http error: 400 and server response: Bad Request\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}

Ожидается, что команда ansible playbook будет запущена и развернута в Azure.Однако эта ошибка аутентификации останавливает процесс.

Между прочим, вот мой ANSIBLE файл Playbook (очищенный):

- name: Create Azure Kubernetes Service
  hosts: localhost
  connection: local
  vars:
    resource_group: pipeline-in-a-box
    location: uksouth
    aks_name: pipeline-in-a-box-cluster
    username: "devOpsBot"
    ssh_key: "My public SSH key"
    client_id: "service principle id"
    client_secret: "service principle password"
    kubernetes_version: "1.14.6"
  tasks:
  - name: Create resource group
    azure_rm_resourcegroup:
      name: "{{ resource_group }}"
      location: "{{ location }}"
  - name: Create a managed Azure Container Services (AKS) cluster
    azure_rm_aks:
      name: "{{ aks_name }}"
      location: "{{ location }}"
      resource_group: "{{ resource_group }}"
      dns_prefix: "{{ aks_name }}"
      kubernetes_version: "{{ kubernetes_version }}"
      linux_profile:
        admin_username: "{{ username }}"
        ssh_key: "{{ ssh_key }}"
      service_principal:
        client_id: "{{ client_id }}"
        client_secret: "{{ client_secret }}"
      agent_pool_profiles:
        - name: default
          count: 2
          vm_size: Standard_D2_v2
      tags:
        Environment: Test
  - name: Create Azure Storage Account
    azure_rm_storageaccount:
      resource_group: "{{ resource_group }}"
      name: piabstorage
      type: Standard_RAGRS
      tags:
        testing: testing
        delete: on-exit
  - name: Create managed disk
    azure_rm_manageddisk:
      name: piabdisk
      location: uksouth
      resource_group: "{{ resource_group }}"
      disk_size_gb: 1
  - name: Create an azure container registry
    azure_rm_containerregistry:
      name: piabregistry
      location: "{{ location }}"
      resource_group: "{{ resource_group }}"
      admin_user_enabled: True
      sku: Basic
    register: acr_result
  - name: Push docker image to comtainer registry
    docker_image:
      name: atlassian/confluence-server
      repository: piabregistry.azurecr.io
      push: yes
      source: pull
  - name: Create Azure Container Instance
    azure_rm_containerinstance:
      resource_group: "{{ resource_group }}"
      name: piabcontainer
      ip_address: public
      ports:
        - "8090"
        - "8091"
      registry_login_server: piabregistry.azurecr.io
      registry_username: piabregistry
      registry_password: "{{ acr_result.credentials.password }}"
      containers:
      - name: confluence-server
        ports:
          - "8090"
          - "8091"
        image: atlassian/confluence-server
  - name: Get details of the AKS
    azure_rm_aks_facts:
      name: aksfacts
      resource_group: "{{ resource_group }}"
      show_kubeconfig: user
  - name: Show AKS cluster detail
    debug:
      var: output.aks[0]
    ```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...