<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://egee.cesnet.cz/mediawiki/skins/common/feed.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>EgeeWiki - Recent changes [en]</title>
		<link>http://egee.cesnet.cz/mediawiki/index.php/Special:Recentchanges</link>
		<description>Track the most recent changes to the wiki on this page.</description>
		<language>en</language>
		<generator>MediaWiki 1.5.5</generator>
		<lastBuildDate>Tue, 21 May 2013 03:19:16 GMT</lastBuildDate>
		<item>
			<title>User:Valtri/Jenkins</title>
			<link>http://egee.cesnet.cz/mediawiki/index.php/User:Valtri/Jenkins</link>
			<description>&lt;p&gt;/* Info */ - more gpg keys&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Info =&lt;br /&gt;
&lt;br /&gt;
* '''URL''': https://emian.zcu.cz:8443/jenkins/&lt;br /&gt;
* '''credentials''': root@emain.zcu.cz:/etc/tomcat6/tomcat-users.xml&lt;br /&gt;
* '''platforms''': SL5/32, SL5/64, SL6/32, SL6/64, Fedora 17/64, Fedora 18/64, Debian 6/64&lt;br /&gt;
* '''gpg keys''':&lt;br /&gt;
** http://scientific.zcu.cz/repos/jenkins-builder.asc (main) - 7BBFDF7C&lt;br /&gt;
** http://scientific.zcu.cz/repos/jenkins-builder-sl5.asc (for SL5) - 64FA8786&lt;br /&gt;
** http://scientific.zcu.cz/repos/valtri.asc (externals) - 7157882F&lt;br /&gt;
&lt;br /&gt;
= Builds =&lt;br /&gt;
&lt;br /&gt;
There are two parts of each build:&lt;br /&gt;
# '''source''' build (canl-c-sources-*, gridsite-sources-*, glite-lb-soures-*, ...)&lt;br /&gt;
# '''binary''' build (canl-c-build-*, gridsite-build-*, glite-lb-build-*, ...)&lt;br /&gt;
&lt;br /&gt;
The reason is to have the same source tarballs for all binary builds.&lt;br /&gt;
&lt;br /&gt;
There are different builds for each branch:&lt;br /&gt;
# '''devel''' - current development branches (master, g_with_canl_1_0, ...)&lt;br /&gt;
# '''release''' - latest tagged versions&lt;br /&gt;
&lt;br /&gt;
== Cloning configurations ==&lt;br /&gt;
&lt;br /&gt;
The origin for all configurations should be the development ones.&lt;br /&gt;
&lt;br /&gt;
Create or update release configurations:&lt;br /&gt;
&lt;br /&gt;
# create a new job COMPONENT-build-release&lt;br /&gt;
#* clone of COMPONENT-build-devel (or clone of other active branch)&lt;br /&gt;
#* (keep &amp;quot;Discard Old Builds&amp;quot;)&lt;br /&gt;
#* replace download in Build/Commands: from '*-sources-devel&amp;quot; to &amp;quot;*-sources-release&amp;quot;&lt;br /&gt;
# create a new job COMPONENT-sources-release&lt;br /&gt;
#* clone of COMPONENT-sources-devel (or clone of other active branch)&lt;br /&gt;
#* (keep &amp;quot;Discard Old Builds&amp;quot;)&lt;br /&gt;
#* edit git tag (or update build commands if checkout is there)&lt;br /&gt;
#* remove &amp;quot;Build/Triggers/Poll SCM&amp;quot;&lt;br /&gt;
#* comment out sed on project/version.properties (and update Makefile.inc if it's gridsite)&lt;br /&gt;
#* change &amp;quot;Post-build Actions/Build other project&amp;quot;: from COMPONENT-build-devel to COMPONENT-build-release&lt;br /&gt;
&lt;br /&gt;
= Tricks =&lt;br /&gt;
&lt;br /&gt;
'''Trigger Build''':&lt;br /&gt;
 wget -q http://localhost:8080/jenkins/job/log4c/build?token=BUILD&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
