<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://t2bwiki.iihe.ac.be/index.php?action=history&amp;feed=atom&amp;title=ProdAgentUsers</id>
	<title>ProdAgentUsers - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://t2bwiki.iihe.ac.be/index.php?action=history&amp;feed=atom&amp;title=ProdAgentUsers"/>
	<link rel="alternate" type="text/html" href="https://t2bwiki.iihe.ac.be/index.php?title=ProdAgentUsers&amp;action=history"/>
	<updated>2026-05-16T11:26:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://t2bwiki.iihe.ac.be/index.php?title=ProdAgentUsers&amp;diff=224&amp;oldid=prev</id>
		<title>Maintenance script: Created page with &quot; === ProdAgent for IIHE users === * instructions for LCG5 prod team ==== begin ==== *login on master3 and make sure you are using bash *cd to your prodag...&quot;</title>
		<link rel="alternate" type="text/html" href="https://t2bwiki.iihe.ac.be/index.php?title=ProdAgentUsers&amp;diff=224&amp;oldid=prev"/>
		<updated>2015-08-26T12:28:58Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot; === ProdAgent for IIHE users === *&lt;a href=&quot;/ProdAgentProd&quot; title=&quot;ProdAgentProd&quot;&gt; instructions for LCG5 prod team&lt;/a&gt; ==== begin ==== *login on master3 and make sure you are using bash *cd to your prodag...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
=== ProdAgent for IIHE users ===&lt;br /&gt;
*[[ProdAgentProd| instructions for LCG5 prod team]]&lt;br /&gt;
==== begin ====&lt;br /&gt;
*login on master3 and make sure you are using bash&lt;br /&gt;
*cd to your prodagent workspace&lt;br /&gt;
*setup the environment &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  source /msa3/prodagent/start.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*if your proxy was not valid anymore, generate a new one with the new_proxy script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 source /msa3/prodagent/new_proxy.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**for production user run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 source /msa3/prodagent/new_proxy_prod.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*make sure that prodAgentd is running&lt;br /&gt;
**check status with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  prodAgentd --status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**start it with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  prodAgentd --start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**stop it with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  prodAgentd --shutdown&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== first time setup ====&lt;br /&gt;
*make sure you are registered in VO cms&lt;br /&gt;
**you will probably need a production role&lt;br /&gt;
*login on master3&lt;br /&gt;
*most scripts and commands are in bash, so use bash&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*create a new directory that you will use as working area.&lt;br /&gt;
**current setup needs to be done on a local disk. this will change.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 DIR=/some/dir/&amp;lt;tt&amp;gt;whoami&amp;lt;/tt&amp;gt;/prodagent&lt;br /&gt;
 mkdir -p $DIR&lt;br /&gt;
 cd $DIR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*setup the prodagent environment using the start_new.sh script. The script contains/does the following things:&lt;br /&gt;
**set the version of prodagent and setup the environment according to this verison&lt;br /&gt;
**creates a directory for the gridproxy and changes the environment according to this variable&lt;br /&gt;
**this allows you to be consistent when you switch between VOs and VOMS roles. when doing other work.&lt;br /&gt;
**when the directory is created on nfs-space, you can &amp;quot;take&amp;quot; your proxy from machine to machine&lt;br /&gt;
**will display the validity of the proxy&lt;br /&gt;
**initialise prodagent. this will (for LCG)&lt;br /&gt;
**create some xml files in &amp;lt;tt&amp;gt;$PWD/work&amp;lt;/tt&amp;gt; &lt;br /&gt;
**set the correct working directory for prodagent&lt;br /&gt;
**set the LCG jobcreator&lt;br /&gt;
**set the LCG submitter&lt;br /&gt;
**set test DBS/DLS values. See later instructions for official production values.&lt;br /&gt;
**set some default merge sizes&lt;br /&gt;
**set the phedex dropbox path&lt;br /&gt;
**run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 source /msa3/prodagent/start_new.sh &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*if your proxy was not valid anymore, generate a new one with the new_proxy script. This script will&lt;br /&gt;
**set correct directory for the proxy&lt;br /&gt;
**create new proxy with correct VO and VOMS role&lt;br /&gt;
**set myproxy if needed with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 source /msa3/prodagent/new_proxy.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*give your Prodagent config a &amp;#039;&amp;#039;&amp;#039;unique&amp;#039;&amp;#039;&amp;#039; name&lt;br /&gt;
**the name is used for monitoring purposes, and always displayed as &amp;#039;name&amp;#039;@&amp;#039;host&amp;#039;&lt;br /&gt;
**the name is also used to setup database access&lt;br /&gt;
**this setup uses a central MySQL DB for operation. if you want to install something locally (fully under your own control), please see section &amp;#039;&amp;#039;Local database setup&amp;#039;&amp;#039;&lt;br /&gt;
**run &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  export MYPANAME=&amp;lt;yourname&amp;gt;&lt;br /&gt;
  export MYSQLPASSWD=&amp;lt;yourpassword&amp;gt;&lt;br /&gt;
  source /msa3/prodagent/setup_dbaccess.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**you will be prompted 2 times for a root user db password. ask the site admins for this password.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Please provide the mysql user name (typically &amp;quot;root&amp;quot;) for updating the&lt;br /&gt;
  database server (leave empty if not needed): root&lt;br /&gt;
