Aside

sudo port deactivate nginx
sudo port install nginx +ssl

Aside

Ativar modulo ipfw e natd(ipdivert)

/boot/default/loader.conf

ipfw_load=”YES”
ipdivert_load=”YES”

/etc/rc.conf

ipfw_enable=”YES”
natd_enable=”YES”

** Nao esquecer de configurar regras de allow porque o default e deny all ;)

Aside

To register a virtual machine from a command line on an ESXi host:
Log in as root to the ESXi host with an SSH client. For information on using Tech Support mode, see Using Tech Support Mode in ESXi 4.1 (1017910).
Run the command:

# vim-cmd solo/registervm /vmfs/volumes/datastore_name/VM_directory/VM_name.vmx

#vim-cmd vmsvc/getallvms

#vim-cmd vmsvc/power.getstate VMID

#vim-cmd vmsvc/power.off VMID

Aside

Limpar os databases em uma instancia standalone ORACLE
shutdown abort;
startup mount exclusive restrict;
drop database;

– Exemplo de arquivo init.ora

TPL_DB.__db_cache_size=256M
TPL_DB.__java_pool_size=25M
TPL_DB.__large_pool_size=25M
TPL_DB.__pga_aggregate_target=256M
TPL_DB.__sga_target=1G
TPL_DB.__shared_io_pool_size=0
TPL_DB.__shared_pool_size=128M
TPL_DB.__streams_pool_size=0
*.audit_trail=’db’
*.control_files=’/u01/oradata/TPL_DB/controlfile/control01.ctl’,’/u01/oradata/TPL_DB/controlfile/control02.ctl’
*.cursor_sharing=’EXACT’
*.db_block_size=8192
*.db_domain=”
*.db_name=’TPL_DB’
*.log_archive_dest_1=’LOCATION=/u01/oradata/TPL_DB/archivelog’
*.log_archive_format=’arch_%r_%t_%s.arc’
*.memory_target=2G
*.open_cursors=1080
*.optimizer_mode=’ALL_ROWS’
*.processes=1000
*.remote_login_passwordfile=’exclusive’
TPL_DB.undo_tablespace=’UNDO_TS01′

cd $ORACLE_HOME

orapwd file=orapwTPL_DB.ora password=q1w2e3r4 entries=50 force=y

sqlplus “/ as sysdba”

startup nomount
CREATE DATABASE TPL_DB
    USER SYS identified by q1w2e3r4
USER SYSTEM identified by q1w2e3r4
LOGFILE
  GROUP 1 (
    ‘/u01/oradata/TPL_DB/redolog/redo01_01.log’,
    ‘/u01/oradata/TPL_DB/redolog/redo01_02.log’
  ) SIZE 300M,
  GROUP 2 (
    ‘/u01/oradata/TPL_DB/redolog/redo02_01.log’,
    ‘/u01/oradata/TPL_DB/redolog/redo02_02.log’
  ) SIZE 300M,
  GROUP 3 (
    ‘/u01/oradata/TPL_DB/redolog/redo03_01.log’,
    ‘/u01/oradata/TPL_DB/redolog/redo03_02.log’
  ) SIZE 300M
  MAXLOGFILES 320
  MAXLOGMEMBERS 4
  MAXDATAFILES 1000
  MAXINSTANCES 10
  MAXLOGHISTORY 1168
  CHARACTER SET UTF8
  DATAFILE ‘/u01/oradata/TPL_DB/datafile/datafile/system_01.dbf’ size 500M autoextend on next 10M maxsize unlimited extent management local
  SYSAUX datafile ‘/u01/oradata/TPL_DB/datafile/datafile/sysaux_01.dbf’ size 300M
  UNDO tablespace UNDO_TS01 datafile ‘/u01/oradata/TPL_DB/datafile/datafile/undo_ts01_01.dbf’ size 500M
  default temporary tablespace temp tempfile ‘/u01/oradata/TPL_DB/datafile/datafile/temp_ts01_01.dbf’ size 500M;

@$ORACLE_HOME/rdbms/admin/catalog.sql
@$ORACLE_HOME/rdbms/admin/catproc.sql

create tablespace tstools01
DATAFILE ‘/u01/oradata/TPL_DB/datafile/tstools01_01.dbf’ size 512M
extent management local uniform size 512k
segment space management auto;

Aside

Script que um colega fez https://github.com/hbombonato/rsync-fork muito bom…. :)

Resquest SSL Certificate

openssl req -nodes -days 3650 -newkey rsa:2048 -nodes -keyout site.domain.key -out site.domain.csr -subj “/C=BR/ST=Sao Paulo/L=Sao Paulo/O=Company LTDA./OU=CORP/CN=site.domain”

Jetty Howto

Se voce esta procurando uma forma fácil e rápida de colocar uma servlet em produção a minha sugestão ‘e use o container web Jetty.

Vou mostrar abaixo como eu prefiro organizar os arquivos do container web, servlet, ajustes em configuração etc…

Vamos usar um pacote do site http://dist.codehaus.org/jetty

wget http://dist.codehaus.org/jetty/jetty-hightide-7.4.3/jetty-hightide-7.4.3.v20110701.zip

