| Index: hiera/install-precise.py |
| =================================================================== |
| new file mode 100755 |
| --- /dev/null |
| +++ b/hiera/install-precise.py |
| @@ -0,0 +1,64 @@ |
| +#!/usr/bin/env python |
| +import base64 |
| +import distutils.spawn |
| +import io |
| +import os |
| +import subprocess |
| +import sys |
| + |
| +if distutils.spawn.find_executable('puppet') \ |
| + and distutils.spawn.find_executable('hiera'): |
| + sys.exit(os.EX_OK) |
| + |
| +PUPPETLABS_SOURCES = ''' |
| +deb http://apt.puppetlabs.com precise main |
| +deb-src http://apt.puppetlabs.com precise main''' |
| + |
| +PUPPETLABS_PREFS = ''' |
| +# Puppetlabs packages (e.g. hiera) would attempt to install a puppet 3.x |
| +# or later release (which is not available in precise) if not pinned here |
| +Package: puppet puppet-common |
| +Pin: version 2.7.11-* |
| +Pin-Priority: 1000''' |
| + |
| +PUPPETLABS_GPG_KEY = ''' |
| +mQINBEw3u0ABEAC1+aJQpU59fwZ4mxFjqNCgfZgDhONDSYQFMRnYC1dzBpJHzI6bfUBQeaZ8rh6N |
| +4kZ+wq1eL86YDXkCt4sCvNTP0eF2XaOLbmxtV9bdpTIBep9bQiKg5iZaz+brUZlFk/MyJ0Yz//VQ |
| +68N1uvXccmD6uxQsVO+gx7rnarg/BGuCNaVtGwy+S98g8Begwxs9JmGa8pMCcSxtC7fAfAEZ02cY |
| +yrw5KfBvFI3cHDdBqrEJQKwKeLKYGHK3+H1TM4ZMxPsLuR/XKCbvTyl+OCPxU2OxPjufAxLlr8BW |
| +UzgJv6ztPe9imqpHPpp3KuLFNorjPqWY5jSgKl94W/CO2x591e++a1PhwUn7iVUwVVe+mOEWnK5+ |
| +Fd0vVMQebYCXS+3dNf6gxSvhz8etpw20T9Ytg4EdhLvCJRV/pYlqhcq+E9le1jFOHOc0Nc5FQweU |
| +tHGaNVyn8S1hvnvWJBMxpXq+Bezfk3X8PhPT/l9O2lLFOOO08jo0OYiIwrjhMQQOOSZOb3vBRvBZ |
| +NnnxPrcdjUUm/9cVB8VcgI5KFhG7hmMCwH70tpUWcZCNNlI1wj/PJ7Tlxjy44f1o4CQ5FxuozkiI |
| +TJvh9CTg+k3wEmiaGz65w9jRl9ny2gElf4CR5+ba+w2dpuDeMwiHJIs5JsGyJjmA5/0xytB7QvgM |
| +s2q25vWhygsmUQARAQABtEdQdXBwZXQgTGFicyBSZWxlYXNlIEtleSAoUHVwcGV0IExhYnMgUmVs |
| +ZWFzZSBLZXkpIDxpbmZvQHB1cHBldGxhYnMuY29tPokCPgQTAQIAKAIbAwYLCQgHAwIGFQgCCQoL |
| +BBYCAwECHgECF4AFAk/x5PoFCQtIMjoACgkQEFS3okvW7DAIKQ/9HvZyf+LHVSkCk92Kb6gcknii |
| +n3+5ooz67hSr8miGBfK4eocqQ0H7bdtWjAILzR/IBY0xj6OHKhYP2k8TLc7QhQjt0dRpNkX+Iton |
| +2AZryV7vUADreYz44B0bPmhiE+LL46ET5IThLKu/KfihzkEEBa9/t178+dO9zCM2xsXaiDhMOxVE |
| +32gXvSZKP3hmvnK/FdylUY3nWtPedr+lHpBLoHGaPH7cjI+MEEugU3oAJ0jpq3V8n4w0jIq2V77w |
| +fmbD9byIV7dXcxApzciK+ekwpQNQMSaceuxLlTZKcdSqo0/qmS2A863YZQ0ZBe+Xyf5OI33+y+Mr |
| +y+vl6Lre2VfPm3udgR10E4tWXJ9Q2CmG+zNPWt73U1FD7xBI7PPvOlyzCX4QJhy2Fn/fvzaNjHp4 |
| +/FSiCw0HvX01epcersyun3xxPkRIjwwRM9m5MJ0o4hhPfa97zibXSh8XXBnosBQxeg6nEnb26eor |
| +VQbqGx0ruu/W2m5/JpUfREsFmNOBUbi8xlKNS5CZypH3Zh88EZiTFolOMEh+hT6s0l6znBAGGZ4m |
| +/Unacm5yDHmg7unCk4JyVopQ2KHMoqG886elu+rm0ASkhyqBAk9sWKptMl3NHiYTRE/m9VAkugVI |
| +B2pi+8u84f+an4Hml4xlyijgYu05pqNvnLRyJDLd61hviLC8GYWwAgAD''' |
|
Wladimir Palant
2014/11/17 16:43:36
https://pgp.mit.edu/pks/lookup?op=get&search=0x105
mathias
2014/11/27 00:30:18
In fact I do not recall us discussing to use the s
|
| + |
| +handle = subprocess.Popen(['apt-key', 'add', '-'], stdin=subprocess.PIPE) |
|
Wladimir Palant
2014/11/17 16:43:36
I was already considering asking for that handle t
mathias
2014/11/27 00:30:18
Done.
|
| +decoded_key = base64.b64decode(PUPPETLABS_GPG_KEY) |
| +handle.communicate(decoded_key) |
| + |
| +with io.open('/etc/apt/sources.list.d/puppetlabs.list', 'wb') as handle: |
| + handle.write(PUPPETLABS_SOURCES) |
| + |
| +with io.open('/etc/apt/preferences.d/puppetlabs', 'wb') as handle: |
| + handle.write(PUPPETLABS_PREFS) |
| + |
| +subprocess.check_call(['apt-get', '-y', 'update']) |
| +subprocess.check_call(['apt-get', '-y', 'install', 'puppet']) |
| +subprocess.check_call(['apt-get', '-y', 'install', 'hiera-puppet']) |
| + |
| +if not os.path.exists('/etc/puppet/hiera.yaml'): |
| + config = os.path.dirname(__file__) + '/hiera.yaml' |
|
Wladimir Palant
2014/11/17 16:43:36
Please use os.path.join() instead of string concat
mathias
2014/11/27 00:30:18
Done.
|
| + if os.path.exists(config): |
| + os.symlink(config, '/etc/puppet/hiera.yaml') |