The script has supporting files including the latest version of GlassFish and Java JDK. The files need to be copied to a directory called /tmp/gf_install The script itself can be run from any location - user's home directory makes the most sense
#!/bin/bash
DOMAIN_NAME=`hostname --short`
#read -p "Enter domain name " DOMAIN_NAME
TMP_DIR="/tmp/gf_install"
# Use with AD Authentication
#ASADMIN="sudo -u appadmin /opt/AppSrv/glassfish3/glassfish/bin/asadmin -W ${TMP_DIR}/password"
# Use without AD Authentication
ASADMIN="/opt/AppSrv/glassfish3/glassfish/bin/asadmin -W ${TMP_DIR}/password"
KEYSTORE_FILE="/opt/AppSrv/glassfish3/glassfish/domains/${DOMAIN_NAME}/config"
svn_prep (){
cd /opt
sudo svn checkout http://svn.fbfs.com/midtierscripts/
sudo chown -R appadmin:users /opt/midtierscripts
mkdir /tmp/gf_install
cd /opt/midtierscripts/serverInstall
cp answer password password2 glassfish /tmp/gf_install
cp /mnt/midtier_devtools/midtier/gfinstall/* /tmp/gf_install
}
edit_answer (){
sed -i -silent s/newdomain/${DOMAIN_NAME}/g ${TMP_DIR}/answer
}
java_install (){
sudo mkdir /opt/java ;
tar zxf ${TMP_DIR}/jdk-7u3-linux-x64.tar.gz -C ${TMP_DIR}
sudo mv ${TMP_DIR}/jdk1.7.0_03/* /opt/java
#sudo cp ${TMP_DIR}/jdk.sh /etc/profile.d/jdk.sh
#source /etc/profile.d/jdk.sh
sudo chown -R appadmin:users /opt/java/
}
gf_install (){
chmod +x ${TMP_DIR}/glassfish-3.1.2.2-unix.sh
# Use with AD Authentication
#sudo ${TMP_DIR}/glassfish-3.1.2-unix.sh -s -j /opt/java -a ${TMP_DIR}/answer
# Use without AD Authentication
${TMP_DIR}/glassfish-3.1.2.2-unix.sh -s -j /opt/java -a ${TMP_DIR}/answer
sudo chown -R appadmin:users /opt/AppSrv/
$ASADMIN start-domain
}
gf_restart (){
$ASADMIN stop-domain
$ASADMIN start-domain
}
enable_secure_admin (){
$ASADMIN enable-secure-admin
gf_restart
}
gf_config (){
wget https://localhost:4848 --no-check-certificate --delete-after -q
$ASADMIN set server-config.admin-service.jmx-connector.system.security-enabled=true
$ASADMIN set server-config.network-config.protocols.protocol.http-listener-2.security-enabled=true
$ASADMIN set server-config.network-config.protocols.protocol.sec-admin-listener.security-enabled=true
$ASADMIN set server-config.network-config.protocols.protocol.sec-admin-listener.ssl.cert-nickname=s1as
$ASADMIN deploy ${TMP_DIR}/wmq.jmsra.rar
$ASADMIN create-resource-adapter-config --property logWriterEnabled=true:maxConnections=4:traceLevel=3:traceEnabled=false:reconnectionRetryCount=5:reconnectionRetryInterval=300000:connectionConcurrency=1 wmq.jmsra
sudo -u appadmin /opt/AppSrv/glassfish3/glassfish/bin/asadmin -W ${TMP_DIR}/password2 --secure create-password-alias jenkins
sudo -u appadmin mkdir /mnt/midtier_logs/domain
$ASADMIN set-log-attributes --target server com.sun.enterprise.server.logging.GFFileHandler.file=/mnt/midtier_logs/domain/server.log
$ASADMIN set-log-attributes --target server com.sun.enterprise.server.logging.GFFileHandler.rotationTimelimitInMinutes=1440
sudo mkdir /opt/AppSrv/glassfish3/glassfish/nodes
sudo chown -R appadmin:users /opt/AppSrv
sed -i -silent s/org.glassfish.admingui.level=INFO/org.glassfish.admingui.level=FINE/g /opt/AppSrv/glassfish3/glassfish/domains/${DOMAIN_NAME}/config/logging.properties
gf_restart
}
cert_install (){
sudo -u appadmin keytool -import -noprompt -alias root -keystore ${KEYSTORE_FILE}/keystore.jks -trustcacerts -file ${TMP_DIR}/Root.cer -storepass changeit
sudo -u appadmin keytool -import -noprompt -alias intermediate_1 -keystore ${KEYSTORE_FILE}/keystore.jks -trustcacerts -file ${TMP_DIR}/Intermediate_1.cer -storepass changeit
sudo -u appadmin keytool -import -noprompt -alias issue -keystore ${KEYSTORE_FILE}/keystore.jks -trustcacerts -file ${TMP_DIR}/Issue.cer -storepass changeit
sudo -u appadmin keytool -import -noprompt -alias root -keystore ${KEYSTORE_FILE}/cacerts.jks -trustcacerts -file ${TMP_DIR}/Root.cer -storepass changeit
sudo -u appadmin keytool -import -noprompt -alias intermediate_1 -keystore ${KEYSTORE_FILE}/cacerts.jks -trustcacerts -file ${TMP_DIR}/FBL_Intermediate_1.cer -storepass changeit
sudo -u appadmin keytool -import -noprompt -alias issue -keystore ${KEYSTORE_FILE}/cacerts.jks -trustcacerts -file ${TMP_DIR}/Issue.cer -storepass changeit
sudo -u appadmin keytool -importkeystore -noprompt -deststorepass changeit -destkeypass changeit -destkeystore ${KEYSTORE_FILE}/keystore.jks -srckeystore ${TMP_DIR}/generic.p12 -srcstoretype PKCS12 -srcstorepass password -alias generic.domain.com
sudo -u appadmin sed -i -silent 's/s1as/generic.domain.com/g' ${KEYSTORE_FILE}/domain.xml
gf_restart
}
create_service (){
sudo mv ${TMP_DIR}/glassfish /etc/init.d/glassfish
cd /etc/init.d
sudo chmod +x glassfish
sudo chown root:root glassfish
sudo chkconfig --add glassfish
sudo chkconfig glassfish on
}
ldap_authentication (){
$ASADMIN --secure create-password-alias ldapbind
$ASADMIN set server.security-service.auth-realm.admin-realm.property.base-dn="dc=domain,dc=com"
$ASADMIN set server.security-service.auth-realm.admin-realm.property.directory=ldap://ldap.domain.com:389
$ASADMIN set server.security-service.auth-realm.admin-realm.property.search-bind-password="\${ALIAS=ldapbind}"
$ASADMIN set server.security-service.auth-realm.admin-realm.property.jaas-context=ldapRealm
$ASADMIN set server.security-service.auth-realm.admin-realm.property.group-search-filter="(&(member=%d)(objectcategory=group))"
$ASADMIN set server.security-service.auth-realm.admin-realm.property.search-bind-dn="cn=user user,OU=Service Accounts,DC=domain,DC=com"
$ASADMIN set server.security-service.auth-realm.admin-realm.property.search-filter="(&(objectClass=user)(memberOf=CN=Group,OU=Domain Groups,DC=domain,DC=com)(sAMAccountName=%s))"
$ASADMIN set server.security-service.auth-realm.admin-realm.property.assign-groups=asadmin
$ASADMIN set server.security-service.auth-realm.admin-realm.property.group-base-dn="ou=Domain Groups,dc=domain,dc=com"
$ASADMIN set server.security-service.auth-realm.admin-realm.classname=com.sun.enterprise.security.auth.realm.ldap.LDAPRealm
gf_restart
}
glassfish_update (){
$ASADMIN stop-domain
cd /opt/AppSrv/glassfish3/bin
sudo ./pkg image-update
$ASADMIN start-domain
sudo mkdir /opt/AppSrv/glassfish3/glassfish/nodes
sudo chown -R appadmin:users /opt/AppSrv
}
copy_drivers (){
cd ${TMP_DIR}
sudo cp db2jcc.jar db2jcc_license_cisuz.jar db2java.zip sqljdbc4.jar ojdbc6.jar WebSEAL_SAM.jar /opt/AppSrv/glassfish3/glassfish/lib/
gf_restart
}
cron (){
echo '#!/bin/bash' > $TMP_DIR/backup_cron
echo '(crontab -l 2>/dev/null -u appadmin; echo "0 21 * * * svn update /opt/midtierscripts"; echo "00 01 1 1,4,7,10 * /opt/midtierscripts/utility/devel_cert/cert_report.sh";) | crontab -' >> $TMP_DIR/backup_cron
sudo chmod +x $TMP_DIR/backup_cron
sudo -u appadmin $TMP_DIR/backup_cron
}
delete_tmp_dir (){
cd ~
rm -rf ${TMP_DIR}
}
svn_prep
edit_answer
java_install
gf_install
enable_secure_admin
gf_config
cert_install
create_service
ldap_authentication
glassfish_update
copy_drivers
cron
delete_tmp_dir
No comments:
Post a Comment