&lt;br /&gt;
  Please provide mysql passwd associated to this user name for&lt;br /&gt;
  updating the database server:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**when prompted with the following warning, press &amp;lt;tt&amp;gt;Y&amp;lt;/tt&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 You will be using ports and hosts settings instead of&lt;br /&gt;
 sockets. Are you sure you want to use this to connect&lt;br /&gt;
 to a database as it is a potential security risk? (Y/n)&lt;br /&gt;
  Y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Local database setup ====&lt;br /&gt;
To be used for local testing. You don&amp;#039;t need access to the central DB but your workspace must be installed on a local disk.&lt;br /&gt;
*create a new directory that you will use as working area.&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;setup needs to be done on a local disk.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 DIR=/scratch/&amp;lt;tt&amp;gt;whoami&amp;lt;/tt&amp;gt;/prodagent&lt;br /&gt;
 mkdir -p $DIR&lt;br /&gt;
 cd $DIR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*setup the prodagent environment using the start_new.sh script.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 source /msa3/prodagent/start_new.sh &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*if your proxy was not valid anymore, generate a new one with the new_proxy script.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 source /msa3/prodagent/new_proxy.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*give your Prodagent config a &amp;#039;&amp;#039;&amp;#039;unique&amp;#039;&amp;#039;&amp;#039; name&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  prodAgent-edit-config --component=ProdAgent --parameter=ProdAgentName --value=&amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*install the database part&lt;br /&gt;
**choose a password for the user and set it&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  export MYSQLPASSWD=somegoodpassword&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**run &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  source /msa3/prodagent/setup_local_mysqldb.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**you will be prompted twice for a root user db password. this is your previous password prefixed with root.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Please provide the mysql user name (typically &amp;quot;root&amp;quot;) for updating the&lt;br /&gt;
  database server (leave empty if not needed): root&lt;br /&gt;
&lt;br /&gt;
  Please provide mysql passwd associated to this user name for&lt;br /&gt;
  updating the database server:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example test exercise ====&lt;br /&gt;