* '''Key preparation''':&lt;br /&gt;
 # X509 -&amp;gt; pkcs12&lt;br /&gt;
 # (enter some passphrase)&lt;br /&gt;
 openssl pkcs12 -export -in server.crt -inkey server.key \&lt;br /&gt;
                -out server.p12 -name some-alias \&lt;br /&gt;
                -certfile concatenedCAFiles.pem&lt;br /&gt;
 # pkcs12 -&amp;gt; java&lt;br /&gt;
 # (use the same password for store and for key)&lt;br /&gt;
 keytool -importkeystore \&lt;br /&gt;
         -deststorepass changeit -destkeypass changeit -destkeystore server.keystore \&lt;br /&gt;
         -srckeystore server.p12 -srcstoretype PKCS12 -srcstorepass some-password \&lt;br /&gt;
         -alias some-alias&lt;br /&gt;
&lt;br /&gt;
* '''User''':&lt;br /&gt;
 adduser --disabled-password jenkins&lt;br /&gt;
 usermod -a -G jenkins tomcat6&lt;br /&gt;
 #? usermod -a -G tomcat6 jenkins&lt;br /&gt;
 chmod -R g+w /home/jenkins&lt;br /&gt;
&lt;br /&gt;
* '''Tomcat''':&lt;br /&gt;
&amp;lt;tt&amp;gt;/etc/tomcat6/server.xml&amp;lt;/tt&amp;gt; - &amp;lt;tt&amp;gt;Connector&amp;lt;/tt&amp;gt;:&lt;br /&gt;
    &amp;amp;lt;!-- Define a SSL HTTP/1.1 Connector on port 8443&lt;br /&gt;
         This connector uses the JSSE configuration, when using APR, the &lt;br /&gt;
         connector should be using the OpenSSL style configuration&lt;br /&gt;
         described in the APR documentation --&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;Connector port=&amp;quot;8443&amp;quot; protocol=&amp;quot;HTTP/1.1&amp;quot; SSLEnabled=&amp;quot;true&amp;quot;&lt;br /&gt;
               maxThreads=&amp;quot;150&amp;quot; scheme=&amp;quot;https&amp;quot; secure=&amp;quot;true&amp;quot;&lt;br /&gt;
               clientAuth=&amp;quot;want&amp;quot; sslProtocol=&amp;quot;TLS&amp;quot; &lt;br /&gt;
               keystorePass=&amp;quot;*CENSOORED*&amp;quot; URIEncoding=&amp;quot;UTF-8&amp;quot; /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/etc/default/tomcat6&amp;lt;/tt&amp;gt; - java opts:&lt;br /&gt;
 # increase maximal memory heap&lt;br /&gt;
 # set jenkins home&lt;br /&gt;
 # for example:&lt;br /&gt;
 JAVA_OPTS=&amp;quot;-Djava.awt.headless=true -Xmx512m -XX:+UseConcMarkSweepGC -DJENKINS_HOME=/home/jenkins&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* '''Tomcat6 &amp;amp;amp; Debian''':&lt;br /&gt;
 sed -i 's/.*\(TOMCAT6_SECURITY\)=.*/\1=yes/' /etc/default/tomcat6&lt;br /&gt;
 &lt;br /&gt;
 # TODO: specific properties&lt;br /&gt;
 # TODO2: properties for who?&lt;br /&gt;
 cat &amp;gt;/etc/tomcat6/policy.d/04webapps.policy &amp;lt;&amp;lt;EOF&lt;br /&gt;
 grant {&lt;br /&gt;
     permission java.util.PropertyPermission &amp;quot;*&amp;quot;, &amp;quot;read&amp;quot;;&lt;br /&gt;
 };&lt;br /&gt;
 grant codeBase &amp;quot;file:/var/lib/tomcat6/webapps/jenkins/-&amp;quot; {&lt;br /&gt;
     permission java.security.AllPermission;&lt;br /&gt;
 };&lt;br /&gt;
 grant codeBase &amp;quot;file:/home/jenkins/-&amp;quot; {&lt;br /&gt;
     permission java.security.AllPermission;&lt;br /&gt;
 };&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
