pitagora-network.github.io

Pitagora 0.3.4

AWS EC2 なんかでは hostname が登録されてない場合に sudo を使うと stderr に警告が出る。そのせいで docker ベースのツールは実行時に失敗扱いされるので、セットアップ時に hostname を登録するようにしました。

# For EC2: add hostname to /etc/hostname to avoid warnings on sudo sudo sh -c 'echo 127.0.1.1 $(hostname) >> /etc/hosts'

VM)ネットワーク設定の修正。Gateway は設定しない。

$ sudo vi /etc/network/interfaces #gateway 192.168.56.1

VM)ubuntu ユーザーのパスワードを ubuntu から galaxy に変更

$ sudo passwd ubuntu

Pitagora 0.3.3

Miniconda のインストール(参考

$ wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh $ bash Miniconda2-latest-Linux-x86_64.sh Miniconda2 will now be installed into this location: /home/ubuntu/miniconda2 [/home/ubuntu/miniconda2] >>> Enter Do you wish the installer to prepend the Miniconda2 install location to PATH in your /home/ubuntu/.bashrc ? [yes|no] [no] >>> no

Pitagora 0.3.2(まとめ)

ネットワークの設定(NATで接続できなくなった場合、NATとHost Onlyの両方を停止した後、NATだけを起動すると接続できるようになる場合がある)

$ sudo vi /etc/network/interfaces auto eth1 iface eth1 inet static address 192.168.56.10 network 192.168.56.0 netmask 255.255.255.0 gateway 192.168.56.1 $ sudo ifup eth1

$ sudo apt-get update $ sudo apt-get install -y git

$ cd ~ $ git clone https://github.com/pitagora-galaxy/pitagora-galaxy.git $ git 

$ cd ~/install-0.3.2/scripts $ sh 01_install.sh

$ cd ~/install-0.3.2.git/scripts $ sh 02_config.sh

$ cd ~ $ . .profile

$ which python /home/ubuntu/galaxy-python/install/bin/python

$ cd ~/install-0.3.2/scripts $ sh 03_tools.sh 

Pitagora 0.3.1(詳細)

OS インストール(AWS)

OS インストール(VM〜未編集)

$ nmtui $ systemctl restart NetworkManager

# set | grep LANG
LANG=ja_JP.UTF-8
# vi /etc/profile
export LANG=en_US.UTF-8
# source /etc/profile
# set | grep LANG
LANG=en_US.UTF-8

ネットワーク 確認

確認

$ ip addr show

確認

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

必要に応じて再起動

$ sudo nmcli c down enp0s3 $ sudo nmcli c up enp0s3

インストール用スクリプトの入手

$ sudo apt-get update $ sudo apt-get install -y git

$ cd ~ $ git clone https://github.com/pitagora-galaxy/install-0.3.1.git

インストール後の追加作業 (20160808 - ohta)

sudo: unable to resolve host が出た場合の解決

追記: 以下の作業を毎度AMI立ち上げる度にやるのは面倒なので起動時に設定を書き込むようにする。

$ sudo vim /etc/rc.local # echo "127.0.0.1 " `hostname` >> /etc/hosts を /etc/rc.local に書き込む

これで以下はやらなくてOK.


サーバにsshしてsudoで何かしらのコマンドを実行すると

sudo: unable to resolve host ip-10-0-0-50

のようなエラーが出る場合、Galaxyの実行時にも「正常に実行され結果も出力されるがエラーが出る」という状態になる。

これを解決するには

$ sudo echo 127.0.1.1 ip-10-0-0-50 >> /etc/hosts

のように追記するとエラーが消える。 https://forums.aws.amazon.com/message.jspa?messageID=495274 を参照。

==== phpのインストールと / => /galaxy のリダイレクト ====

$ sudo apt-get update -y && sudo apt-get -y install php5 php5-cgi libapache2-mod-php5 php5-common php-pear $ a2enconf php5-cgi.conf $ sudo a2enconf php5-cgi.conf $ sudo vim /etc/php5/apache2/php.ini  # date.timezone の行のコメントアウトを外して date.timezone = Asia/Tokyo に変更。 $ sudo mv /var/www/html/index.html /var/www/html/index.html.bu $ sudo echo -e "

” > /var/www/html/index.php

これで http://try.pitagora-galaxy.org/ から http://try.pitagora-galaxy.org/galaxy/ にリダイレクトされるようになります。

01_install.sh

OSパッケージ追加

ただし、上3つはAMIで起動したOSに含まれていた。

$ sudo apt-get install sysv-rc-conf gcc make libsqlite3-dev libncurses5-dev zlib1g-dev libbz2-dev libssl-dev

MySQL はレポジトリ追加必要

$ sudo apt-get install mysql-server libmysqlclient-dev

途中で root のパスワードを設定する画面が表示されるので「galaxy」と2回入力

$ sudo apt-get install apache2 vsftpd acpid

$ sudo apt-get install linux-image-extra-$(uname -r) $ sudo apt-get install docker-engine

これらは将来はコンテナ側で用意したい

$ sudo apt-get install default-jdk gfortran g++

Galaxy 用の Python インストール

以下の操作は install-galaxy.sh に含まれています。

# exit
$ mkdir galaxy-python
$ cd galaxy-python
$ wget http://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
$ mkdir install
$ tar xvzf Python-2.7.11.tgz
$ cd Python-2.7.11
$ ./configure --prefix=/home/galaxy/galaxy-python/install
$ make
$ make install
$ which python
/usr/bin/python
$ cd
$ vi .bash_profile
export PATH=$HOME/galaxy-python/install/bin:$PATH
export PYTHONPATH=$HOME/galaxy-python/install/lib/python2.11/site-packages
$ source .bash_profile
$ which python
~/galaxy-python/install/bin/python
$ python --version
Python 2.7.11

Galaxy のインストール

以下の操作は install-galaxy.sh に含まれています。

$ git clone https://github.com/galaxyproject/galaxy/

$ cd galaxy $ ./run.sh

$ tail -f paster.log    ..    .. serving on 0.0.0.0:8080 view at http://127.0.0.1:8080

02_config.sh

galaxy サービスの作成

$ sudo cp ~/install/galaxy-init.sh /etc/init.d/galaxy $ sudo chmod 755 /etc/init.d/galaxy

MySQL の初期設定

$ mysql -u root -pgalaxy < create.sql

$ echo 'exit' | mysql -u galaxy -pgalaxy -D galaxy

CREATE DATABASE galaxy DEFAULT CHARACTER SET utf8; CREATE USER 'galaxy'@'localhost' IDENTIFIED BY 'galaxy'; GRANT ALL ON galaxy.* TO 'galaxy'@'localhost';

Galaxy の基本的な設定

$ cp ~/install/galaxy.ini ~/galaxy/config/

変更点

$ cd ~/galaxy/config $ cp galaxy.ini.sample galaxy.ini $ vi galaxy.ini

host = 0.0.0.0 admin_users = admin@pitagora-galaxy.org tool_dependency_dir = ../tool_dependency allow_user_deletion = True allow_user_dataset_purge = True database_connection = mysql://galaxy:galaxy@localhost:3306/galaxy?unix_socket=/var/run/mysqld/mysqld.sock database_engine_option_pool_recycle = 7200

プロキシ関連

[filter:proxy-prefix] use = egg:PasteDeploy#prefix prefix = /galaxy [app:main] filter-with = proxy-prefix cookie_path = /galaxy

ディスク追加

$ sudo mkfs -t ext4 /dev/sdb $ sudo mkfs -t ext4 /dev/sdc $ sudo mkdir -p /disk/reference $ sudo mkdir -p /disk/database $ sudo vi /etc/fstab /dev/sdb /disk/reference ext4 defaults 0 0 /dev/sdc /disk/database  ext4 defaults 0 0 $ sudo mount -a $ sudo chown galaxy:galaxy /disk/reference $ sudo chown galaxy:galaxy /disk/database

$ cp -r ~/galaxy/database/* /disk/database/ $ mv ~/galaxy/database ~/galaxy/database_bak $ ln -s /disk/database ~/galaxy/database $ ls -l ~/galaxy/database

タイトルとアイコンの変更

$ vi ~/galaxy-dist/static/scripts/galaxy.masthead.js ' Pitagora-Galaxy ' + brand_text + '' +

$ vi ~/galaxy-dist/templates/webapps/galaxy/base_panels.mako <%def name=title()>Pitagora-Galaxy</%def>

$ cd ~/galaxy-dist/static $ rm favicon.ico $ wget http://download.pitagora-galaxy.org/data/resource/favicon.ico

$ cd ~/galaxy-dist/static/images $ rm galaxyIcon_noText.png $ wget http://download.pitagora-galaxy.org/data/resource/galaxyIcon_noText.png

Apache によるプロキシ

mod_rewrite, mod_proxy, mod_http_proxy を有効化する

$ sudo a2enmod rewrite proxy proxy_http $ sudo service apache2 restart

/etc/apache2/sites-available/000-default.conf に以下追記

       #ServerName 192.168.56.10:80 <-- 必要かどうか要検討        <Directory “/var/www/html”>                AllowOverride All        </Directory>

/var/www/html/.htaccess を作成(今まで ^/galaxy$ という風にしていたが、/ はいらないようだ)

RewriteEngine on RewriteRule ^galaxy$ /galaxy/ [R] RewriteRule ^galaxy(.*) http://localhost:8080$1 [P]

$ sudo chmod 644 /var/www/html/.htaccess

各サービスの起動と初期設定

$ sudo service apache2 start $ sudo service mysql start $ sudo service acpid start $ sudo service docker start $ sudo service galaxy start

03_tools.sh

pycrypto six 追加

API でツールをインストールするために pycrypto が必要

これがないと以下の様なエラーが出る

ImportError: No module named Crypto.Cipher

ImportError: No module named six.moves.urllib.error

$ curl -kL https://bootstrap.pypa.io/get-pip.py | python $ pip install pycrypto six

samtools 追加

ToolShed から samtools 0.1.19 をインストール

$ vi .bash_profile export PATH=$HOME/tool_dependency/samtools/0.1.19/devteam/package_samtools_0_1_19/95d2c4aefb5f/bin:$PATH $ . .bash_profile

tool shed からのインストール

$ sh install_tools.sh 

Pitagora 0.3.1 (Backup: CentOS 7 を使おうとしてたときのもの)

OS インストール

$ nmtui $ systemctl restart NetworkManager

# set | grep LANG
LANG=ja_JP.UTF-8
# vi /etc/profile
export LANG=en_US.UTF-8
# source /etc/profile
# set | grep LANG
LANG=en_US.UTF-8

galaxy ユーザー作成

# useradd galaxy # passwd galaxy (galaxy)

$ su -
# visudo
%wheel  ALL=(ALL)       ALL
%wheel  ALL=(ALL)       NOPASSWD: ALL
# usermod -G wheel galaxy

SELinux 無効化

$ sudo  vi /etc/selinux/config
SELINUX=disabled
$ sudo reboot
$ getenforce
Disabled

Firewall 確認

iptables / firewalld が入っていない

$ sudo systemctl status firewalld
 firewalld.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)
$ sudo systemctl status iptables
 iptables.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

ネットワーク 確認

確認

$ ip addr show

確認

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

必要に応じて再起動

$ sudo nmcli c down enp0s3 $ sudo nmcli c up enp0s3

OSパッケージ追加

$ sudo yum install -y vim wget gcc sqlite-devel ncurses-devel zlib-devel bzip2-devel openssl-devel git

MySQL はレポジトリ追加必要

$ sudo yum -y install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm $ sudo yum install -y mysql-server mysql-devel

$ sudo yum install -y vsftpd php php-mbstring php-mysql acpid

これらは将来はコンテナ側で用意したい

$ sudo yum install -y java gcc-gfortran gcc-c++ gcc-gfortran

インストール用スクリプトの入手

$ cd ~ $ git clone https://github.com/pitagora-galaxy/install-0.3.x.git

Galaxy 用の Python インストール

以下の操作は install-galaxy.sh に含まれています。

# exit
$ mkdir galaxy-python
$ cd galaxy-python
$ wget http://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
$ mkdir install
$ tar xvzf Python-2.7.11.tgz
$ cd Python-2.7.11
$ ./configure --prefix=/home/galaxy/galaxy-python/install
$ make
$ make install
$ which python
/usr/bin/python
$ cd
$ vi .bash_profile
export PATH=$HOME/galaxy-python/install/bin:$PATH
export PYTHONPATH=$HOME/galaxy-python/install/lib/python2.11/site-packages
$ source .bash_profile
$ which python
~/galaxy-python/install/bin/python
$ python --version
Python 2.7.11

Galaxy のインストール

以下の操作は install-galaxy.sh に含まれています。

$ git clone https://github.com/galaxyproject/galaxy/

$ cd galaxy $ ./run.sh

$ tail -f paster.log    ..    .. serving on 0.0.0.0:8080 view at http://127.0.0.1:8080

各サービスの起動と初期設定

以下の操作は run_services.sh に含まれています。

$ sudo systemctl start httpd $ sudo systemctl start mysqld $ sudo systemctl start acpid $ sudo systemctl start docker $ sudo systemctl start galaxy

$ sudo systemctl enable httpd.service $ sudo systemctl enable mysqld.service $ sudo systemctl enable acpid.service $ sudo systemctl enable docker.service $ sudo systemctl list-unit-files httpd.service    enabled mysql.service    enabled acpid.service    enabled docker.service   enabled

$ sudo chkconfig galaxy on $ sudo chkconfig galaxy  0:off 1:off 2:on 3:on 4:on 5:on 6:off

MySQL の初期設定

$ sudo mysql
mysql> SET PASSWORD FOR root@localhost=PASSWORD('galaxy');
              Query OK, 0 rows affected (0.00 sec)
mysql> exit

# mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

# mysql -u root -p Enter password: ... Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

$ mysql -u root -pgalaxy mysql> CREATE DATABASE galaxy DEFAULT CHARACTER SET utf8; mysql> CREATE USER 'galaxy'@'localhost' IDENTIFIED BY 'galaxy'; mysql> GRANT ALL ON galaxy.* TO 'galaxy'@'localhost';

$ mysql -u galaxy -pgalaxy -D galaxy

Galaxy の基本的な設定

$ cp ~/install/galaxy.ini ~/galaxy-dist/config/

(元々の方法)

$ cd ~/galaxy-dist/config $ cp galaxy.ini.sample galaxy.ini $ vi galaxy.ini host = 0.0.0.0 admin_users = admin@pitagora-galaxy.org tool_dependency_dir = ../tool_dependency allow_user_dataset_purge = True database_connection = mysql://galaxy:galaxy@localhost:3306/galaxy?unix_socket=/var/lib/mysql/mysql.sock database_engine_option_pool_recycle = 7200

$ sudo cp ~/install/galaxy-init.sh /etc/init.d/galaxy $ sudo chmod 755 /etc/init.d/galaxy

ディスク追加

$ sudo mkfs -t ext4 /dev/sdb $ sudo mkfs -t ext4 /dev/sdc $ sudo mkdir -p /disk/reference $ sudo mkdir -p /disk/database $ sudo vi /etc/fstab /dev/sdb /disk/reference ext4 defaults 0 0 /dev/sdc /disk/database  ext4 defaults 0 0 $ sudo mount -a $ sudo chown galaxy:galaxy /disk/reference $ sudo chown galaxy:galaxy /disk/database

$ cd ~/galaxy $ cp -r database/* /disk/database $ mv database database_bak $ ln -s /disk/database

pycrypto 追加

API でツールをインストールするために pycrypto が必要

(src/MD2.c:31:20: fatal error: Python.h: No such file or directory とのエラーが生成される。)

(sudo yum install python-devel を利用して回避)

$ curl -kL https://bootstrap.pypa.io/get-pip.py | python $ pip install pycrypto

samtools 追加

ToolShed から samtools 0.1.19 をインストール

$ vi .bash_profile export PATH=$HOME/tool_dependency/samtools/0.1.19/devteam/package_samtools_0_1_19/95d2c4aefb5f/bin:$PATH $ . .bash_profile

タイトルとアイコンの変更

$ vi ~/galaxy-dist/static/scripts/galaxy.masthead.js ' Pitagora-Galaxy ' + brand_text + '' +

$ vi ~/galaxy-dist/templates/webapps/galaxy/base_panels.mako <%def name=title()>Pitagora-Galaxy</%def>

$ cd ~/galaxy-dist/static $ rm favicon.ico $ wget http://download.pitagora-galaxy.org/data/resource/favicon.ico

$ cd ~/galaxy-dist/static/images $ rm galaxyIcon_noText.png $ wget http://download.pitagora-galaxy.org/data/resource/galaxyIcon_noText.png