Yahoo!PipeやIFTTTのように使える自動化ツール『Huginn』をUbuntu Server 16.04 LTSにインストールする
Pocket

まえにStackStorm(St2)という、イベントドリブンな自動化ツール(特定のイベントが発生したら、指定された処理を自動で行ってくれるツール)を触ったことがあったのだが、それと同じように利用できそうな『Huggin』というツールを見かけた。Yahoo!PipeやIFTTTのような利用ができるらしい。
今回は、この『Huggin』をUbuntu Server 16.04 LTSにインストールしてみる。(Dockerもあるようなので、パッと試す場合はそちらでもいいだろう)

1.前提パッケージのインストール

まずは、以下のコマンドでupdateを行っておこう。

sudo apt-get update -y
sudo apt-get upgrade -y

 

Node.jsやその他必要になるパッケージをまとめてインストールする。
なお、Rubyは2.3以降が必要になるようなので、インストール完了後もしバージョンが古かったら別途インストールしなおす。

curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo dpkg-divert --local --rename --add /sbin/initctl
sudo ln -s /bin/true /sbin/initctl
sudo apt-get install -y runit build-essential git zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate python-docutils pkg-config cmake nodejs graphviz ruby ruby.h ruby-dev
sudo gem install rake bundler foreman --no-ri --no-rdoc

 

2.システムユーザの作成

Huginnを動作させるシステムユーザを作成する。

sudo adduser --disabled-login --gecos 'Huginn' huginn

 

3.データベースの作成

次に、データベースの作成をする。最初にパッケージの導入を行う。

sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev

 

rootユーザのパスワード設定など、最低限のセキュリティ設定を行う。

sudo mysql_secure_installation

 

ユーザやデータベースの作成を行う。

mysql -u root -p -e '
    CREATE USER "huginn"@"localhost" IDENTIFIED BY "huginn";
    SET default_storage_engine=INNODB;
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES ON `huginn_production`.* TO "huginn"@"localhost";'

 

この時点ではデータベースの作成は行わない。

Sponsored Links

4.Huginnのインストールを行う

ここまで終わったら、Huginnのインストールを行う。
以下のコマンドを実行し、ソースのダウンロード等を行う。

cd /home/huginn
sudo -u huginn -H git clone https://github.com/cantino/huginn.git -b master huginn
cd /home/huginn/huginn
sudo -u huginn -H cp .env.example .env
sudo -u huginn mkdir -p log tmp/pids tmp/sockets
sudo chown -R huginn log/ tmp/
sudo chmod -R u+rwX,go-w log/ tmp/
sudo chmod -R u+rwX,go-w log/
sudo chmod -R u+rwX tmp/
sudo -u huginn -H chmod o-rwx .env
sudo -u huginn -H cp config/unicorn.rb.example config/unicorn.rb

 

設定ファイル『.env』を以下のように編集する。

DATABASE_ADAPTER=mysql2
DATABASE_RECONNECT=true
DATABASE_NAME=huginn_production
DATABASE_POOL=20
DATABASE_USERNAME=huginn
DATABASE_PASSWORD='$password'
#DATABASE_HOST=your-domain-here.com
#DATABASE_PORT=3306
#DATABASE_SOCKET=/tmp/mysql.sock

DATABASE_ENCODING=utf8
# MySQL only: If you are running a MySQL server >=5.5.3, you should
# set DATABASE_ENCODING to utf8mb4 instead of utf8 so that the
# database can hold 4-byte UTF-8 characters like emoji.
#DATABASE_ENCODING=utf8mb4

RAILS_ENV=production

 

設定ファイル編集後、必要になるGemのインストールを行う。

sudo -u huginn -H bundle install --deployment --without development test

 

その他、データベースの作成などを行う。

sudo -u huginn -H bundle exec rake db:create RAILS_ENV=production
sudo -u huginn -H bundle exec rake db:migrate RAILS_ENV=production
sudo -u huginn -H bundle exec rake db:seed RAILS_ENV=production SEED_USERNAME=admin SEED_PASSWORD=password
sudo -u huginn -H bundle exec rake assets:precompile RAILS_ENV=production

 

『Procfile』ファイルで、以下のようにコメントアウトする行を変更する。

●/home/huginn/huginn/Procfile

# コメントアウトする
# web: bundle exec rails server -p ${PORT-3000} -b ${IP-0.0.0.0}
# jobs: bundle exec rails runner bin/threaded.rb

# コメントアウト解除
web: bundle exec unicorn -c config/unicorn.rb
jobs: bundle exec rails runner bin/threaded.rb

 

 

ファイル編集後、以下のコマンドを実行する。

sudo bundle exec rake production:export
sudo cp deployment/logrotate/huginn /etc/logrotate.d/huginn
sudo bundle exec rake production:status

 

5.Nginxをインストールする

最後に、フロントとして利用するNginxをインストールする。

sudo apt-get install -y nginx

 

aptでインストール後、以下のコマンドでHuginn用の設定ファイルを配置する。

sudo cp deployment/nginx/huginn /etc/nginx/sites-available/huginn
sudo ln -s /etc/nginx/sites-available/huginn /etc/nginx/sites-enabled/huginn
sudo rm /etc/nginx/sites-enabled/default

 

コンフィグテストを行い、サービスの起動を行う。

sudo nginx -t
sudo service nginx restart

 

6.ブラウザからアクセスする

さて、インストールや諸々の設定が終わったら、ブラウザからアクセスしてみよう。「http://サーバのホスト名orIPアドレス」でアクセスできる。

 

初期ID/PWは「admin/password」になっている。
ひとまず、今回はインストールまで。次回以降、実際の設定などを行っていこう。

 

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。