== OMF/OML Service Installation == [[TOC(dSite*, depth=3)]] === Configure Apt Repository === To begin we'll need to add the repositories (ORBIT and !MyTestbed) to the list of sources that our console will pull packages from. This is done by running the follwing commands. '''Note: It is assumed that you have root access and can run these commands as root if needed''' To install ORBIT and !MyTestbed repositories gpg-keys into the consoles key-ring and dwonload the source lists for them execute the following commands (as root) on the console: * for 12.04 ('''precise'''): {{{ wget -qO - http://packages.orbit-lab.org/downloads/orbitapt.gpg.key | sudo apt-key add - wget -qO - http://download.opensuse.org/repositories/devel:tools:mytestbed:stable/xUbuntu_12.04/Release.key | sudo apt-key add - echo 'deb http://packages.orbit-lab.org/ubuntu trusty main' >> /etc/apt/sources.list.d/orbit.list echo 'deb http://download.opensuse.org/repositories/devel:/tools:/mytestbed:/stable/xUbuntu_12.04/ /' >> /etc/apt/sources.list.d/oml2.list }}} * for 14.04 ('''trusty'''): {{{ wget -qO - http://packages.orbit-lab.org/downloads/orbitapt.gpg.key | sudo apt-key add - wget -qO - http://download.opensuse.org/repositories/devel:tools:mytestbed:stable/xUbuntu_12.04/Release.key | sudo apt-key add - echo 'deb http://packages.orbit-lab.org/ubuntu trusty main' >> /etc/apt/sources.list.d/orbit.list echo 'deb http://download.opensuse.org/repositories/devel:/tools:/mytestbed:/stable/xUbuntu_14.04/ /' >> /etc/apt/sources.list.d/oml2.list }}} Once we have these changes in place, we need to update the repository list by executing: {{{ apt-get update }}} === Install Services === All the services can be installed via a single container package: {{{ apt-get install omf-aggmgr-geni-5.4 }}} This will install: {{{ The following extra packages will be installed: apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common auth-client-config bind9 bind9utils binutils cmap-adobe-japan1 cpp cpp-4.6 fontconfig-config frisbee gcc gcc-4.6 ghostscript gnutls-bin gs-cjk-resource gsfonts imagemagick-common imagezip isc-dhcp-server ldap-auth-client ldap-auth-config ldap-utils ldapscripts libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libavahi-client3 libavahi-common-data libavahi-common3 libc-bin libc-dev-bin libc6 libc6-dev libcap2 libcups2 libcupsimage2 libdbd-mysql-perl libdbi-perl libfontconfig1 libgomp1 libgs9 libgs9-common libhighline-ruby libhtml-template-perl libijs-0.35 libjasper1 libjbig2dec0 libjpeg-turbo8 libjpeg8 liblcms1 liblcms2-2 liblqr-1-0 libltdl7 liblua5.1-0 libmagickcore4 libmpc2 libmpfr4 libmysql-ruby1.9.1 libmysqlclient-dev libmysqlclient18 libnet-daemon-perl libnss-ldap libodbc1 libpam-ldap libpaper-utils libpaper1 libperl5.14 libplrpc-perl libquadmath0 libreadline5 libruby1.8 libruby1.9.1 libslp1 libsqlite3-ruby1.9.1 libssl0.9.8 libterm-readkey-perl libtiff4 libyaml-0-2 linux-libc-dev make manpages-dev mysql-client-5.5 mysql-client-core-5.5 mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5 nmap omf-aggmgr-accountingcommon-5.4 omf-aggmgr-accountmanagement-5.4 omf-aggmgr-autoapprover-5.4 omf-aggmgr-cmc-5.4 omf-aggmgr-common-5.4 omf-aggmgr-controlpanel-5.4 omf-aggmgr-delegatedam-5.4 omf-aggmgr-frisbee-5.4 omf-aggmgr-genimon-5.4 omf-aggmgr-instr-5.4 omf-aggmgr-inventory-5.4 omf-aggmgr-pxe-5.4 omf-aggmgr-result-5.4 omf-aggmgr-saveimage-5.4 omf-aggmgr-scheduler-5.4 omf-aggmgr-status-5.4 omf-aggmgr-wimaxrf-5.4 omf-common-5.4 omf-expctl-5.4 perl perl-base perl-modules php5-cli php5-common php5-fpm php5-ldap phpldapadmin postfix pwgen ruby ruby-highline ruby-mysql ruby-sqlite3 ruby1.8 ruby1.9.1 ruby1.9.1-dev sharutils slapd sqlite3 ssl-cert tftpd-hpa ttf-dejavu-core zlib1g-dev Suggested packages: apache2-doc apache2-suexec apache2-suexec-custom libpam-cracklib bind9-doc binutils-doc cpp-doc gcc-4.6-locales gcc-multilib autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.6-multilib libmudflap0-4.6-dev gcc-4.6-doc libgcc1-dbg libgomp1-dbg libquadmath0-dbg libmudflap0-dbg binutils-gold ghostscript-cups ghostscript-x hpijs fonts-ipafont-mincho fonts-ipafont-gothic ttf-arphic-ukai ttf-arphic-uming fonts-unfonts-core isc-dhcp-server-ldap php-pear glibc-doc cups-common libipc-sharedcache-perl libjasper-runtime liblcms-utils liblcms2-utils libmagickcore4-extra nscd libmyodbc odbc-postgresql tdsodbc unixodbc-bin slpd openslp-doc make-doc tinyca mailx perl-doc libterm-readline-gnu-perl libterm-readline-perl-perl libpod-plainer-perl php5-suhosin procmail postfix-mysql postfix-pgsql postfix-ldap postfix-pcre sasl2-bin dovecot-common postfix-cdb mail-reader postfix-doc ri ruby-dev ruby1.8-examples ri1.8 ruby1.9.1-examples ri1.9.1 graphviz sqlite3-doc openssl-blacklist syslinux-common The following NEW packages will be installed: apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common auth-client-config bind9 bind9utils binutils cmap-adobe-japan1 cpp cpp-4.6 fontconfig-config frisbee gcc gcc-4.6 ghostscript gnutls-bin gs-cjk-resource gsfonts imagemagick-common imagezip isc-dhcp-server ldap-auth-client ldap-auth-config ldap-utils ldapscripts libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libavahi-client3 libavahi-common-data libavahi-common3 libc-dev-bin libc6-dev libcap2 libcups2 libcupsimage2 libdbd-mysql-perl libdbi-perl libfontconfig1 libgomp1 libgs9 libgs9-common libhighline-ruby libhtml-template-perl libijs-0.35 libjasper1 libjbig2dec0 libjpeg-turbo8 libjpeg8 liblcms1 liblcms2-2 liblqr-1-0 libltdl7 liblua5.1-0 libmagickcore4 libmpc2 libmpfr4 libmysql-ruby1.9.1 libmysqlclient-dev libmysqlclient18 libnet-daemon-perl libnss-ldap libodbc1 libpam-ldap libpaper-utils libpaper1 libperl5.14 libplrpc-perl libquadmath0 libreadline5 libruby1.8 libruby1.9.1 libslp1 libsqlite3-ruby1.9.1 libssl0.9.8 libterm-readkey-perl libtiff4 libyaml-0-2 linux-libc-dev make manpages-dev mysql-client-5.5 mysql-client-core-5.5 mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5 nmap omf-aggmgr-accountingcommon-5.4 omf-aggmgr-accountmanagement-5.4 omf-aggmgr-autoapprover-5.4 omf-aggmgr-cmc-5.4 omf-aggmgr-common-5.4 omf-aggmgr-controlpanel-5.4 omf-aggmgr-delegatedam-5.4 omf-aggmgr-frisbee-5.4 omf-aggmgr-geni-5.4 omf-aggmgr-genimon-5.4 omf-aggmgr-instr-5.4 omf-aggmgr-inventory-5.4 omf-aggmgr-pxe-5.4 omf-aggmgr-result-5.4 omf-aggmgr-saveimage-5.4 omf-aggmgr-scheduler-5.4 omf-aggmgr-status-5.4 omf-aggmgr-wimaxrf-5.4 omf-common-5.4 omf-expctl-5.4 php5-cli php5-common php5-fpm php5-ldap phpldapadmin postfix pwgen ruby ruby-highline ruby-mysql ruby-sqlite3 ruby1.8 ruby1.9.1 ruby1.9.1-dev sharutils slapd sqlite3 ssl-cert tftpd-hpa ttf-dejavu-core zlib1g-dev The following packages will be upgraded: libc-bin libc6 perl perl-base perl-modules }}} during the install process you will be prompted to answer the following questions. The order may not match up, but each will be asked. 1. '''MySQL Installation Questions''' You will be prompted for a MySQL admin password during the install. Please '''note the password specified''', it will be '''required''' for service config later. 2. '''LDAP Server Installation Questions''' You will be promted for Ldap root passwords. The password you specify must match the password you give when configuring the client. The installer will guess the organizational structure for LDAP based on FQDN that was set during installation. For example if your machine name is console.geni.rutgers.edu, it will assume the domain is: {{{ geni.rutgers.edu => dc=geni,dc=rutgers,dc=edu }}} '''Note: For the rest of this guide we assume the domain is dc=geni,dc=rutgers,dc=edu. Please adjust this domain to match your FQDN.''' 3. '''LDAP Client Installation Questions''' When installing it, you will be asked for the following information: * base dc=geni,dc=rutgers,dc=edu * uri ldap://localhost/ * ldap_version 3 * rootbinddn cn=admin,dc=geni,dc=rutgers,dc=edu Use the defaults for all questions (this configuration will be overwritten by the OS setup script in the next section). Please make sure the password matches the password specified during the server configuration. 4. '''Postfix Installation Questions ''' Postfix will present 5 choices: * No configuration * Internet Site * Internet with smarthost * Satellite System * Local only This configuration is required but is beyond the scope of this guide. Please confer with you site's administrators as to what the appropriate e-mail routing should be. If e-mail is not configured, various notification e-mails will not be sent. === Install and Configure !OpenFire (XMPP) === 1. Install Java and Openfire 3.8.0 and Java - as root do: {{{ wget -O openfire.deb http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3.8.0_all.deb dpkg -i openfire.deb }}} 1. In the ''/etc/java-6-openjdk/security/java.security'' file, comment out the following line: {{{ security.provider.9=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg }}} 2. Open ''/etc/init.d/openfire'' file in an editor and add JAVA_HOME pointing to the correct java directory: {{{ JAVA_HOME=/usr }}} this should be inserted before the attempt to use the JAVA_HOME variable. e.g.: {{{ ### END INIT INFO JAVA_HOME=/usr # Attempt to locate JAVA_HOME, code borrowed from jabref package if [ -z $JAVA_HOME ] then t=/usr/lib/jvm/java-1.5.0-sun && test -d $t && JAVA_HOME=$t t=/usr/lib/jvm/java-6-sun && test -d $t && JAVA_HOME=$t fi }}} 3. Start openfire using command {{{ /etc/init.d/openfire start }}} 4. Check if openfire is running: ps -ef | grep java . Startup can take a while, please be patient. You should see a line like: {{{ openfire 13150 1 17 16:52 ? 00:00:01 /usr/bin/java -server -DopenfireHome=/usr/share/openfire -Dopenfire.lib.dir=/usr/share/openfire/lib -classpath /usr/share/openfire/lib/startup.jar -jar /usr/share/openfire/lib/startup.jar }}} 5. Direct your web browser to http://console.geni.rutgers.edu:9090 and begin the setup wizard. It should look like:[[BR]] [[Image(Openfire.png,width=450px)]] 6. Choose your language and click continue 7. Specify '''xmpp''' as the domain (do not include the fqdn). Leave the port numbers as the default values (i.e. 9090 and 9091).[[BR]] [[Image(DomainName.png,width=450px)]][[BR]] 8. Choose the embedded database and continue.[[BR]] [[Image(EmbedDatabase.png,width=450px)]][[BR]] 9. Choose the default profile and click continue[[BR]] [[Image(ProfileSettings.png,width=450px)]][[BR]] 10. Enter an admin e-mail address and password, then click continue. The default username is '''admin''', and together with the specified password, will be used to access the openfire console.[[BR]] [[Image(AdminCred.png,width=450px)]][[BR]] 11. You should be able to login to this console now with the specified credentials.[[BR]] [[Image(Done.png,width=450px)]][[BR]] [[Image(OpenfireLogin.png,width=450px)]]