Andei procurando na internet por algum script para fazer uma instalação mais “automatizada” de um ambiente Ruby on Rails numa máquina virtual (VPS) rodando Ubuntu 11.10
Depois de pesquisar muito, só encontrei referências detalhadas para ubuntu 10.* ou então alguns blogs sugerindo algumas linhas de comando apenas.
Como eu já estava terminando um projeto de um site e precisava de um ambiente de produção, resolvi fazer um script (em bash), onde eu tivesse o controle de tudo que iria acontecer de forma segura e eficaz.
O script está disponível no meu github, use como quiser =)
Lembrando que só testei no Ubuntu 11.10, a instalação instala e configura o seguinte:
– Ruby 1.9.2-p290
– Nginx Upload Module 2.2.0
– Nginx 1.1.12
– iptables para as portas principais de ssh(22), http(80), https(443), dns(53)
– Mysql (versão estável do apt-get do ubuntu)
– Postfix (versão estável do apt-get do ubuntu)
– Gem Bundler (última versão pelo rubygems)
Com isso, basta configurar o domínio da sua aplicação corretamente na configuração do nginx, fazer o deploy e ser feliz! =)
Link do projeto: https://github.com/rafaelbiriba/Ubuntu-VPS-Builder
Abaixo segue uma cópia do código que eu coloquei no git assim você pode tirar suas dúvidas pelos comentários… Caso decida usar o script, baixe ele pelo link do github. Não use o código abaixo pois o mesmo pode já estar desatualizado!
Modo de usar no servidor:
$ chmod +x vps_builder.sh
$ ./vps_builder.sh seudominio.com
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | #!/bin/bash # "Automated VPS Setup for Ubuntu 11.10 - Rails with Nginx" # # Created by: Rafael Biriba - www.rafaelbiriba.com - [email protected] # https://github.com/rafaelbiriba/Ubuntu-VPS-Builder/ # # USAGE: # # $ chmod +x vps_builder.sh # $ ./vps_builder.sh yourdomain.com" echo "Updating before all" apt-get update && apt-get upgrade -y echo "Set Hostname" echo $1 > /etc/hostname echo "127.0.0.1 $1" >> /etc/hosts hostname -F /etc/hostname echo "Set Timezone" ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime echo "Install Essencials" apt-get install build-essential zlib1g-dev libreadline6-dev libssl-dev wget git-core sudo -y echo "Install Ruby 1.9.2" mkdir ~/tmp && cd ~/tmp wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz tar xzvf ruby-1.9.2-p290.tar.gz cd ruby-1.9.2-p290 ./configure make make install cd ~ rm -rf ~/tmp echo "Install Passenger and Nginx" mkdir ~/tmp && cd ~/tmp wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz tar xzvf pcre-8.21.tar.gz cd pcre-8.21 ./configure && make && make install cd ~/tmp wget http://nginx.org/download/nginx-1.1.12.tar.gz wget http://www.grid.net.ru/nginx/download/nginx_upload_module-2.2.0.tar.gz tar xzvf nginx-1.1.12.tar.gz tar xzvf nginx_upload_module-2.2.0.tar.gz gem install passenger apt-get install libcurl4-openssl-dev -y passenger-install-nginx-module --prefix=/opt/nginx --nginx-source-dir=/root/tmp/nginx-1.1.12 --extra-configure-flags=--add-module='/root/tmp/nginx_upload_module-2.2.0' #passenger-install-nginx-module --auto --auto-download cd ~ rm -rf ~/tmp cd ~ wget https://raw.github.com/rafaelbiriba/Ubuntu-VPS-Builder/master/ubuntu_11-10_desktop/nginx-init.sh cp nginx-init.sh /etc/init.d/nginx rm nginx-init.sh chmod +x /etc/init.d/nginx /usr/sbin/update-rc.d -f nginx defaults /etc/init.d/nginx start echo "Configure iptables" apt-get install iptables tee /etc/init.d/firewall <<ENDOFFILE #!/bin/bash start(){ # Accepting all connections made on the special lo - loopback - 127.0.0.1 - interface iptables -A INPUT -p tcp -i lo -j ACCEPT # Rule which allows established tcp connections to stay up iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # SSH: iptables -A INPUT -p tcp --dport 22 -j ACCEPT # DNS: iptables -A INPUT -p tcp --dport 53 -j ACCEPT iptables -A INPUT -p udp --dport 53 -j ACCEPT # HTTP e HTTPS: iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT # Block others ports iptables -A INPUT -p tcp --syn -j DROP iptables -A INPUT -p udp --dport 0:1023 -j DROP } stop(){ iptables -F iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT } case "\$1" in "start") start ;; "stop") stop ;; "restart") stop; start ;; *) echo "start or stop params" esac ENDOFFILE chmod +x /etc/init.d/firewall update-rc.d firewall defaults 99 /etc/init.d/firewall start echo "Install MySQL" apt-get install mysql-server mysql-client libmysqlclient-dev -y echo "Install postfix" # Install type: Internet Site # Default email domain name: example.com apt-get install postfix mailutils telnet -y /usr/sbin/update-rc.d postfix defaults /etc/init.d/postfix start echo "Install gem bundler" gem install bundler echo "VPS Setup Complete" |
Qualquer dúvida, estamos aí para trocar ideias 
___________________________________________________
Atualização 1 – 07/fev/2012:
Agradeço ao leitor Laércio pelo contato via email, reportando um problema, onde se o ubuntu estiver muito desatualizado, o script não roda direito. Com isso adicionei lá no github e no exemplo acima os comandos apt-get update e apt-get upgrade para atualizar o ubuntu antes de fazer qualquer coisa. Obrigado mais uma vez Laércio !

