четверг, 14 июня 2012 г.

Ubuntu Rails3 rvm

Original please see: http://thekindofme.wordpress.com/2010/10/24/rails-3-on-ubuntu-10-10-with-rvm-passenger-and-nginx/

Before installation:
sudo apt-get update
sudo apt-get install build-essential git-core curl libmysqlclient-dev nodejs
sudo apt-get install libtool
sudo apt-get install gcc

Install rvm:
curl -L https://get.rvm.io | bash -s stable --ruby

If you have problem due installing nginx(openssl) please see:
http://jamiecurle.co.uk/blog/setting-up-rails-in-ubuntu-10-dot-04-using-nginx-and-passenger/


Install nginx+passenger and make it as service:
https://gist.github.com/sathishmanohar/5491263

Ubuntu ssh keys.

Please see https://help.ubuntu.com/community/SSH/OpenSSH/Keys


mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
sudo service ssh restart
vi .ssh/authorized_keys


Add your local id_rsa.pub to the authorized_keys.

chmod 600 ~/.ssh/authorized_keys


Luck!

Set up new user on the ubuntu.

Add new user:
sudo useradd ubuntu -m -s /bin/bash
Add new group:
# sudo addgroup admin
Add user to group:
# sudo adduser <username> <groupname>
in our case:
# sudo adduser ubuntu admin
Make ubuntu sudoers without password:
 # sudo vi /etc/sudoers
Set up
%admin ALL=NOPASSWD: ALL 
for %admin group.

Check:
#sudo su ubuntu 
sudo ls -ls //should not need password

Good luck!


среда, 30 мая 2012 г.

Как я моунтил диски для Amazon

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html

Есть амазон инстанц с 3 volume.  Второй на 50 гиг но в консоли я его не видел.
Шаги для mount disk

1. sudo mkdir /opt/extra
2. sudo mount /dev/xvdf /opt/extra
3. sudo vi /etc/fstab
LABEL=cloudimg-rootfs   /        ext4   defaults        0 0
/swapfile1 swap swap defaults 0 0
/dev/xvdb       /mnt    auto    defaults,nobootwait,comment=cloudconfig 0       2
/dev/xvdf       /opt/extra      auto    defaults,nobootwait,comment=cloudconfig 0       2

latest row has been added.

4. To check:

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  4.0G  3.6G  54% /
udev                  1.9G  4.0K  1.9G   1% /dev
tmpfs                 752M  156K  752M   1% /run
none                  5.0M     0  5.0M   0% /run/lock
none                  1.9G     0  1.9G   0% /run/shm
/dev/xvdb             394G  199M  374G   1% /mnt
/dev/xvdf              50G  374M   47G   1% /opt/extra

*********************

$ umount /opt/extra
$ mount /opt/extra

should not be errors

*********************
Good lack!

UPD:
Use the lsblk command to view your available disk devices and their mount points (if applicable) to help you determine the correct device name to use.
[ec2-user ~]$ lsblk
NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvdf  202:80   0  100G  0 disk
xvda1 202:1    0    8G  0 disk /

четверг, 17 мая 2012 г.

Update Ubuntu 9.04 to 10.04

Вчера столкнулся с такой проблемой: при установке nginx(rvmsudo passenger-install-nginx-module) на Ubuntu 9.04 необходимо было установить libcurl4-openssl-dev:
$ sudo apt-get install libcurl4-openssl-dev
Однако библиотеки не находились. Ubuntu 9.04 is not supported.
Пришлось обновлять до 10.04.
Общий подход обновления: http://thanhsiang.org/faqing/node/156
Но перед этим нужно поменять archive на old-releases в файле /etc/apt/sources.list в урлах.

После этого nginx установился отлично!

Удачного обновления!



среда, 16 мая 2012 г.

RubyAmp with ruby 1.9

Обновился до 1.9 и обнаружил, что не работает такой полезный textmate bundle, как RubyAmp.
Однако удалось найти fork для него:

в инструкции http://code.leadmediapartners.com/ использовать 

git clone git://github.com/lastobelus/rubyamp.git RubyAMP.tmbundle

вместо оригинального.
Перезапустить textmate и  переустановить gem rb-appscript. 

Немного глючный(появляются всплывающие алерты), но функционал сохранился!

Удачи в использовании!

Monit for rails application on the ubuntu production server

Решил прикрутить monit для рестарта процессов на сервере(Ubuntu)

Коротко про monit и установку: http://www.darkcoding.net/software/setting-up-monit-on-ubuntu/
Мне же нужно было отслеживать nginx, couchdb, delayed_job и sunspot_solr. Для двух последних необходимо использовать rvm для перезапуска процесса. В итоге получился следующий /etc/monit/monitrc файл:

  set daemon  120           # check services at 2-minute intervals
  set logfile /var/log/monit.log

set httpd port 2812
  allow localhost

check process nginx with pidfile /opt/nginx/logs/nginx.pid
    start program = "/etc/init.d/nginx start"
    stop program = "/etc/init.d/nginx stop"

check process couchdb with pidfile /home/ubuntu/build-couchdb/build/var/run/couchdb/couchdb.pid
    start program = "/usr/bin/sudo /home/ubuntu/build-couchdb/build/bin/couchdb -b"
    stop program = "/usr/bin/sudo /home/ubuntu/build-couchdb/build/bin/couchdb -d"

check process sunspot-solr with pidfile /tmp/sunspot-solr-production.pid
    start program = "/bin/su - ubuntu -c 'cd /var/www/apps/xan/current; rvm 1.9.3@xan do rake RAILS_ENV=production sunspot:solr:start'"
    stop program =  "/bin/su - ubuntu -c 'cd /var/www/apps/xan/current; rvm 1.9.3@xan do rake RAILS_ENV=production sunspot:solr:stop'"

check process delayed-job with pidfile /var/www/apps/xan/shared/pids/delayed_job.pid
    start program = "/bin/su - ubuntu -c 'rvm use 1.9.3@xan; RAILS_ENV=production /var/www/apps/xan/current/script/delayed_job start'"
    stop program =  "/bin/su - ubuntu -c 'rvm use 1.9.3@xan; RAILS_ENV=production /var/www/apps/xan/current/script/delayed_job stop'"

 Детали:

Для nginx и couchdb все было просто.
Sunspot-solr запускается rake коммандой c использованием 'rvm rake'(https://rvm.io/set/rake/).
Для delayed-job просто переключился на нужный мне gemset и выполнил комманду.


/bin/su - ubuntu -c 
использовал для имитации shell.

 Удачи в использовании!