* '''GUI''':&lt;br /&gt;
** Configure Global Security&lt;br /&gt;
*** Matrix-based security ...&lt;br /&gt;
*** Security Realm: Delegate to servlet container (then edit &amp;lt;tt&amp;gt;/etc/tomcat6/tomcat-users.xml&amp;lt;/tt&amp;gt;)&lt;br /&gt;
** Manage Plugins&lt;br /&gt;
*** update&lt;br /&gt;
*** install &amp;quot;Git Plugin&amp;quot;, &amp;quot;Jenkins Mailer&amp;quot;, &amp;quot;GitHub Plugin&amp;quot;&lt;br /&gt;
** copy https://software.sandia.gov/trac/fast/browser/hudson/master/launch_krb5_slave.sh to &amp;lt;tt&amp;gt;~jenkins/scripts&amp;lt;/tt&amp;gt; and adjust&lt;br /&gt;
&lt;br /&gt;
= Node preparation =&lt;br /&gt;
&lt;br /&gt;
* we need gpg key for Jenkins&lt;br /&gt;
** beware of SL 5: there is limited support of keys, use SL 5 gnupg defaults to generate&lt;br /&gt;
&lt;br /&gt;
Now, let's compare SL/Fedora build system setup (one useradd) with the Debian machinery. :-)&lt;br /&gt;
&lt;br /&gt;
== Scientific Linux ==&lt;br /&gt;
 ~/guest/epel.sh&lt;br /&gt;
 &lt;br /&gt;
 # SELinux&lt;br /&gt;
 ...&lt;br /&gt;
 # for SL5:&lt;br /&gt;
 semanage fcontext -a -s system_u -t user_home_t '/var/lib/jenkins/.+'&lt;br /&gt;
 semanage fcontext -a -s system_u -t krb5_home_t '/var/lib/jenkins/\.k5login'&lt;br /&gt;
 restorecon -Rv /var/lib/jenkins&lt;br /&gt;
 # for SL6:&lt;br /&gt;
 semanage fcontext -a -e /home/SOME_USER /var/lib/jenkins&lt;br /&gt;
 restorecon -R -v /var/lib/jenkins&lt;br /&gt;
 &lt;br /&gt;
 yum install createrepo rpm-sign&lt;br /&gt;
 # install old version of mock and add exception to repository&lt;br /&gt;
 #rpm -i mock-1.0.28-1.el5.noarch.rpm&lt;br /&gt;
 #rpm -i mock-1.1.21-1.el6.noarch.rpm&lt;br /&gt;
 ...&lt;br /&gt;
 &lt;br /&gt;
 yum install policycoreutils-python&lt;br /&gt;
 yum install java-1.7.0-openjdk&lt;br /&gt;
 &lt;br /&gt;
 useradd -m -d /var/lib/jenkins -u 1000 jenkins&lt;br /&gt;
 echo &amp;quot;jenkins/emian.zcu.cz@ZCU.CZ&amp;quot; &amp;gt; ~jenkins/.k5login&lt;br /&gt;
 chown jenkins:jenkins ~jenkins/.k5login&lt;br /&gt;
 usermod -a -G mock jenkins&lt;br /&gt;
 echo &amp;quot;%_gpg_name Jenkins Builder &amp;lt;jenkins@emian.zcu.cz&amp;gt;&amp;quot; &amp;gt;&amp;gt; ~jenkins/.rpmmacros&lt;br /&gt;
 chown jenkins:jenkins ~jenkins/.rpmmacros&lt;br /&gt;
 &lt;br /&gt;
 # copy .gnupg&lt;br /&gt;
 # beware for SL5: RSA &amp;gt;= 2048 bit doesn't work, use gnupg default&lt;br /&gt;
 ...&lt;br /&gt;
 chown -R jenkins:jenkins ~jenkins/.gnupg/&lt;br /&gt;
 #rpm --import ...&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
