Monday, 23 February 2015

LVM Metadatasize too small

Too small:
# vgs --units k -o vg_mda_count,vg_mda_free,vg_mda_size,vg_name
  #VMda VMdaFree  VMdaSize  VG
      1    91.50k   188.00k volg0
      2    73.50k   188.00k volg1
OK:
#  vgs --units k -o vg_mda_count,vg_mda_free,vg_mda_size,vg_name
  #VMda VMdaFree  VMdaSize  VG
      1    91.50k   188.00k volg0
      4  8091.00k 16384.00k volg1

Friday, 20 February 2015

Starting a Ganeti VM to reset root password

# gnt-instance start -H kernel_args="rw init=/bin/sh" INSTANCE
Waiting for job 1333533 for INSTANCE ...
# gnt-instance console INSTANCE
Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Linux version 2.6.32-358.23.2.el6.x86_64 (mockbuild@c6b9.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Wed Oct 16 18:37:12 UTC 2013
Command line: ro root=LABEL=root rhgb noquiet root=/dev/xvda rw init=/bin/sh

[cut]

sh: cannot set terminal process group (-1): Inappropriate ioctl for device
sh: no job control in this shell
sh-4.1# passwd
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
sh-4.1# exit

# gnt-instance reboot INSTANCE

Tuesday, 17 February 2015

Oracle Apache PL/SQL Gateway Module - OWA - mod_owa

The mod_owa Apache module allows you to access an Oracle Database using a webfront end. Download and install Oracle Instant Client for your system from here: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html On CentOS edit /etc/sysconfig/httpd, or /etc/apache2/envvars on Debian:
export TNS_ADMIN=/etc/oracle
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
Create and put you tnsname.ora in the /etc/oracle directory. Download and install mod_owa from here: https://oss.oracle.com/projects/mod_owa/dist/documentation/modowa.htm Create an Apache configuration file as such:
LoadModule owa_module /etc/httpd/modules/mod_owa.so

    SetHandler     owa_handler
    OwaUserid      username/password@ORACLEDBNAME
    OwaDiag        COMMAND ARGS CGIENV POOL SQL MEMORY ERROR THREADS HEADER RESPONSE
    OwaLog         "/var/log/httpd/mod_owa.log"
    OwaAdmin       127.0.0.1 255.255.255.255
    OwaPool        10
    OwaStart       "login"
    OwaDocProc     "doc_pkg.readfile"
    OwaDocPath     docs
    OwaUploadMax   10M
    OwaCharsize    2
    OwaCharset     "utf-8"
    #OwaCharset     "UTF-8"
    #OwaBindset     "UTF-8"
    #OwaUnicode     "FULL"
    order          deny,allow
    allow          from all
    OwaDocTable    ndrd_file_objects BLOB_CONTENT

Monday, 16 February 2015

Create a self-signed Certificate (non-trusted) - enable https

Generate keys, CA, and signed certificate:
# openssl genrsa -out ca.key 2048
# openssl req -new -key ca.key -out ca.csr
# openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
# cp ca.crt /etc/pki/tls/certs
# cp ca.key /etc/pki/tls/private/ca.key
# cp ca.csr /etc/pki/tls/private/ca.csr
Install mod_ssl and create ssl.conf file:
# yum install mod_ssl
# cat /etc/httpd/conf.d/ssl

LoadModule ssl_module modules/mod_ssl.so

Listen 443

SSLPassPhraseDialog  builtin

SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300

SSLMutex default

SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
#SSLRandomSeed startup file:/dev/random  512
#SSLRandomSeed connect file:/dev/random  512
#SSLRandomSeed connect file:/dev/urandom 512

SSLCryptoDevice builtin
#SSLCryptoDevice ubsec



DocumentRoot "/var/www/html"
ServerName webtest.isys.bris.ac.uk

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

SSLCertificateFile /etc/pki/tls/certs/ca.crt

SSLCertificateKeyFile /etc/pki/tls/private/ca.key

#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt

#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt

#SSLVerifyClient require
#SSLVerifyDepth  10

#
#SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
#            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
#            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
#            and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
#            and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20       ) \
#           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
#

#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire

    SSLOptions +StdEnvVars


    SSLOptions +StdEnvVars


SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"


Tuesday, 10 February 2015

Basic mcollective commands

# mco ping
# mco find
Service
# mco rpc service status service=httpd
# mco rpc service stop service=httpd
# mco rpc service start service=httpd
Use the -I filter to target a specific machine, eg:
# mco rpc service status service=httpd -I node01.domain.net
RPC
# mco rpc rpcutil get_fact fact=operatingsystem

Monday, 9 February 2015

Basic Ganeti Commands

Show nodes and instances:
# gnt-node list
# gnt-instance list
List instances and there primary and secondary disks:
# gnt-instance list --no-headers -o name,pnode,snodes
Move secondary disks to another node:
# gnt-instance replace-disks -n  
Migrate instance to secondary node:
# gnt-instance migrate 
View storage & volumes
# gnt-node list-storage

# gnt-node volumes

Thursday, 5 February 2015

Cannot run ActiveMQ to listen on port 61614 (or any other ports)? Create the activemq-data/localhost/ directory

Check the ActiveMQ log:
# tail /var/log/activemq/activemq.log
2015-02-04 12:04:42,929 [main           ] INFO  SharedFileLocker               - Database activemq-data/localhost/KahaDB/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: Failed to create directory 'activemq-data/localhost/KahaDB'
2015-02-04 12:04:52,929 [main           ] INFO  SharedFileLocker               - Database activemq-data/localhost/KahaDB/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: Failed to create directory 'activemq-data/localhost/KahaDB'
2015-02-04 12:05:02,931 [main           ] INFO  SharedFileLocker               - Database activemq-data/localhost/KahaDB/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: Failed to create directory 'activemq-data/localhost/KahaDB'
2015-02-04 12:05:12,932 [main           ] INFO  SharedFileLocker               - Database activemq-data/localhost/KahaDB/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: Failed to create directory 'activemq-data/localhost/KahaDB'
2015-02-04 12:05:22,933 [main           ] INFO  SharedFileLocker               - Database activemq-data/localhost/KahaDB/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: Failed to create directory 'activemq-data/localhost/KahaDB'
2015-02-04 12:05:34,208 [main           ] INFO  XBeanBrokerFactory$1           - Refreshing org.apache.activemq.xbean.XBeanBrokerFactory$1@6bf28508: startup date [Wed Feb 04 12:05:34 GMT 2015]; root of context hierarchy
2015-02-04 12:05:35,332 [main           ] INFO  PListStoreImpl                 - PListStore:[/usr/share/activemq/activemq-data/localhost/tmp_storage] started
2015-02-04 12:05:35,466 [main           ] INFO  BrokerService                  - Using Persistence Adapter: KahaDBPersistenceAdapter[/usr/share/activemq/activemq-data/localhost/KahaDB]
2015-02-04 12:05:35,467 [JMX connector  ] INFO  ManagementContext              - JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
2015-02-04 12:05:35,468 [main           ] INFO  SharedFileLocker               - Database activemq-data/localhost/KahaDB/lock is locked... waiting 10 seconds for the database to be unlocked. Reason: java.io.IOException: Failed to create directory 'activemq-data/localhost/KahaDB'
There's no 'activemq-data' or 'activemq-data/localhost' or 'activemq-data/localhost/KahaDB', so create it:
# mkdir -p /usr/share/activemq/activemq-data/localhost/
# chown -R activemq:activemq /usr/share/activemq/activemq-data/localhost/
# service activemq restart
Look at the logs again, use lsof on the port:
# tail /var/log/activemq/activemq.log
2015-02-04 12:08:22,850 [main           ] INFO  ndingBeanNameUrlHandlerMapping - Mapped URL path [/moveMessage.action] onto handler '/moveMessage.action'
2015-02-04 12:08:22,850 [main           ] INFO  ndingBeanNameUrlHandlerMapping - Mapped URL path [/deleteJob.action] onto handler '/deleteJob.action'
2015-02-04 12:08:22,955 [main           ] INFO  WebAppContext                  - ActiveMQ Console at http://0.0.0.0:8161/admin
2015-02-04 12:08:22,968 [main           ] INFO  ContextHandler                 - started o.e.j.w.WebAppContext{/camel,file:/var/lib/activemq/webapps/camel}
2015-02-04 12:08:22,973 [main           ] INFO  WebAppContext                  - WebApp@1311779403 at http://0.0.0.0:8161/camel
2015-02-04 12:08:22,986 [main           ] INFO  ContextHandler                 - started o.e.j.w.WebAppContext{/demo,file:/var/lib/activemq/webapps/demo}
2015-02-04 12:08:22,991 [main           ] INFO  WebAppContext                  - WebApp@1311779403 at http://0.0.0.0:8161/demo
2015-02-04 12:08:23,003 [main           ] INFO  ContextHandler                 - started o.e.j.w.WebAppContext{/fileserver,file:/var/lib/activemq/webapps/fileserver}
2015-02-04 12:08:23,008 [main           ] INFO  WebAppContext                  - WebApp@1311779403 at http://0.0.0.0:8161/fileserver
2015-02-04 12:08:23,024 [main           ] INFO  AbstractConnector              - Started SelectChannelConnector@0.0.0.0:8161


# lsof -i:61614
COMMAND   PID     USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    48120 activemq  132u  IPv6 49240809      0t0  TCP *:61614 (LISTEN)