anúncios

sexta-feira, 9 de outubro de 2015

Instalando e Configurando o Jenkins no Debian

O que é Jenkins ?

Jenkins é uma ferramenta de integração contínua capaz de realizar o deploy da aplicação de forma automatizada. Assim, uma vez configurado os jobs corretamente de uma determinada hora, o deploy será feito na hora programada, caso ocorra alguma quebra de build, é encaminhado um e-mail para a equipe de desenvolvimento.

Depois de conhecer o Jenkins e pra que serve, podemos seguir os procedimentos de instalação e configuração do Jenkins em seu servidor GNU/Linux Debian.

Observação: Testado no GNU/Linux Debian 8 (Jessie) e versão atual do Jenkins é 1.632, do JDK é 1.8.60, do Tomcat é 8.0.26 e Maven é 3.3.3 até a data de publicação deste post.

Pré-requisitos: JDK, Tomcat, Maven

Download JDK
x86: wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-i586.tar.gz"
x64: wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-x64.tar.gz"

Download Tomcat
wget -c "http://ftp.unicamp.br/pub/apache/tomcat/tomcat-8/v8.0.26/bin/apache-tomcat-8.0.26.tar.gz"

Download Jenkins
wget -c "http://mirrors.jenkins-ci.org/war/latest/jenkins.war"

Configurando JDK
#mkdir /opt/java
#tar -xzvf jdk-8u60-linux-i586.tar.gz -C /opt/java

Criando link simbólico jdk8
#ln -s /opt/java/jdk1.8.0_6/ jdk8

Adicionar variável de ambiente $JAVA_HOME no PATH do sistema
#vim /etc/profile
export JAVA_HOME="/opt/java/jdk8"
export CLASSPATH="$JAVA_HOME/lib":$CLASSPATH
export PATH="$JAVA_HOME/bin":$PATH
export MANPATH="$JAVA_HOME/man":$MANPATH
ESC +:x (para salvar e sair do editor Vim).
#source /etc/profile

Configurando Tomcat
#mkdir /opt/tomcat
#tar -xzvf apache-tomcat-8.0.26.tar.gz -C /opt/tomcat
#chmod +x /opt/tomcat/apache-tomcat-8.0.26/bin/catalina.sh
#chmod +x /opt/tomcat/apache-tomcat-8.0.26/bin/startup.sh
#chmod +x /opt/tomcat/apache-tomcat-8.0.26/bin/shutdown.sh
Startar o Tomcat
#/opt/tomcat/apache-tomcat-8.0.26/startup.sh

Estrutura de diretórios do Tomcat
bin - executáveis e scripts do Tomcat
conf - arquivos de configuração do Tomcat
logs - arquivos de logs das aplicações, inclusive do Tomcat
temp - diretório temporário do Tomcat
webapps - diretório com os contextos (similar ao /var/www do Apache)
work - arquivos de servlets gerados pelo Tomcat a partir de JSPs
lib - bibliotecas comuns a todas as aplicações e ao Tomcat

Configurando Maven
wget -c "http://mirror.nbtelecom.com.br/apache/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz"
tar -xzvf apache-maven-3.3.3-bin.tar.gz -C /opt/

Adicionar variável de ambiente $MVN_HOME no PATH do sistema
#vim /etc/profile
export MVN_HOME="/opt/apache-maven-3.3.3/"
export PATH=$PATH:"$MVN_HOME/bin"
ESC +:x (para salvar e sair do editor Vim).
#source /etc/profile

Deploy Jenkins
Após a configuração do Tomcat, faremos o deploy do Jenkins.
Copiar o arquivo jenkins.war no diretório webapps do Tomcat.
#cp jenkins.war /opt/tomcat/apache-tomcat-8.0.26/webapps/

Reinicie o Tomcat
#/opt/tomcat/apache-tomcat-8.0.26/shutdown.sh
#/opt/tomcat/apache-tomcat-8.0.26/startup.sh

Acesse no browser -> http://IPSERVIDOR:8080/jenkins
Feito!

segunda-feira, 14 de setembro de 2015

Instalando e Configurando o SonarQube no Debian

O que é SonarQube ?

SonarQube é um software open-source que se propõe a ser a central de qualidade do seu código-fonte, lhe possibilitando o controle sobre um grande número de métricas de software, e ainda apontando uma série de possíveis bugs.