== Fedora ==&lt;br /&gt;
 yum install createrepo rpm-sign&lt;br /&gt;
 # install old version of mock and add exception to repository&lt;br /&gt;
 #rpm -i mock-1.1.26-2.fc17.noarch.rpm&lt;br /&gt;
 #rpm -i mock-1.1.26-2.fc18.noarch.rpm&lt;br /&gt;
 ...&lt;br /&gt;
 &lt;br /&gt;
 useradd -m -d /var/lib/jenkins -u 1000 jenkins&lt;br /&gt;
 echo &amp;quot;jenkins/emian.zcu.cz@ZCU.CZ&amp;quot; &amp;gt; ~jenkins/.k5login&lt;br /&gt;
 chown jenkins:jenkins ~jenkins/.k5login&lt;br /&gt;
 usermod -a -G mock jenkins&lt;br /&gt;
 echo &amp;quot;%_gpg_name Jenkins Builder &amp;lt;jenkins@emian.zcu.cz&amp;gt;&amp;quot; &amp;gt;&amp;gt; ~jenkins/.rpmmacros&lt;br /&gt;
 chown jenkins:jenkins ~jenkins/.rpmmacros&lt;br /&gt;
 &lt;br /&gt;
 # copy .gnupg&lt;br /&gt;
 ...&lt;br /&gt;
 chown -R jenkins:jenkins ~jenkins/.gnupg/&lt;br /&gt;
 #rpm --import ...&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
== Debian ==&lt;br /&gt;
&lt;br /&gt;
'''pbuilder machinery''':&lt;br /&gt;
 cat &amp;gt; /root/.pbuilderrc &amp;lt;&amp;lt;EOF&lt;br /&gt;
 OTHERMIRROR='deb http://scientific.zcu.cz/repos/EMI3-external/debian/ stable/|deb file:///home/jenkins/tomcat-debian-externals/ stable/|deb file:///home/jenkins/tomcat-debian/ stable/'&lt;br /&gt;
 BINDMOUNTS=&amp;quot;/home/jenkins/tomcat-debian-externals /home/jenkins/tomcat-debian&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 cat &amp;gt; ~jenkins/.pbuilderrc &amp;lt;&amp;lt;EOF&lt;br /&gt;
 OTHERMIRROR='deb http://scientific.zcu.cz/repos/EMI3-external/debian/ stable/|deb file:///home/jenkins/debian-externals/ stable/|deb file:///home/jenkins/debian/ stable/'&lt;br /&gt;
 BINDMOUNTS=&amp;quot;/home/jenkins/debian-externals /home/jenkins/debian&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 cat &amp;gt; ~jenkins/.mini-dinstall.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
 [DEFAULT]&lt;br /&gt;
 archive_style=flat&lt;br /&gt;
 archivedir=~/debian&lt;br /&gt;
 architectures=all, i386, powerpc, sparc, amd64&lt;br /&gt;
 mail_on_success=false&lt;br /&gt;
 generate_release=true&lt;br /&gt;
 &lt;br /&gt;
 [stable]&lt;br /&gt;
 alias=squeezy&lt;br /&gt;
 &lt;br /&gt;
 [unstable]&lt;br /&gt;
 alias=wheezy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 cat &amp;gt; ~jenkins/.mini-dinstall-externals.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
 [DEFAULT]&lt;br /&gt;
 archive_style=flat&lt;br /&gt;
 archivedir=~/debian-externals&lt;br /&gt;
 architectures=all, i386, powerpc, sparc, amd64&lt;br /&gt;
 mail_on_success=false&lt;br /&gt;
 generate_release=true&lt;br /&gt;
 &lt;br /&gt;
 [stable]&lt;br /&gt;
 alias=squeezy&lt;br /&gt;
 &lt;br /&gt;
 [unstable]&lt;br /&gt;
 alias=wheezy&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 cat &amp;gt; ~jenkins/.dput.cf &amp;lt;&amp;lt;EOF&lt;br /&gt;
 [local]&lt;br /&gt;
 fqdn                    = localhost&lt;br /&gt;
 method                  = local&lt;br /&gt;
 incoming                = ~/debian/mini-dinstall/incoming&lt;br /&gt;
 run_dinstall            = 0&lt;br /&gt;
 post_upload_command     = /usr/bin/mini-dinstall -v --debug --batch ~/debian&lt;br /&gt;
 &lt;br /&gt;
 [local_externals]&lt;br /&gt;
 fqdn                    = localhost&lt;br /&gt;
 method                  = local&lt;br /&gt;
 incoming                = ~/debian-externals/mini-dinstall/incoming&lt;br /&gt;
 run_dinstall            = 0&lt;br /&gt;
 post_upload_command     = /usr/bin/mini-dinstall -v --debug --batch -c ~/.mini-dinstall-externals.conf ~/debian-externals&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 chown jenkins:jenkins ~jenkins/.pbuilderrc ~jenkins/.mini-dinstall.conf ~jenkins/.mini-dinstall-externals.conf ~jenkins/.dput.cf&lt;br /&gt;
 mkdir -p /home/jenkins/debian/mini-dinstall/incoming /home/jenkins/debian-externals/mini-dinstall/incoming&lt;br /&gt;
 chown jenkins:jenkins /home/jenkins/debian/mini-dinstall/incoming /home/jenkins/debian-externals/mini-dinstall/incoming&lt;br /&gt;
