Ansible динамическая инвентаризация не работает для Azure Cloud - PullRequest
0 голосов
/ 24 февраля 2019

Я пытаюсь поэкспериментировать с динамической инвентаризацией Ansible, чтобы установить программное обеспечение или выполнить управление конфигурацией.

Я выполнил инструкции, приведенные здесь Microsoft: https://docs.microsoft.com/en-us/azure/ansible/ansible-manage-azure-dynamic-inventories

Команды из моегоВМ находятся здесь:

az group create --resource-group ansible-inventory-test-rg --location eastus
az vm create --resource-group ansible-inventory-test-rg              --name ansible-inventory-test-vm1              --image UbuntuLTS --generate-ssh-keys
az vm create --resource-group ansible-inventory-test-rg              --name ansible-inventory-test-vm2              --image UbuntuLTS --generate-ssh-keys
az account show
az resource tag --tags nginx --id /subscriptions/<Subscription ID>/resourceGroups/ansible-inventory-test-rg/providers/Microsoft.Compute/virtualMachines/ansible-inventory-test-vm1
wget https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/azure_rm.py
chmod +x azure_rm.py
ansible -i azure_rm.py ansible-inventory-test-rg -m ping

Однако выдает ошибку, как показано ниже:

[WARNING]:  * Failed to parse /media/sf_C_DRIVE/OnlyOnMyPC/ansible.rhel75.master/azure_rm.py with script plugin: Inventory script
(/media/sf_C_DRIVE/OnlyOnMyPC/ansible.rhel75.master/azure_rm.py) had an execution error: /usr/lib/python2.7/site-packages/requests/__init__.py:91:
RequestsDependencyWarning: urllib3 (1.24.1) or chardet (2.2.1) doesn't match a supported version!   RequestsDependencyWarning) 'Cloud' object has no attribute 'find'

 [WARNING]:  * Failed to parse /media/sf_C_DRIVE/OnlyOnMyPC/ansible.rhel75.master/azure_rm.py with ini plugin:
/media/sf_C_DRIVE/OnlyOnMyPC/ansible.rhel75.master/azure_rm.py:22: Error parsing host definition ''''': No closing quotation

 [WARNING]: Unable to parse /media/sf_C_DRIVE/OnlyOnMyPC/ansible.rhel75.master/azure_rm.py as an inventory source

 [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'

 [WARNING]: Could not match supplied host pattern, ignoring: ansible-inventory-test-rg

Я не удивлен, увидев, что она не работает, так как технически загрузка материала из интернета не будет работатьнапрямую, должно быть какое-то соединение.

Я не могу понять, что здесь является отсутствующей ссылкой, поскольку я выполнил ее в качестве документа с сайта Microsoft, я что-то здесь упускаю?

Кроме того, как этот сценарий Python будет знать, какую подписку, какую группу ресурсов и какие виртуальные машины он должен применить для конкретной пьесы?

1 Ответ

0 голосов
/ 24 февраля 2019

Получилось, может быть, есть другой лучший ответ, чем мой, но это заставило его работать.

export AZURE_CLIENT_ID="xxxxxxxxxxxxxxxxxxxxx"
export AZURE_SECRET="xxxxxxxxxxxxxxxxxxxxxxxx"
export AZURE_SUBSCRIPTION_ID="xxxxxxxxxxxxxxx"
export AZURE_TENANT="xxxxxxxxxxxxxxxxxxxxxxxx"

Вот и все.

...