Azure / Azure/azure-quickstart-templates

Deploying 101-Telegraf-InfluxDB-Grafana to Azure fails to create resource tigVM/tigInit

Open
#6,092 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Bicep
Stars
14.9k
Forks
16.2k
Avg merge
6d 21h
Merged PRs (30d)
6

Description

[101-Telegraf-InfluxDB-Grafana](https://github.com/Azure/azure-quickstart-templates/tree/master/101-Telegraf-InfluxDB-Grafana)

### Issue Details

Deploying to Azure fails with below details in creation of tigVM/tigInit after succeeding in previous resources creation
Screen Shot 2019-04-29 at 13 38 20

`
{
"status": "Failed",
"error": {
"code": "ResourceDeploymentFailure",
"message": "The resource operation completed with terminal provisioning state 'Failed'.",
"details": [
{
"code": "VMExtensionProvisioningError",
"message": "VM has reported a failure when processing extension 'tigInit'. Error message: \"Enable failed: failed to execute command: command terminated with exit status=2\n[stdout]\n7/dist-packages/setuptools/command/easy_install.py\\\", line 1040, in build_and_install\", \n \" self.run_setup(setup_script, setup_base, args)\", \n \" File \\\"/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py\\\", line 1028, in run_setup\", \n \" raise DistutilsError(\\\"Setup script exited with %s\\\" % (v.args[0],))\", \n \" distutils.errors.DistutilsError: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1\", \n \" Complete output from command python setup.py egg_info:\", \n \" c/_cffi_backend.c:2:20: fatal error: Python.h: No such file or directory\", \n \"\", \n \" #include \", \n \"\", \n \" ^\", \n \"\", \n \"compilation terminated.\", \n \"\", \n \"Traceback (most recent call last):\", \n \"\", \n \" File \\\"\\\", line 17, in \", \n \"\", \n \" File \\\"/tmp/pip_build_root/pynacl/setup.py\\\", line 255, in \", \n \"\", \n \" \\\"Programming Language :: Python :: 3.7\\\",\", \n \"\", \n \" File \\\"/usr/lib/python2.7/distutils/core.py\\\", line 111, in setup\", \n \"\", \n \" _setup_distribution = dist = klass(attrs)\", \n \"\", \n \" File \\\"/usr/lib/python2.7/dist-packages/setuptools/dist.py\\\", line 239, in __init__\", \n \"\", \n \" self.fetch_build_eggs(attrs.pop('setup_requires'))\", \n \"\", \n \" File \\\"/usr/lib/python2.7/dist-packages/setuptools/dist.py\\\", line 264, in fetch_build_eggs\", \n \"\", \n \" replace_conflicting=True\", \n \"\", \n \" File \\\"/usr/lib/python2.7/dist-packages/pkg_resources.py\\\", line 620, in resolve\", \n \"\", \n \" dist = best[req.key] = env.best_match(req, ws, installer)\", \n \"\", \n \" File \\\"/usr/lib/python2.7/dist-packages/pkg_resources.py\\\", line 858, in best_match\", \n \"\", \n \" return self.obtain(req, installer) # try and download/install\", \n \"\", \n \" File \\\"/usr/lib/python2.7/dist-packages/pkg_resources.py\\\", line 870, in obtain\", \n \"\", \n \" return installer(requirement)\", \n \"\", \n \" File \\\"/usr/lib/python2.7/dist-packages/setuptools/dist.py\\\", line 314, in fetch_build_egg\", \n \"\", \n \" return cmd.easy_install(req)\", \n \"\", \n \" File \\\"/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py\\\", line 616, in easy_install\", \n \"\", \n \" return self.install_item(spec, dist.location, tmpdir, deps)\", \n \"\", \n \" File \\\"/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py\\\", line 646, in install_item\", \n \"\", \n \" dists = self.install_eggs(spec, download, tmpdir)\", \n \"\", \n \" File \\\"/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py\\\", line 834, in install_eggs\", \n \"\", \n \" return self.build_and_install(setup_script, setup_base)\", \n \"\", \n \" File \\\"/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py\\\", line 1040, in build_and_install\", \n \"\", \n \" self.run_setup(setup_script, setup_base, args)\", \n \"\", \n \" File \\\"/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py\\\", line 1028, in run_setup\", \n \"\", \n \" raise DistutilsError(\\\"Setup script exited with %s\\\" % (v.args[0],))\", \n \"\", \n \"distutils.errors.DistutilsError: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1\", \n \"\", \n \"----------------------------------------\", \n \"Cleaning up...\", \n \"Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_root/pynacl\", \n \"Storing debug log for failure in /root/.pip/pip.log\"\n ]\n}\n\tto retry, use: --limit @/home/Configfiles/ansible/docker_install.retry\n\nPLAY RECAP *********************************************************************\nlocalhost : ok=6 changed=3 unreachable=0 failed=1 \n\n\n[stderr]\ngpg: keyring `/tmp/tmpz16rorim/secring.gpg' created\ngpg: keyring `/tmp/tmpz16rorim/pubring.gpg' created\ngpg: requesting key 7BB9C367 from hkp server keyserver.ubuntu.com\ngpg: /tmp/tmpz16rorim/trustdb.gpg: trustdb created\ngpg: key 7BB9C367: public key \"Launchpad PPA for Ansible, Inc.\" imported\ngpg: Total number processed: 1\ngpg: imported: 1 (RSA: 1)\ndpkg-preconfigure: unable to re-open stdin: No such file or directory\ndpkg-preconfigure: unable to re-open stdin: No such file or directory\n--2019-04-29 11:26:53-- https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-Telegraf-InfluxDB-Grafana/scripts/Configfiles.zip\nResolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.248.133\nConnecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.248.133|:443... connected.\nHTTP request sent, awaiting response... 200 OK\nLength: 14302 (14K) [application/zip]\nSaving to: 'Configfiles.zip'\n\n 0K .......... ... 100% 15.5M=0.001s\n\n2019-04-29 11:26:53 (15.5 MB/s) - 'Configfiles.zip' saved [14302/14302]\n\n [WARNING]: provided hosts list is empty, only localhost is available. Note\nthat the implicit localhost does not match 'all'\n [WARNING]: Consider using the get_url or uri module rather than running\n'curl'. If you need to use command because get_url or uri is insufficient you\ncan add 'warn: false' to this command task or set 'command_warnings=False' in\nansible.cfg to get rid of this message.\n\"."
}
]
}
}

`

### Repro steps (*if necessary, delete otherwise*)
1. Select template
2. Click Deploy to Azure
3. Fill-in requested parameter
4. Deploy
5. Issue is reproduced

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the 101-Telegraf-InfluxDB-Grafana template and its scripts/Configfiles.zip, focusing on the tigInit Ansible step and the Python 2.7 dependency installation shown in the error. Reproduce the deployment and inspect the missing Python.h failure; done means tigVM/tigInit provisions successfully and the template deployment completes.

Written by the indexing model from the issue text.

Assessment

Tech stack
ansible, azure, grafana, python
Domain
cloud, devops, observability-sre
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.