| Left: | ||
| Right: |
| OLD | NEW |
|---|---|
| (Empty) | |
| 1 #!/usr/bin/env python | |
|
Felix Dahlke
2015/03/03 16:43:32
Nit: New line after the hash bang line?
mathias
2015/03/04 12:32:37
Done.
| |
| 2 import distutils.spawn | |
| 3 import io | |
| 4 import os | |
| 5 import subprocess | |
| 6 import sys | |
| 7 | |
| 8 if distutils.spawn.find_executable('puppet') \ | |
| 9 and distutils.spawn.find_executable('hiera'): | |
| 10 sys.exit(os.EX_OK) | |
| 11 | |
| 12 PUPPETLABS_SOURCES = ''' | |
| 13 deb http://apt.puppetlabs.com precise main | |
| 14 deb-src http://apt.puppetlabs.com precise main''' | |
| 15 | |
| 16 PUPPETLABS_PREFS = ''' | |
| 17 # Puppetlabs packages (e.g. hiera) would attempt to install a puppet 3.x | |
| 18 # or later release (which is not available in precise) if not pinned here | |
| 19 Package: puppet puppet-common | |
| 20 Pin: version 2.7.11-* | |
| 21 Pin-Priority: 1000''' | |
| 22 | |
| 23 PUPPETLABS_GPG_KEY = ''' | |
| 24 -----BEGIN PGP PUBLIC KEY BLOCK----- | |
| 25 Version: GnuPG v1.4.12 (GNU/Linux) | |
| 26 Comment: GPGTools - http://gpgtools.org | |
| 27 | |
| 28 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 | |
| 82 =a34C | |
| 83 -----END PGP PUBLIC KEY BLOCK----- | |
| 84 ''' | |
| 85 | |
| 86 add_key_process = subprocess.Popen(['apt-key', 'add', '-'], stdin=subprocess.PIP E) | |
|
Felix Dahlke
2015/03/03 16:43:32
All of this stuff looks like it'll work on any sys
mathias
2015/03/04 12:32:37
If we do not actively develop for Debian, we canno
Felix Dahlke
2015/03/04 14:27:53
Fair enough.
| |
| 87 add_key_process.communicate(PUPPETLABS_GPG_KEY) | |
| 88 | |
| 89 with io.open('/etc/apt/sources.list.d/puppetlabs.list', 'wb') as handle: | |
| 90 handle.write(PUPPETLABS_SOURCES) | |
| 91 | |
| 92 with io.open('/etc/apt/preferences.d/puppetlabs', 'wb') as handle: | |
| 93 handle.write(PUPPETLABS_PREFS) | |
| 94 | |
| 95 subprocess.check_call(['apt-get', '-y', 'update']) | |
| 96 subprocess.check_call(['apt-get', '-y', 'install', 'puppet']) | |
| 97 subprocess.check_call(['apt-get', '-y', 'install', 'hiera-puppet']) | |
| 98 | |
| 99 if not os.path.exists('/etc/puppet/hiera.yaml'): | |
| 100 config = os.path.join(os.path.dirname(__file__), 'hiera.yaml') | |
| 101 if os.path.exists(config): | |
| 102 os.symlink(config, '/etc/puppet/hiera.yaml') | |
| OLD | NEW |