AWS EC2のUbuntuサーバーにFirefoxをインストールして、Selenium(Ruby)を動かすための準備


AWS EC2のUbuntuサーバーにFirefoxをインストールして、Selenium(Ruby)を動かすための準備を行ったときに、割りと大変だったので、そのメモを公開します。

アプリケーション自体はRuby on Railsなので、その準備も入ってます。
Amazon Linuxも試したのですが、firefoxのインストールとか大変でUbuntuを選択しました。
2017/7/18時点。

UbuntuにGUIとfirefox等をインストール

sudo apt-get update
sudo apt-get install lxde #GUI のインストール
sudo dpkg-divert --local --rename --add /sbin/initctl
sudo ln -s /bin/true /sbin/initctl
sudo start lxdm #GUI の起動

sudo apt-get install firefox
export DISPLAY=:1

sudo apt-get install vnc4server
vncserver
rm ~/.vnc/xstartup
ln -s /etc/X11/Xsession ~/.vnc/xstartup
vncserver -kill :1 #プロセス 1 (先ほど立ちあげたプロセス) を一旦 kill
vncserver #もう一回起動。設定が反映される。

参考:http://tushuhei.hatenadiary.jp/entry/20131009/1381302187

Ruby(Rails, MySQL)を動かすためのライブラリをインストール

sudo apt-get -y install git
sudo apt-get -y install ruby2.3
sudo apt -y install ruby-bundler
sudo apt-get -y install ruby2.3-dev nodejs libcurl4-openssl-dev apache2-dev libapr1-dev libaprutil1-dev libxml2 libxslt-dev build-essential patch libssl-dev mysql-server libmysqlclient-dev

参考:http://qiita.com/sasurai_usagi3/items/0fb2603669e7ac083395

FirefoxをSeleniumで動かすためにgeckodriverをインストールする

wget https://github.com/mozilla/geckodriver/releases/download/v0.16.1/geckodriver-v0.16.1-linux64.tar.gz
sudo sh -c 'tar -x geckodriver -zf geckodriver-v0.16.1-linux64.tar.gz -O > /usr/bin/geckodriver'
sudo chmod +x /usr/bin/geckodriver
rm geckodriver-v0.16.1-linux64.tar.gz

参考: https://askubuntu.com/questions/870530/how-to-install-geckodriver-in-ubuntu

トラブルシューティング

  • vncserverがいくつも立ち上がっていると上手くいかない。
  • ブラウザを処理完了後に閉じるようにしないと、メモリが足りなくなる。