[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