O Ubuntu 9.10 está finalmente disponível para download. (http://www.ubuntu.com/getubuntu/download)
Disponível em 32 ou 64 bits, e para laptops, netbooks, desktops, servers e etc.. Mais características da versão podem ser obtidas aqui.
Entre no terminal e digite:
update-manager -d
Como a versão já foi lançada oficialmente, atualize pelo seu gerenciador de atualizações como mostra a figura abaixo:

Fiz a atualização por cima do 9.04, e levou uma eternidade, baixando os pacotes a menos que 30 kb/s, isso porque todo mundo está atualizando o seu ubuntu hoje 
Aproximadamente 1200 arquivos foram baixados para atualizar a versão… Quanto ao desempenho, confesso que achei que ao migrar do 9.04 para o 9.10 iria sentir alguma perda de desempenho… Pelo menos, para que migrou do 8.10 para o 9.04, percebeu que o sistema ficou visivelmente mais lento, havendo até necessidade de reinstalar a versão do zero. Felizmente isso não aconteceu… É possível até notar que a versão nova é melhor…
Então, para quem usa seu ubuntu para fins domésticos, eu recomendo atualizar direto pelo update manager. Agora, para computadores de trabalho, onde rodam ambientes mais controlados, sugiro que haja com cautela, fazendo backups e talvez pensar em um possível rollback, caso o sistema novo se comporte de maneira indesejada.
Se possível for, compartilhe aqui como foi seu processo de atualização… Boa sorte a todos… 

Com o lançamento oficial para dia 29 de outubro/2009, a versão 9.10 já pode ser testado em sua versão beta.
Dentre as novas funcionalidades podemos destacar:
Teste rápido de desempenho do 9.04 e 9.10 em máquinas virtuais:Especificação: Disco de 10GB e memória de 256MB.
Detalhes: As imagens .iso utilizadas foram baixadas no mesmo dia
Vamos aos resultados:
Observações encontradas:
Como eu usei máquinas virtuais, o uso de minha cpu pode ter influênciado no teste (meio dificil, pois ela não chegou nem a 40% durante os testes ).. Porém, os valores acima, não podem servir como bases comparativas… Apenas para uma demonstração rápida…

Entre no terminal e digite:
update-manager -d
http://mirror.globo.com/ubuntu/releases/9.10/
* Lembrando que ainda está na versão beta até o dia do seu lançamento final (29/10/09)
Caso você resolva testar, não esqueça de reportar os bugs para ajudar a comunidade. Mais detalhes em https://help.ubuntu.com/community/ReportingBugs
Se você testou e/ou tiver mais alguma informação, compartilhe conosco através dos comentários abaixo. 

Um dos problemas que eu acho extremamente chato, é não poder usar as setas, o ctrl, a barra e outras teclas não habilitadas no vmware-server-console. Você pode ler sobre a instalação do console no ubuntu, clicando aqui.
Se você der uma pesquisada no google, rapidamente vai encontrar formas de resolver o problema. Uma delas é fazer o mapeamento das teclas que devem ser inseridas na configuração do vmware.
A questão é onde está o arquivo de configuração. Isso depende de como você instalou o vmware.
No meu caso está em /etc/vmware-server-console/config.
Adicionem as seguintes linhas no final do arquivo de configuração:
(OBS: Tem que ser root para fazer a alteração e certifique-se que o vmware não está aberto)
xkeymap.keycode.108 = 0x138 # Alt_R
xkeymap.keycode.106 = 0x135 # KP_Divide
xkeymap.keycode.104 = 0x11c # KP_Enter
xkeymap.keycode.111 = 0x148 # Up
xkeymap.keycode.116 = 0x150 # Down
xkeymap.keycode.113 = 0x14b # Left
xkeymap.keycode.114 = 0x14d # Right
xkeymap.keycode.105 = 0x11d # Control_R
xkeymap.keycode.118 = 0x152 # Insert
xkeymap.keycode.119 = 0x153 # Delete
xkeymap.keycode.110 = 0x147 # Home
xkeymap.keycode.115 = 0x14f # End
xkeymap.keycode.112 = 0x149 # Prior
xkeymap.keycode.117 = 0x151 # Next
xkeymap.keycode.78 = 0x46 # Scroll_Lock
xkeymap.keycode.127 = 0x100 # Pause
xkeymap.keycode.133 = 0x15b # Meta_L
xkeymap.keycode.134 = 0x15c # Meta_R
xkeymap.keycode.135 = 0x15d # Menu
xkeymap.keycode.97 = 0x073 # Slash
Se você não achou o arquivo de configuração, veja algumas outras possibilidades:
.vmware/config,
~/vmware/preferences,
/etc/vmware/config,
/usr/lib/vmware/config
Espero ter ajudado… 

Sempre que preciso, eu perco algum tempo em procurar e instalar vmware-server-console.
Então resolvi postar para facilitar. 
Primeiro, faça o download pelo site do vmware (http://download3.vmware.com/software/vmserver/VMware-server-linux-client-1.0.9-156507.zip), onde você deve extrair o pacote (23mb) para obter o VMware-server-console-1.0.9-156507.tar.gz
Ou então, baixe o pacote direto pelo link do meu blog: (apenas 9 mb
)
https://rafaelbiriba.com/VMware-server-console-1.0.9-156507.tar.gz
Ou apenas siga os comandos abaixo pelo terminal:
wget http://www.rafaelbiriba.com/VMware-server-console-1.0.9-156507.tar.gz tar -zxvf VMware-server-console-1.0.9-156507.tar.gz cd vmware-server-console-distrib/ sudo ./vmware-install.pl |
Caso tenha alguma dúvida/problema na instalação, verifique o link: http://help.ubuntu.com/community/VMware/Server na seção VMware Server Console Installation ou pergunte por aqui mesmo. 
Bom, hoje a tarde instalei o Ubuntu 9.04 no computador de casa. Como de costume, fui rodar os comandos do aptitude no terminal ( aptitude update e aptitude upgrade ), porém ainda no update, recebi vários erros. Alguns deles seguem logo abaixo: ( Foram mais de 10 )
Err http://br.archive.ubuntu.com jaunty Release.gpg
Não foi possível resolver ‘br.archive.ubuntu.com’
Err http://br.archive.ubuntu.com jaunty/main Translation-pt_BR
Não foi possível resolver ‘br.archive.ubuntu.com’
Err http://br.archive.ubuntu.com jaunty/restricted Translation-pt_BR
Foi então que eu resolvi tentar descobrir o que estava acontecendo.
Bom, pesquisei em vários forums a tarde toda, testei algumas das soluções e por fim consegui chegar a alguma conclusão.
Uma das recomendações foi alterar o repositório para o principal, no lugar do brasileiro.
Para fazer isto, basta entrar em SISTEMA > ADMINISTRAÇÃO > CANAIS DE SOFTWARE
Altere a opção BAIXAR DE: Servidor no Brasil para Servidor Principal
Em seguida, execute o aptitude update novamente.
Na verdade, pelo que pude analisar, isso não foi uma solução e sim uma camuflagem. Diferentemente da opção Servidor no Brasil, que retornou diversos erros ao tentar baixar os pacotes, com a opção Servidor Principal, os mesmo pacotes que davam erros, agora apenas são ignorados.
Agora vem a parte que ninguém esperava… Algumas horas depois, alterei o repositório para Servidor no Brasil, e ao rodar o update novamente, os pacotes que antes davam erro, foram baixados corretamente…
O porque disso ? Será que o fato de ter trocado o repositório tem alguma coisa haver ?
Bom, na verdade não. Fiquei com tanta curiosidade, que tive que instalar Ubuntu novamente, desde do zero. E para surpresa de todos, sem alterar qualquer configuração, os pacotes foram baixados normalmente sem nenhum erro.
Agora fica a pergunta no ar: O que realmente aconteceu ?
Minha opnião: Simples, a unica explicação lógica para isso foi: os pacotes que deram erro estavam em manutenção, ou sendo atualizados nos repositórios. Isso explica porque o mesmo pacote não foi baixado nos dois repositórios que tentei inicialmente, pois todos eles estavam indisponíveis temporariamente para download.
Portanto, se você passar pelo mesmo problema, fique calmo e espere algum tempo e logo conseguirá conectar ao repositório !

Um dos diferenciais encontrados nessa versão, é o Ubuntu 9.04 Netbook Remix. Desenvolvido para Notebooks de tela pequena e com pouco desempenho, este pacote pode solucionar o problema de muita gente. Veja os requisitos mínimos:
Como podem ver, é necessário pouco espaço e um memória mínima para rodar esta versão !
Disponível em: http://www.ubuntu.com/getubuntu/download-netbook
Características da nova versão ( em inglês ): http://www.ubuntu.com/products/whatisubuntu/904features
Download para desktop, server ou notebook: http://www.ubuntu.com/getubuntu/download
Bom, eu já postei isso anteriormente, mas resolvi publicar novamente para dar ênfase ! Não é necessário baixar o CD do 9.04 para atualizar seu Ubuntu. Você pode fazê-lo seguindo o procedimento abaixo, sem a necessidade de reinstalar seu sistema operacional.
Recomendo que você faça o Backup de todos os seus dados antes de fazer a atualização, para evitar qualquer tipo de problema. Mas eu atualizei, e ocorreu tudo certo, o sistema novo é excelente e não houve nenhum erro durante o processo.
Acessando o terminal ( geralment ALT+F2 ), digite:
update-manager -d
Isso fará com que o Gerenciador de Atualizações abra, exibindo a seguinte informação: Nova versão da distribuição ‘9.04’ está disponível
Basta apertar atualizar e iniciar o processo de atualização. Abaixo segue uma figura de exemplo:
Para quem ainda não foi informado sobre o assunto, vem por aí a versão 9.04 do Ubuntu !Algumas alterações na nova versão:
Mais informações: http://www.ubuntu.com/getubuntu/releasenotes/904overview
Atualizando seu Ubuntu de 8.10 para 9.04Acessando o terminal ( geralmente ALT+F2 ), digite:
update-manager -d
Isso fará com que o Gerenciador de Atualizações abra, exibindo a seguinte informação: Nova versão da distribuição ‘9.04’ está disponível
Basta apertar atualizar e iniciar o processo de atualização. Abaixo segue uma figura de exemplo:
Bom, mesmo ainda não finalizada, vou estar atualizando para 9.04 ainda hoje, então, depois eu posto alguma coisa mais específico sobre a nova versão !