Depois de conhecer o SonarQube e pra que serve, podemos seguir os procedimentos de instalação e configuração do SonarQube em seu servidor GNU/Linux Debian.

Observação: Testado no GNU/Linux Debian 8 (Jessie) e versão atual do SonarQube é 5.1.2 até a data de publicação deste post.

Pré-requisitos: JDK, MySQL ou PostgreSQL.
Nesse post, será utilizado o Java 1.8, e MySQL

Download JDK
x86: wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-i586.tar.gz"
x64: wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-x64.tar.gz"

Download SonarQube
wget -c "https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.1.2.zip"

Instalação do MySQL
#apt-get update
#apt-get install mysql-server libmysqlclient15-dev


Configurando JDK
#apt-get purge openjdk-7-jre gcj-4.7-base gcj-4.7-jre openjdk-6-jre-headless #apt-get remove --purge openjdk-*

#mkdir /opt/java
#tar -xzvf jdk-8u60-linux-i586.tar.gz -C /opt/java


Criando link simbólico jdk8
#ln -s /opt/java/jdk1.8.0_6/ jdk8

Adicionar variável de ambiente $JAVA_HOME no PATH do sistema.
#vim /etc/profile
export JAVA_HOME="/opt/java/jdk8"
export CLASSPATH="$JAVA_HOME/lib":$CLASSPATH
export PATH="$JAVA_HOME/bin":$PATH
export MANPATH="$JAVA_HOME/man":$MANPATH

ESC +:x (para salvar e sair do editor Vim).
O mesmo conteúdo da variável de ambiente $JAVA_HOME no arquivo /etc/environment>
#source /etc/profile
#source /etc/environment

Criando o banco de dados Sonarqube no MySQL
# mysql_install_db
# mysql -u root -p
Enter password: < digite a senha de root que foi definida na instalação do MySQL >
mysql> create database sonar character set utf8;

Criar o usuário sonar para o banco sonar
mysql> GRANT ALL PRIVILEGES ON *.* TO sonar@localhost IDENTIFIED BY 'senha_sonar' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> quit

Configurando SonarQube
#unzip sonarqube-5.1.2.zip -d /opt
#cd /opt/sonarqube-5.1.2
#vim conf/sonar.properties
Por fim o username/password do banco de dados utilizado.
linha 18: sonar.jdbc.username: sonar
linha 19: sonar.jdbc.password: senha_sonarqube

Descomentar a linha referente ao banco de dados que será utilizado, nesse caso é o MySQL.
linha 33: sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
Definir o host/context
linha 99: sonar.web.host: Hostaname OU IP
linha 103: sonar.web.context: /sonar

Descomentar a linha 106 onde define a porta utilizada no Sonar.
linha 106: sonar.web.port=9000
ESC +:x (para salvar e sair do editor Vim).

Ajustar script de inicialização
Acesse de acordo com arquitetura do servidor Linux
x86: #vim /opt/sonarqube-5.1.2/bin/linux-x86-32/sonar.sh
x64: #vim /opt/sonarqube-5.1.2/bin/linux-x86-64/sonar.sh
Adicione as linhas abaixo, substituindo a arquitetura de acordo com servidor Linux.
SONAR_HOME=/opt/sonarqube-5.1.2
PLATAFORMA=linux-x86-32

E editar as linhas 28 e 29.
WRAPPER_CMD="${SONAR_HOME}/bin/${PLATAFORMA}/wrapper"
WRAPPER_CONF="${SONAR_HOME}/conf/wrapper.conf"

ESC +:x (para salvar e sair do editor Vim).

Startando o SonarQube
Utilize de acordo com a arquitetura do seu servidor Linux
x86: #chmod +x /opt/sonarqube-5.1.2/bin/linux-x86-32/sonar.sh
#/opt/sonarqube-5.1.2/bin/linux-x86-32/sonar.sh start
x64: #chmod +x /opt/sonarqube-5.1.2/bin/linux-x86-64/sonar.sh
#/opt/sonarqube-5.1.2/bin/linux-x86-64/sonar.sh start

Acesse no browser: http://IPSERVIDOR:9000/sonar
Feito!

domingo, 23 de agosto de 2015

Instalando e Configurando Redmine no Debian

O que é o Redmine ?