&lt;br /&gt;
 # to build by Jenkins under tomcat too&lt;br /&gt;
 cd ~jenkins&lt;br /&gt;
 cp .dput.cf .mini-dinstall*.conf .pbuilderrc ~tomcat6/&lt;br /&gt;
 cd ~tomcat6&lt;br /&gt;
 sed -i 's,~,/home/jenkins,' .dput.cf .mini-dinstall*.conf&lt;br /&gt;
 chown tomcat6:tomcat6 .dput.cf .mini-dinstall*.conf .pbuilderrc&lt;br /&gt;
 &lt;br /&gt;
 cp -rp ~jenkins/.gnupg ~tomcat6/&lt;br /&gt;
 chown -R ~tomcat6/.gnupg&lt;br /&gt;
&lt;br /&gt;
'''/etc/sudoers''':&lt;br /&gt;
 jenkins,tomcat6 ALL=(root) NOPASSWD: SETENV: /usr/sbin/pbuilder --build --buildresult /home/jenkins/[a-zA-Z0-9_/-]* --debbuildopts [ ]--debbuildopts [ ]--hookdir /home/jenkins/[a-zA-Z0-9_/-]* *&lt;br /&gt;
 jenkins,tomcat6 ALL=(root) NOPASSWD: /bin/rm -rfv results, /bin/rm -rfv results/pbuilder&lt;br /&gt;
&lt;br /&gt;
'''initial image''':&lt;br /&gt;
 pbuilder --create --distribution squeeze&lt;/div&gt;</description>
			<pubDate>Fri, 17 May 2013 08:33:38 GMT</pubDate>			<dc:creator>Frantisek Dvorak</dc:creator>			<comments>http://egee.cesnet.cz/mediawiki/index.php/User_talk:Valtri/Jenkins</comments>		</item>
		<item>
			<title>User:Valtri</title>
			<link>http://egee.cesnet.cz/mediawiki/index.php/User:Valtri</link>
			<description>&lt;p&gt;&lt;/p&gt;

			&lt;table border='0' width='98%' cellpadding='0' cellspacing='4' class='diff'&gt;
			&lt;tr&gt;
				&lt;td colspan='2' width='50%' align='center' class='diff-otitle'&gt;Revision as of 20:05, 16 May 2013&lt;/td&gt;
				&lt;td colspan='2' width='50%' align='center' class='diff-ntitle'&gt;Current revision&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; align=&quot;left&quot;&gt;&lt;strong&gt;Line 24:&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan=&quot;2&quot; align=&quot;left&quot;&gt;&lt;strong&gt;Line 24:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class='diff-context'&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class='diff-context'&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td class='diff-context'&gt;* VOMS setup-script: [[Image:Voms-install.sh]]&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td class='diff-context'&gt;* VOMS setup-script: [[Image:Voms-install.sh]]&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class='diff-addedline'&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class='diff-addedline'&gt;'''Jenkins'''':&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td class='diff-addedline'&gt;* [[User:Valtri/Jenkins]]&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</description>
			<pubDate>Thu, 16 May 2013 20:05:59 GMT</pubDate>			<dc:creator>Frantisek Dvorak</dc:creator>			<comments>http://egee.cesnet.cz/mediawiki/index.php/User_talk:Valtri</comments>		</item>
	</channel>
</rss>