Print

Print


Hi Matt,

On 07/20/2016 12:15 PM, Matt Williams wrote:
> However, it's still a shame that we have to do the mkgridmap stuff
> manually, has anyone attempted to centralise that?

It's comparatively easy to do this. These are the steps. On some 
development system with sl6 on it, set up this file:

# cat sysadmin.hep.ac.uk.repo
[sysadmin.hep.ac.uk]
name=sysadmin.hep.ac.uk
baseurl=http://map2.ph.liv.ac.uk/yum/pub/www.sysadmin.hep.ac.uk/rpms/fabric-management/RPMS.vomstools/
enabled=1
gpgcheck=0
priority=100

Then do this:
# yum install VomsSnooper
# cd /opt/GridDevel/vomssnooper/usecases/
#  mkdir puppetdpm
# cd puppetdpm
# touch novos.txt
# vi allvos.txt

In that file (allvos.txt) put the VOs you want to configure, one per 
line e.g.
atlas
gridpp

No blanks, no spaces. Then put this shell script in the same dir:

# cat doit.sh
#!/bin/bash

PATH=/opt/GridDevel/bin:$PATH

# Tool to get the CIC XML File, and parse it, making SID and VOD records
# sj, 25 Jul 2016

rm -rf glitecfg/vo.d
mkdir -p glitecfg/vo.d

# Get the XML from the CIC Portal
wget -O VOIDCardInfo.xml 
http://operations-portal.egi.eu/xml/voIDCard/public/all/true

# Make all the VODs
###vomsSnooper.sh --xmlfile VOIDCardInfo.xml  --myvos allvos.txt 
--vodfile allvos.txt --voddir glitecfg/vo.d --outfile 
glitecfg/site-info.def --nosillysids --printvodtitle

# Make all the SIDs
vomsSnooper.sh --xmlfile VOIDCardInfo.xml  --myvos allvos.txt --vodfile 
novos.txt  --voddir glitecfg/vo.d --outfile glitecfg/site-info.def 
--nosillysids --printvodtitle

And run the shell scripts
# sh ./doit.sh

You'll end up with the YAIM settings for your VOs, i.e.

# cat  glitecfg/site-info.def
VO_ATLAS_VOMS_SERVERS="'vomss://lcg-voms2.cern.ch:8443/voms/atlas?/atlas' 
'vomss://voms2.cern.ch:8443/voms/atlas?/atlas' "
VO_ATLAS_VOMSES="'atlas lcg-voms2.cern.ch 15001 
/DC=ch/DC=cern/OU=computers/CN=lcg-voms2.cern.ch atlas' 'atlas 
voms2.cern.ch 15001 /DC=ch/DC=cern/OU=computers/CN=voms2.cern.ch atlas' "
VO_ATLAS_VOMS_CA_DN="'/DC=ch/DC=cern/CN=CERN Grid Certification 
Authority' '/DC=ch/DC=cern/CN=CERN Grid Certification Authority' "

blah blah blah

Next, you need to change the format - those parameters are for YAIM, 
because when I wrote VomsSnooper, YAIM was the in-thing. But now the 
in-thing is Puppet, so there has to be some conversion done. The next 
script  does the conversion, and spits out the data in the format you 
need. It doesn't do the clinet bits, as John says you don't need them, 
and it'd take me an hour to write that program because it's a bit trick. 
Andway, give it a go and let me know how you get on.

Cheers,

Ste

--- THE PERL SCRIPT TO CONVERT THE FORMAT

#!/usr/bin/perl
use strict;

if ($#ARGV != 0) { die ("You have to give this script a site-info.def 
file\n"); }

my $siteInfoDef = $ARGV[0];

if (! -f $siteInfoDef) { die ("You have to give this script a file that 
actually exists!\n"); }

my @sidLines;
open(SID,$siteInfoDef) or die("There's still something wrong with that 
file $!");
while (<SID>) {
   my $line = $_; chomp($line);
   push (@sidLines,$line);
}
close(SID);

# first, build up the class lines
foreach my $l (@sidLines) {
   if ($l =~ /VO_.*_VOMS_SERVERS=.*\/([a-zA-Z0-9\.]+)/) {
     my $voName = $1;
     print "class{\"voms::$voName\":}\n";
   }
}
print("\n\n");

# stick in this bit

print <<"END";
lcgdm::mkgridmap::file {"lcgdm-mkgridmap":
    configfile   => "/etc/lcgdm-mkgridmap.conf",
    mapfile      => "/etc/lcgdm-mapfile",
    localmapfile => "/etc/lcgdm-mapfile-local",
    logfile      => "/var/log/lcgdm-mkgridmap.log",
    groupmap     => \$groupmap,
    localmap     => {"nobody" => "nogroup"}
}
END

# Next, build up the groupmap entries
print '$groupmap = {',"\n";
foreach my $l (@sidLines) {
   if ($l =~ /VO_.*_VOMS_SERVERS=.*\/([a-zA-Z0-9\.]+)/) {
     my $voName = $1;
     while ($l =~ /\'(\S+)\' /g) {
       my $vomssString = $1;
       print ("    \"$vomssString\"     => \"$voName\"\,\n");
     }
   }
}
print '}',"\n";




-- 

Steve Jones                             [log in to unmask]
Grid System Administrator               office: 220
High Energy Physics Division            tel (int): 43396
Oliver Lodge Laboratory                 tel (ext): +44 (0)151 794 3396
University of Liverpool                 http://www.liv.ac.uk/physics/hep/