Minha sugestão de path para descomprimir /usr/local,  o ideal ‘e adotar um padrão :)  assim o ambiente de producao tende a fica homogêneo.

unzip jetty-hightide-7.4.3.v20110701.zip;mv  jetty-hightide-7.4.3.v20110701   /usr/local/jetty-7.4.3

No pacote padrão vem habilitado o uso de configs que nao pretendo usar :), pois e default, para desativar  deve-se comentar todas as entradas do arquivo start.ini

/usr/local/jetty-7.4.3/start.ini

Pronto o jetty esta instalado e com os arquivos de conf default estão desativados, também e possível retirar do jetty os recursos que você nao ira usar em sua servlet mas nao e escopo deste howto. Veja documentação completa em http://wiki.eclipse.org/Jetty

Nas empresas por onde passei na maioria dos casos usávamos SO Linux CentOS, Suse ou RedHat e para facilitar a implantação dos sistemas usávamos repositório de pacotes rpm interno, eu prefiro gerar o pacote do jetty pois os pacotes disponíveis no repo do projeto nao sao muito flexíveis…. veja link abaixo para baixar SPEC para gerar um pacote ;).

Para a instalação da servlet vamos precisar basicamente de dois arquivos :), o <servlet>.war e <servlet>.xml, onde o path padrão de instalação de todas as servlets seram /opt/webapps/<N…. servlets>

O arquivo <servlet>.xml contem as informações para iniciar a servlet como este abaixo.

<?xml version=”1.0″?>
<!DOCTYPE Configure PUBLIC “-//Mort Bay Consulting//DTD Configure//EN” “http://jetty.mortbay.org/configure.dtd”&gt;
<!–
JETTY_HOME=”/usr/local/jetty-7.4.3″
JAVA_HOME=”/usr/java/jre1.6.0_24″
JETTY_CONSOLE=”/var/log/servlet/”
JETTY_USER=”servletuser”
JAVA_OPTIONS=”-server -Xms512m -Xmx512m -Dfile.encoding=UTF-8 -Dorg.mortbay.xml.XmlParser.NotValidating=true -Dsun.net.inetaddr.ttl=60″
–>
<Configure>
<Set name=”ThreadPool”>
<New>
<Set name=”minThreads”>10</Set>
<Set name=”maxThreads”>20</Set>
<Set name=”detailedDump”>false</Set>
</New>
</Set>
<Call name=”addConnector”>
<Arg>
<New>
<Set name=”host”><SystemProperty name=”jetty.host” default=”servletip.network” /></Set>
<Set name=”port”><SystemProperty name=”jetty.port” default=”666″/></Set>
<Set name=”forwarded”>true</Set>
<!– Set name=”maxIdleTime”>30000</Set–>
<Set name=”Acceptors”>2</Set>
<Set name=”statsOn”>false</Set>
<!– Set name=”confidentialPort”>8443</Set–>
<Set name=”lowResourcesConnections”>5000</Set>
<Set name=”lowResourcesMaxIdleTime”>5000</Set>
<Set name=”responseBufferSize”>65536</Set>
<Set name=”headerBufferSize”>32768</Set>
</New>
</Arg>
</Call>
<Set name=”handler”>
<New>
<Set name=”contextPath”>/</Set>
<Set name=”war”>/opt/webapps/servlet/servlet.war</Set>
</New>
</Set>
</Configure>

Existem varias formas de criar o arquivo de start do jetty este que passei ‘e apenas um exemplo mas atende perfeitamente a maioria dos casos. Saiba mais em http://wiki.eclipse.org/Jetty

Por experiências anteriores ‘e essencial usar script único de apoio, que leia o servlet.xml para iniciar a servlet, facilite a vida de quem ira cuidar da produção ;).

Anexo1 Jetty

Os parâmetros a serem usados no servlet.xml podem mudar de versão para versão, se algo der errado leia a documentação.

Anexo2 Servlet

Arquivos de config devem ser lidos a partir do contexto, procure evitar path fixo isto dificulta a manipulação da servlet no dia a dia, este recurso pode evitar um build de ultima hora ;).

Se você nao ‘e programador procure conversar com o time que desenvolve para combinar a organização dos arquivos da servlet.

* Arquivos de config que porem ser alterados com certa freqüência devem ficar fora do .war (config de conexão com banco de dados, log4j, parâmetros de ativação de funcionalidade).

* Evite ter que fazer restart da servlet combine a criação de recursos para reler as configurações caso um arquivo seja modificado.

Arquivos disponíveis em https://github.com/hbombonato/sysadmin_tools/tree/master/SPEC/jetty

Audit howto

Artigo muito bom sobre Audit

http://www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html

Para não ter problemas com dependencias em seu RPM

Fiquei surpreso ao gerar um RPM havia uma dependencia com o /usr/bin/bash sem a especificação da dependencia e para não ter este problema é preciso add ao specfile o parametro AutoReqProv: no :).

Copia rapida de arquivos…

As vezes precisamos fazer uma copia rapida de arquivos ficamos um pouco perdido ate colocar as ideias em ordem… atai uma maneira facil e rapida para fazer share de arquivo :), claro precisa do python instalado
python -m SimpleHTTPServer 9999