Redmine é um software livre, gerenciador de projetos baseados na web e ferramenta de gerenciamento de bugs. Ele contém calendário e gráficos de Gantt para ajudar na representação visual dos projetos e seus deadlines (prazos de entrega). Ele pode também trabalhar com múltiplos projetos.

O design do Redmine foi influenciado pelo Trac, um pacote de software semelhante.
O Redmine é escrito usando o framework Ruby on Rails. Ele é multiplataforma e suporta diversos banco de dados e possibilita o uso integrado com vários repositórios de versionamento de código fonte, tais como: SVN, Git, CVS.

Depois de conhecer o Redmine e pra que serve, podemos seguir os procedimentos de instalação e configuração do Redmine em seu servidor GNU/Linux Debian.

Observação: Testado no GNU/Linux Debian 8 (Jessie) e versão atual do Redmine é 3.1.0 até a data de publicação deste post.

Atualizando o repositório de pacotes
#apt-get update
Instalando os pacotes pré-requisitos necessários
#apt-get install rubygems, libopenssl-ruby libmysql-ruby libapache2-mod-fcgid libapache2-mod-passenger ruby libnet-ssh-ruby1.8 python-setuptools librmagick-ruby1.8 mysql-server libmysqlclient15-dev libmagickcore-dev libmagickwand-dev ruby-dev

Download do Readmine
Opcional: Salvo em /usr/src/

$wget -c "www.redmine.org/releases/redmine-3.1.0.tar.gz"
#tar -xzvf redmine-3.1.0.tar.gz -C /usr/src/

Habilitar os módulos abaixo no Apache
#a2enmod fcgid
#a2enmod passenger

Reinicie o servidor Apache
# /etc/init.d/apache2 restart
[ ok ] Restarting web server: apache2 ... waiting ....
Instalar o Rails
# gem install rails --version 4.0.0
Aguarde... É demorado essa parte.
Definição do banco de dados utilizado no Redmine, nesse caso será utilizado o MySQL.
#cd /usr/src/redmine-3.1.0/config
Renomeia o arquivo database.yml
#mv database.yml.example database.yml
Editar o arquivo database.yml com as informações (database, username, password) do banco criado anteriormente.

#vim database.yml
5 production:
6 adapter: mysql2
7 database: redmine
8 host: localhost
9 username: redmine
10 password: "senha_redmine"
11 encoding: utf8

Criando o banco de dados para o Redmine no MySQL
# mysql_install_db
# mysql -u root -p
Enter password: < digite a senha de root que foi definida na instalação do MySQL > Criar o banco de dados redmine
mysql> create database redmine character set utf8;
Criar o usuário redmine para o banco readmine
mysql> GRANT ALL PRIVILEGES ON *.* TO redmine@localhost IDENTIFIED BY 'senha_redmine' WITH GRANT OPTION; Query OK, 0 rows affected (0.15 sec)
mysql> quit

Instalação do bundler
#gem install bundler
#cd /usr/src/redmine-3.1.0
Nesse caso será instalado o Redmine sem os bancos PostgreSQL e SQLite, o banco utilizado é MySQL configurado anteriormente.

# bundle install --without postgresql sqlite development test
Log execução do bundle install. Um pouco demorado essa parte.
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and
installing your bundle as root will break this application for all non-root
users on this machine.
Fetching gem metadata from https://rubygems.org/.........
Fetching version metadata from https://rubygems.org/..
Resolving
dependencies.....................................................
Using rake 10.4.2
Using i18n 0.7.0
Installing json 1.8.3 with native extensions
Installing minitest 5.8.0
Using thread_safe 0.3.5
Installing tzinfo 1.2.2
Installing activesupport 4.2.3
Installing builder 3.2.2
Using erubis 2.7.0
Installing mini_portile 0.6.2
Installing nokogiri 1.6.6.2 with native extensions
Installing rails-deprecated_sanitizer 1.0.3
Installing rails-dom-testing 1.0.7
Installing loofah 2.0.3
Installing rails-html-sanitizer 1.0.2
Installing actionview 4.2.3
Installing rack 1.6.4
Using rack-test 0.6.3
Installing actionpack 4.2.3
Installing globalid 0.3.6
Installing activejob 4.2.3
Installing mime-types 2.6.1
Installing mail 2.6.3
Installing actionmailer 4.2.3
Installing actionpack-action_caching 1.1.1
Installing actionpack-xml_parser 1.0.2
Installing activemodel 4.2.3
Installing arel 6.0.3
Installing activerecord 4.2.3
Using bundler 1.10.6
Installing coderay 1.1.0
Using thor 0.19.1
Installing railties 4.2.3
Installing jquery-rails 3.1.3
Installing mysql2 0.3.19 with native extensions
Installing net-ldap 0.3.1
Installing protected_attributes 1.1.3
Installing ruby-openid 2.3.0
Installing rack-openid 1.4.2
Installing sprockets 3.3.2
Installing sprockets-rails 2.3.2
Installing rails 4.2.3
Installing rbpdf 1.18.6
Installing redcarpet 3.1.2 with native extensions
Installing request_store 1.0.5
Bundle complete! 28 Gemfile dependencies, 45 gems now installed.
Gems in the groups postgresql, sqlite, development, test and rmagick were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.
Criar um token para sessão
#rake generate_secret_token
Criar as tabelas do banco de dados e popular a base de dados
RAILS_ENV=production rake db:migrate
RAILS_ENV=production REDMINE_LANG=pt-BR rake redmine:load_default_data