You should be able to run this after the initialisation&lt;br /&gt;
*start prodagent&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  prodAgentd --start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*setup your CMS environment (if not already done)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  export VO_CMS_SW_DIR=/msa3/cmssoft&lt;br /&gt;
  source $VO_CMS_SW_DIR/cmsset_default.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**to check wheter or not the environment is already setup, see if the following command returns something useful &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  which cmsRun&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*go to your project directory do an eval-scram-runtime&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oldpwd=$PWD&lt;br /&gt;
 cd /some/path/CMSSW_1_2_0&lt;br /&gt;
 eval &amp;lt;tt&amp;gt;scramv1 ru -sh&amp;lt;/tt&amp;gt;&lt;br /&gt;
 cd $oldpwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*take an [http://mon.iihe.ac.be/trac/t2b/attachment/wiki/ProdAgentUsers/test-iihe-fullprod-1.cfg?format=raw example production config file] and convert it in a workflow&lt;br /&gt;
**it will create some other files, one is the actual workflow file &amp;lt;tt&amp;gt;test-iihe-fullprod-1-Workflow.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
**Note that:&lt;br /&gt;
**when using createPreProdWorkflow.py the PoolOutputModule name in the PSet cfg file should be compliant with the conventions to reflect the data tier the output file contains (i.e. GEN-SIM , GEN-SIM-DIGI ).&lt;br /&gt;
**when using createProductionWorkflow.py the PSet cfg file should have a PSet datset structure with the datatier explicitelly defined. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  mkdir -p first-test&lt;br /&gt;
  cd first-test&lt;br /&gt;
  wget -O test-iihe-fullprod-1.cfg http://mon.iihe.ac.be/trac/t2b/attachment/wiki/ProdAgentUsers/test-iihe-fullprod-1.cfg?format=raw&lt;br /&gt;
  python $PRODAGENT_ROOT/util/createProductionWorkflow.py --cfg $PWD/test-iihe-fullprod-1.cfg --version CMSSW_1_2_0 --fake-hash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*submit the jobs&lt;br /&gt;
**the workflow defined by &amp;lt;tt&amp;gt;--workflow=&amp;lt;/tt&amp;gt; needs to be a full path&lt;br /&gt;
**selecting one specific site can be done by setting &amp;lt;tt&amp;gt;--site-pref=&amp;lt;/tt&amp;gt; to sthe storage element of the site&lt;br /&gt;
**eg &amp;lt;tt&amp;gt;--site-pref=maite.iihe.ac.be&amp;lt;/tt&amp;gt; wil select IIHE&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 python $PRODAGENT_ROOT/test/python/IntTests/InjectTestLCG.py --workflow=$PWD/test-iihe-fullprod-1-Workflow.xml --site-pref=maite.iihe.ac.be --run=99999 --nevts=10 --njobs=3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*everything will now run in background&lt;br /&gt;
**check status explicitly&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  boss q -c $PRODAGENT_WORKDIR/BOSS/config &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**see [https://twiki.cern.ch/twiki/bin/view/CMS/BOSS4QueryingTaskStatus BOSS4MiniHowTo &amp;gt; BOSS4QueryingTaskStatus] for the output of the boss query command&lt;br /&gt;
**see the detailed status in $PRODAGENT_WORKDIR/JobTracking/ComponentLog&lt;br /&gt;
**succesful jobs are in $PRODAGENT_WORKDIR/SuccessArchiveDir&lt;br /&gt;
**failed jobs are in $PRODAGENT_WORKDIR/FailureArchiveDir&lt;br /&gt;
&lt;br /&gt;
==== Barimonitoring ====&lt;br /&gt;
*Full description at [https://twiki.cern.ch/twiki/bin/view/CMS/ProdAgentBariMonitoring ProdAgentBariMonitoring]&lt;br /&gt;
*set &amp;lt;tt&amp;gt;export MYTESTAREA=/msa3/prodagent&amp;lt;/tt&amp;gt;&lt;br /&gt;
*run &amp;lt;tt&amp;gt;$PRODAGENT_ROOT/src/php/BariMonitoring/install.sh&amp;lt;/tt&amp;gt;&lt;br /&gt;
*output from the install script&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Installation finished&lt;br /&gt;
  Log in your mysql server as root and execute the following command,&lt;br /&gt;
  where ProdAgentUser and ProdAgentPassword has to be replaced with your&lt;br /&gt;
  settings as defined in fields user and passwd in block ProdAgentDB in&lt;br /&gt;
  your Production Agent configuration file.&lt;br /&gt;
&lt;br /&gt;
  mysql&amp;gt; UPDATE mysql.user&lt;br /&gt;
         SET Password = OLD_PASSWORD(&amp;#039;ProdAgentPassword&amp;#039;)&lt;br /&gt;
         WHERE Host = &amp;#039;localhost&amp;#039; AND User = &amp;#039;ProdAgentUser&amp;#039;;&lt;br /&gt;
  mysql&amp;gt; FLUSH PRIVILEGES;&lt;br /&gt;
&lt;br /&gt;
  Start the deamon to get component log messages updated regularly :&lt;br /&gt;
  (cd /user/stdweird/prod/monitoring/apache/htdocs/PA; nohup sh ComponentLog.sh &amp;amp;)&lt;br /&gt;
&lt;br /&gt;
  Start apache:&lt;br /&gt;
  /user/stdweird/prod/monitoring/apache/bin/apachectl start&lt;br /&gt;
&lt;br /&gt;
  Set the password for restricted area:&lt;br /&gt;
  /user/stdweird/prod/monitoring/apache/bin/htpasswd -n prodagent &amp;gt;&amp;gt; /user/stdweird/prod/monitoring/apache/htdocs/PA/restricted_folder/.htpasswd&lt;br /&gt;
&lt;br /&gt;
  Point your browser to http://localhost:8080/PA/index.php&lt;br /&gt;
&lt;br /&gt;
  When necessary, stop the apache server:&lt;br /&gt;
  /user/stdweird/prod/monitoring/apache/bin/apachectl stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*in apache/conf/httpd.conf add &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Listen 127.0.0.1:8080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*multiple instances of the monitoring&lt;br /&gt;
**create new adodb cache dir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  mkdir -p /tmp/adodb_cache1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**modify line in &amp;lt;tt&amp;gt;htdocs/PA/common/dbLib-FTS.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $ADODB_CACHE_DIR = &amp;quot;/tmp/adodb_cache1&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**in apache/conf/httpd.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Listen 127.0.0.1:8081&lt;br /&gt;
  Port 8081&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**point browser to port [http://localhost:8081/PA/index.php 2nd monitoring instance on port 8081]&lt;br /&gt;
&lt;br /&gt;
==== Links ====&lt;br /&gt;
*Full configuration explanation at the [https://twiki.cern.ch/twiki/bin/view/CMS/ProdAgentConfiguration prodagent config page]&lt;br /&gt;
*Original [https://twiki.cern.ch/twiki/bin/view/CMS/ReqInjtoDBSTest2 LCG Test Example] &lt;br /&gt;
*[https://twiki.cern.ch/twiki/bin/view/CMS/ProdAgentDB ProdAgentDB instructions]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{TracNotice|{{PAGENAME}}}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
</feed>