[gestion/tools] apt-keys-crans.py, un script qui génère automatiquement /bcfg2/Cfg/etc/crans/apt-keys/
À partir des fpr de la base ldap
This commit is contained in:
parent
d3c475c61c
commit
bbf29a44f1
1 changed files with 51 additions and 0 deletions
51
gestion/tools/apt-keys-crans.py
Executable file
51
gestion/tools/apt-keys-crans.py
Executable file
|
@ -0,0 +1,51 @@
|
||||||
|
#!/bin/bash /usr/scripts/python.sh
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import os
|
||||||
|
from subprocess import Popen, PIPE, STDOUT
|
||||||
|
import lc_ldap.shortcuts
|
||||||
|
from socket import gethostname
|
||||||
|
|
||||||
|
|
||||||
|
keyserver='komaz.adm.crans.org'
|
||||||
|
basedir='/bcfg2/Cfg/etc/crans/apt-keys/'
|
||||||
|
|
||||||
|
|
||||||
|
conn=lc_ldap.shortcuts.lc_ldap_readonly()
|
||||||
|
nounou=conn.search(u"(&(gpgFingerprint=*)(droits=nounou))")
|
||||||
|
fpr=[u['gpgFingerprint'][0].value for u in nounou]
|
||||||
|
|
||||||
|
def refresh_keys():
|
||||||
|
p = Popen(['gpg', '--keyserver', 'komaz.adm.crans.org', '--recv-keys'] + fpr, stdout=PIPE, stdin=PIPE, stderr=STDOUT)
|
||||||
|
ret=p.communicate()
|
||||||
|
if ret[1]:
|
||||||
|
print ret[1]
|
||||||
|
if ret[0]:
|
||||||
|
print ret[0]
|
||||||
|
|
||||||
|
|
||||||
|
def write_keys():
|
||||||
|
for user in nounou:
|
||||||
|
try:
|
||||||
|
os.mkdir(basedir + '%s.asc/' % user['uid'][0])
|
||||||
|
except OSError:
|
||||||
|
pass
|
||||||
|
path=basedir + '%s.asc/%s.asc' % (user['uid'][0],user['uid'][0])
|
||||||
|
# Est-ce que ça serait bien de mettre --export-options export-minimal ?
|
||||||
|
p = Popen(['gpg', '--armor', '--export', user['gpgFingerprint'][0].value], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
|
||||||
|
ret=p.communicate()
|
||||||
|
if ret[1]:
|
||||||
|
print ret[1]
|
||||||
|
if ret[0]:
|
||||||
|
with open(path, 'w') as f:
|
||||||
|
f.write(ret[0])
|
||||||
|
f.close()
|
||||||
|
print "Witten down %s" % path
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
if gethostname() != 'bcfg2':
|
||||||
|
print "Doit être lancé sur bcfg2"
|
||||||
|
exit(1)
|
||||||
|
else:
|
||||||
|
refresh_keys()
|
||||||
|
write_keys()
|
Loading…
Add table
Add a link
Reference in a new issue