Acessar o diretório onde fez a instalação do Redmine, nesse caso é: /usr/src/redmine-3.1.0
cd /usr/src/redmine-3.1.0
Setando as devidas permissões do Redmine
#chown -R www-data:www-data files log tmp public/plugin_assets
#chmod -R 755 files log tmp public/plugin_assets


Startar o Redmine
# ruby script/rails server webrick -e production
script/rails no longer exists, please use bin/rails instead.
Se aparecer a mensagem acima, então fazer como sugere na mensagem.
# ruby bin/rails server webrick -e production
=> Booting WEBrick
=> Rails 4.2.3 application starting in production on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2015-08-19 22:04:11] INFO WEBrick 1.3.1
[2015-08-19 22:04:11] INFO ruby 1.9.3 (2012-04-20) [i486-linux]
[2015-08-19 22:04:11] INFO WEBrick::HTTPServer#start: pid=24768 port=3000
Teste no navegador: http://localhost:3000 ou http://ip-ou-nome-servidor:3000
Username: admin
Password: admin

Criando um script para inicialização automática
Por padrão o Redmine não inicializa o servidor WEBrick. Então será necessário criar um script para inicializá-lo sempre que o sistema operacional for iniciado.
Dentro do diretório /etc/init.d crie um arquivo com o nome redmine.sh, seta a permissão para a execução e adicione o conteúdo conforme abaixo:

#vim /etc/init.d/redmine.sh
#!/bin/bash
cd /usr/src/redmine-3.1.0
ruby bin/rails server webrick -e production
ESC + :x (sai e salva do editor Vim).
Em seguida adicione o script nos diretórios de inicialização com o seguinte comando:
#update-rc.d redmine.sh defaults 99
Screenshot Redmine em execução

Feito!

sexta-feira, 21 de agosto de 2015

4 anos de blog

O blog esta completando hoje, dia 21 de Agosto de 2015, 4 anos!!!

Gostaria de agradecer a todos pelo prestígio e a paciência de ler os posts que são publicados. Espero continuar compartilhando conhecimentos no blog para nossos leitores. Continuem prestigiando e divulgando o blog Mundo da Computação Integral, assim aumentamos nossa comunidade.

segunda-feira, 27 de julho de 2015

Instalando e configurando Zabbix no Debian

O que é o Zabbix ?

Zabbix é um software que monitora diversos parâmetros de uma rede como a integridade e desempenho dos servidores. Oferece excelentes relatórios e visualização de dados de recursos com base nos dados armazenados, e usa um mecanismo de notificação flexível que permite aos usuários configurar e-mail com alertas para qualquer evento, o que permite uma reação rápida para os problemas do servidor.

Corretamente configurado, o Zabbix pode desempenhar um papel importante no controle da infraestrutura de TI. Isto é igualmente verdade para as pequenas organizações com alguns servidores e para grandes empresas com um grande número de servidores.

O Zabbix é escrito e distribuído sob a GNU General Public License versão 2. Isso significa que seu código-fonte é distribuído gratuitamente e está disponível para o público em geral.

Depois de conhecer o Zabbix e pra que serve, podemos seguir os procedimentos de instalação e configuração do Zabbix em seu servidor GNU/Linux Debian.

Observação: Testado no GNU/Linux Debian 8 (Jessie) e versão atual do Zabbix é 2.4.45 até a data de publicação deste post.

Segue os procedimentos de instalação e configuração do Zabbix
Atualizando o repositório de pacotes
#apt-get update
Instalando os pacotes pré-requisitos necessários
#apt-get install apache2 mysql-server php php-gd php-mysql php-curl php-imap php-ldap

Criando o banco de dados Zabbix no MySQL
# mysql_install_db
# mysql -u root -p
Enter password: < digite a senha de root que foi definida na instalação do MySQL >
Criar o banco de dados zabbix
mysql> create database zabbix character set utf8;
Criar o usuário zabbix para o banco zabbix
mysql> GRANT ALL PRIVILEGES ON *.* TO zabbix@localhost IDENTIFIED BY 'senha_zabbix' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
Listar o banco zabbix que foi criado e demais bancos existentes.
mysql> show database;
mysql> quit

Criando usuário Zabbix sem Shell
#useradd zabbix -s /bin/false
root@Saitam:/etc/mysql# passwd zabbix
Digite a nova senha UNIX: < digite uma senha para o usuário zabbix >
Redigite a nova senha UNIX: < digite a mesma senha informada acima >
passwd: senha atualizada com sucesso

Algumas parametrizações no PHP para o Zabbix
Altere as linha 121, 372, 660, 884 do arquivo /etc/php5/apache2/php.ini e deixe como segue:
max_input_time = 300
max_execution_time = 300
post_max_size = 16M
date.timezone = "America/Sao_Paulo"
Descomentar a linha 704 para não falhar no setup da tela 1 para 2 always_populate_raw_post_data = -1

Reinicie o serviço Apache para efeito
#service apache2 restart

Download do Zabbix
Opcional: Salvo em /usr/src/
#cd /usr/src/
#wget -c "https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz"

Extraindo o arquivo zabbix-2.4.5.tar.gz
# tar -xzvf zabbix-2.4.5.tar.gz
# cd zabbix-2.4.5
Executar o configure com as opções
#./configure --enable-server --enable-agent --with-mysql --with-netsnmp --with-libcurl=/usr/bin/curl-config --with-ssh2 --with-openipmi
Após finalizar de checar a execução do arquivo configure, se aparecer no final 'execute run make install' é porque está pronto para o próximo passo.
# make install

Populando o banco Zabbix
# cd database/mysql
# mysql -D zabbix -u zabbix -p < schema.sql
Enter password: < digitar a senha definida para o usuário zabbix >

# mysql -D zabbix -u zabbix -p < images.sql
Enter password: < digitar a senha definida para o usuário zabbix >

# mysql -D zabbix -u zabbix -p < data.sql
Enter password: < digitar a senha definida para o usuário zabbix >


Configuração do Banco MySQL para Zabbix está OK
Ajuste de permissões
# mkdir /etc/zabbix
# chown -R zabbix.zabbix /etc/zabbix/

Local de configuração padrão do Zabbix
# cd /usr/local/etc
# vim zabbix_agent.conf
Altere a linha 13
Server=192.168.1.5 #Altere para o IP do seu servidor Zabbix
# vim zabbix_server.conf
Verifique as linhas 78,92,102
DBName=zabbix #Nome do banco de dados criado
DBUser=zabbix #Usuário do banco de dados criado
DBPassword=zabbix #Senha do banco de dados criado

Criar um link simbólico no local default (/usr/local/etc/) do Zabbix para /etc/zabbix
# ln -s /usr/local/etc/ /etc/zabbix/

Ajustar scripts de inicialização Zabbix para o Debian
# cd /usr/src/zabbix-2.4.5/misc/init.d/debian
# cp zabbix-* /etc/init.d/
# cd /etc/init.d/
# chmod +x zabbix-server
# chmod +x zabbix-agent
# rcconf
Marque as opções zabbix-server e zabbix-agent
Startar os serviços Zabbix
# /etc/init.d/zabbix-server start
Starting Zabbix server daemon: zabbix_server
# /etc/init.d/zabbix-agent start
Starting Zabbix agent daemon: zabbix_agentd
Criar o diretório zabbix no /var/www/html
# mkdir /var/www/html/zabbix
Copiar o diretório frontends do Zabbix para o /var/www/html/zabbix
# cd ../../../
# cp -R frontends/php/* /var/www/html/zabbix/
# chown -R www-data:zabbix /var/www/html/zabbix/

Criar o VirtualHost zabbix
# cd /etc/apache2/sites-available/
# cp 000-default.conf zabbix.conf
# vim /etc/apache2/sites-available/zabbix.conf
Alterar a linha 12 e deixar como segue:
DocumentRoot /var/www/zabbix/ Habilitar o VirtualHost
# a2ensite zabbix.conf
Reiniciar o Apache
# service apache2 restart
Acesse no navegador: http://< IP ou nome do servidor Zabbix >/zabbix
Irá aparecer as telas de configuração (Setup) do Zabbix
Tela 1: Clique em Next
Tela 2: Se tiver OK, clique em Next
Tela 3: Colocar o nome do banco de dados MySQL criado anteriormente, nome de usuário e senha do banco. Faça o teste de conexão e clique em Next
Tela 4:
Host: Colocar o IP do servidor Zabbix
Port: 10051
Name: Nome do servidor Zabbix
Depois clique em Next.
Tela 5: Apenas de conferência, se tiver OK, clique em Next.
Tela 6: Se seguiu os passos corretamente, receberá nessa tela "Congratulations on successful installation of Zabbix frontend", clique em Finish, caso contrário reveja o howto.
Após terminar o Setup do Zabbix, terá acesso a tela de login, usuário e senha default são conforme abaixo:
Login: admin
Senha: zabbix
Tela final:
Ativar o monitoramento do Zabbix
No menu Configuration -> hosts para visualizar
O host do Zabbix, depois clique em "Not monitored"
NOTA: Se utiliza as regras do firewall em DROP, liberando apenas as portas dos serviços de redes ativos, então lembrar de liberar a porta 10051 default do Zabbix no script firewall.

Referências:
https://www.zabbix.com/documentation/2.4/manual/introduction/about
http://www.vivaolinux.com.br/artigo/Monitoracao-com-Zabbix-no-Debian-Squeeze?pagina=2
http://zabbixbrasil.org/files/Tutorial_de_instala%C3%A7%C3%A3o_do_Zabbix_2.0.0_debian.pdf
Feito!

segunda-feira, 20 de julho de 2015

Instalando e configurando o SVN (Subversion) no Debian

O que é Subversion ?

O Subversion é um controle de versão opensource, que gerencia arquivos de códigos fontes e diretórios das modificações realizadas durante o desenvolvimento do projeto. Nisso permite que você faça revisão da versão anterior do projeto comparando com a versão atual, analisando as alterações de cada código fonte do projeto.


Segue os procedimentos de instalação e configuração do servidor SVN (Subversion).
Instalação dos pacotes necessários
#apt-get update
#apt-get install subversion libapache2-mod-passenger libapache2-svn apache2

Criação do arquivo de configuração
# vim /etc/apache2/sites-available/svn.conf
OBS: A tag < Location > foi adicionado um espaço para ser exibido no post, no arquivo de configuração é sem o espaço.

< Location /Projetos>
DAV svn
SVNListParentPath on
#(local do repositório onde estarão seus projetos)
SVNParentPath "/var/svn/repositorio"
AuthType Basic
AuthName "Projetos"
#(arquivo com as senhas dos usuários)
AuthUserFile "/var/svn/repositorio/.svnpasswd"
Require valid-user
< /Location>


Criação dos diretórios conforme mencionado no arquivo de configuração
#mkdir /var/svn
#mkdir /var/svn/repositorio

Habilita o módulo DAV_SVN e o VirtualHost
#a2enmod dav_svn
#a2ensite svn

Reinicie o servidor Apache para efeito
#service apache2 restart

Criação do repositório conforme mencionado no arquivo de configuração e as devidas permissões
#svnadmin create /var/svn/repositorio/projetos
#htpasswd -c /var/svn/repositorio/.svnpasswd NomeDoProgramador1
#htpasswd /var/svn/repositorio/.svnpasswd NomeDoProgramador2
E assim sucessivamente para os demais usuários que terão acesso ao SVN
#chown -R www-data /var/svn
Faça o teste acessando pelo navegador conforme o contexto utilizado no arquivo de configuração
http://ip-ou-nome-do-servidor/Projetos
Para adicionar nos clientes SVN, basta utilizar a URL: http://ip-ou-nome-do-servidor/Projetos/projetos/, onde /Projetos é o contexto definido no arquivo de configuração e /projetos foi definido na execução do repositório.
Screenshot de teste.

Feito!

domingo, 12 de julho de 2015

Gerenciando VirtualBox pelo navegador

Caso você tenha várias máquinas virtuais (VMs) no VirtualBox e pretende gerenciar o VirtualBox pelo navegador de qualquer máquina, então você está no lugar certo.
Será utilizado o projeto phpVirtualBox que foi desenvolvido com o objetivo de ser possível gerenciar VMs do VirtualBox pelo navegador.
No entanto são necessários a instalação do Apache e PHP no servidor que tiver instalado o VirtualBox.


Então, vamos nessa ? Segue os passos atentamente.
Procedimentos de instalação e configuração
Apache + PHP
No Debian
#apt-get install apache2 libapache2-mod-php5
Oracle VirtualBox
#echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -c | \rev | cut -d: -f1 | rev) contrib" >> /etc/apt/sources.list

#wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add - #apt-get install virtualbox-4.3

Instalação do phpVirtualBox
#wget http://sourceforge.net/projects/phpvirtualbox/files/latest/download/phpvirtualbox-4.3-3.zip
#unzip phpvirtualbox-4.3-3.zip -d /var/wwww
Irá criar o diretório /var/www/phpvirtualbox-4.3-3, após extrair o arquivo phpvirtualbox-4.3-3.zip
Acessar /var/www e renomear o diretório.
#mv phpvirtualbox-4.3-3/ phpvirtualbox

Criação do usuário utilizador do VirtualBox
Precisamos adicionar um usuário para o serviço do VirtualBox e integração com phpVirtualBox.
#useradd -d /home/vbox -m -g vboxusers -s /bin/bash vbox
#passwd vbox
OBS: O nome de usuário vbox foi apenas uma sugestão, podendo ser qualquer outro usuário, desde que pertença ao grupo vboxusers.

Mapeando o usuário utilizador com o IP do servidor de virtualização
Criar o arquivo /etc/default/virtualbox
#vim /etc/default/virtualbox
Coloca nesse arquivo
VBOXWEB_USER=usuario_utilizador_vbox
VBOXWEB_HOST=IP_SERVIDOR_VIRTUALIZAÇÃO

Criar um VirtualHost para phpvirtualbox
#cd /etc/apache2/sites-available
#cp default phpvirtualbox
#vim phpvirtualbox
Altere as linhas
DocumentRoot /var/www/phpvirtualbox
< Directory /var/www/phpvirtualbox >

Habilita o VirtualHost
#a2ensite phpvirtualbox

No diretório onde foi extraído o phpVirtualBox /var/www/phpvirtualbox
#cd /var/www/phpvirtualbox
#mv config.php-example config.php
#vim config.php
Alterar as linhas 12, 13 e 176 var $varusername = 'usuario_vbox';
var $password = 'senha_usuario_vbox';
var $language = 'pt_br';
var $enableAdvancedConfig = true;

Por fim, ativar o serviço na inicialização do sistema
#update-rc.d vboxweb-service defaults

Faça o teste de outra máquina e tente acessar o servidor: http://IP/phpvirtualbox
Se acessar, então está OK, agora pode gerenciar as VMs pela interface web no navegador.

Caso as VMs estiver em outro local, deve mover para o diretório de usuário utilizador do VirtualBox, alterando as devidas permissões.
#hown -R vbox:vboxusers /home/vbox/VirtualBox\ VMs/[DirVM]/

Possíveis erros e soluções
1. Se caso ocorrer o erro "Invalid username or password".
O username / password default para logar no phpVirtualBox é admin/admin. Esse username/password é exclusivo do phpVirtualBox, porém você pode alterar o password por questão de segurança.

2. Caso após o acesso do login ocorrer o erro "Could not connect to host (http://127.0.0.1:18083/)". É porque faltou startar o serviço vboxwebsrv do VirtualBox.
#vboxwebsrv >nul &
#/etc/init.d/apache2 start
#/etc/init.d/vboxweb-service start
#/etc/init.d/vboxdrv start
Interessante colocar no script na inicialização.

3. Se caso ocorrer o erro "Method 'ns1:xxxxxxxxxxx' not implemented: method name or namespace not recognized". É porque a versão do phpVirtualBox é incompatível com a versão do VirtualBox. Verifique se esta na mesma versão.

Referência
http://sourceforge.net/p/phpvirtualbox/wiki/Home/
Feito!