この記事には、使用できる多くの例とコマンドが含まれているため、このガイドは非常に長くなります。
このインストールガイドはUbuntu / Debianに基づいており、前述のシステムでテストされています。 [必要なハードウェアとオペレーティングシステム](https://github.com/cantino/huginn/blob/master/doc/manual/requirements.md)を読んで、必要なハードウェアとソフトウェアの要件を理解してください。
これは、実稼働環境でのHuginnの展開をガイドするために使用される公式ガイドです。開発環境にインストールする必要がある場合、または他のインストールオプションについて知りたい場合は、[開始](https://github.com/cantino/huginn#getting-started)を確認してください。
次の手順は効果的であることが証明されています。このガイドを使用するときは、逸脱しないように注意し、必要なインストール環境に違反しないようにしてください。たとえば、多くの人は、フォルダの場所を変更したり、他のユーザーを使用してサービスを実行したりしたために、実行時に権限の問題を抱えています。
このガイドにバグやエラーを見つけた場合は、プルリクエストを送信してください。
特別なステートメントがない場合、すべてのコマンドはスーパーユーザー権限で実行されます。
インストール中に問題が発生した場合は、[問題解決](https://github.com/cantino/huginn/blob/master/doc/manual/installation.md#troubleshooting)の章を確認してください。
Huginnのインストールには、次のパーツが必要です。
Debianはデフォルトではsudoをインストールしません。システムが最新であることを確認してインストールしてください。
12345 | # run as root! apt-get update -y apt-get upgrade -y apt-get install sudo -y |
---|
**注:**インストールプロセス全体で、一部のファイルを手動で変更する必要があります。vimに精通している場合は、コマンドラインでvimをデフォルトのエディターとして設定できます。 vimに慣れていない場合は、この手順をスキップして、デフォルトのエディターを引き続き使用してください。
1234 | # Install vim and set as default editorsudo apt-get install -y vimsudo update-alternatives --set editor /usr/bin/vim.basic |
---|
node.jsリポジトリを導入します(UbuntuとDebian Jessieはこのステップをスキップできます)
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
|12| curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -|
|--------|--------|
必要なパッケージをインストールします(RubyおよびローカルのRuby gems拡張機能をコンパイルする必要があります)
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
12 | 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 |
---|
Huginnの製品版では、[RVM](https://rvm.io/)、[rbenv](https://github.com/sstephenson/rbenv)、[chruby](https://github.com/postmodern/chruby)などのRubyバージョン管理ツールを使用すると、問題の診断が困難になることがよくあります。したがって、バージョン管理プログラムを使用してRubyをインストールすることはお勧めしません。システム独自のRubyを使用するには、以下の手順に従うことを強くお勧めします。
古いバージョンのRubyがある場合は、最初にそれを削除します。
sudo apt-get remove -y ruby1.8 ruby1.9
12 | sudo apt-get remove -y ruby1.8 ruby1.9 |
---|
新しいRubyバージョンをダウンロードしてコンパイルします。
mkdir /tmp/ruby && cd /tmp/ruby curl -L --progress http://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2 | tar xj cd ruby-2.3.0 ./configure --disable-install-rdoc make -jnproc
sudo make install
|1234567| mkdir /tmp/ruby && cd /tmp/rubycurl -L --progress http://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2 | tar xjcd ruby-2.3.0./configure --disable-install-rdocmake -jnproc
sudo make install|
|--------|--------|
バンドラーとフォアマンをgemでインストールします。
sudo gem install rake bundler foreman --no-ri --no-rdoc
12 | sudo gem install rake bundler foreman --no-ri --no-rdoc |
---|
データベースパッケージをインストールします
sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev # Pick a MySQL root password (can be anything), type it and press enter, # retype the MySQL root password and press enter
12345 | sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev # Pick a MySQL root password (can be anything), type it and press enter,# retype the MySQL root password and press enter |
---|
インストールされているMySQLのバージョンを確認します(バージョン番号が5.5.3より大きい場合にのみ、 .env
構成ファイルを正常に実行できます)
mysql --version
12 | mysql --version |
---|
設置の安全性を確保する
sudo mysql_secure_installation
12 | sudo mysql_secure_installation |
---|
MySQLにログインします
mysql -u root -p#passwordMySQLルートパスワードを入力します
1234 | mysql -u root -p#passwordMySQLルートパスワードを入力してください |
---|
Huginnユーザーを作成するには、最初に mysql>
と入力しないでください。この部分は、最初に実行する必要があります。その後、実際のパスワードを選択し、コマンドラインで $ password
を置き換えます
mysql> CREATE USER 'huginn'@'localhost' IDENTIFIED BY '$password';
12 | mysql> CREATE USER 'huginn'@'localhost' IDENTIFIED BY '$password'; |
---|
InnoDBエンジンを使用できることを確認してください。これにより、長いインデックスが保証されます。
mysql> SET storage_engine = INNODB;#この手順が失敗した場合は、MySQL構成ファイルを確認してください(例: /etc/mysql/*.cnf
、/etc/mysql/conf.d/*
)#innodbの設定を確認してください「innodb =オフ」
12345 | mysql> SET storage_engine = INNODB;#この手順が失敗した場合は、MySQL構成ファイルを確認してください(例: /etc/mysql/*.cnf 、/etc/mysql/conf.d/* )#innodbの設定を確認してください"innodb = off" |
---|
Huginnユーザーがデータベースへのアクセスを許可できることを確認します
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES ON huginn_production
.* TO 'huginn'@'localhost';
12 | mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES ON huginn_production .* TO 'huginn'@'localhost'; |
---|
データベースを終了します
mysql> \q
12 | mysql> \q |
---|
新しいユーザーで新しいデータベースに接続してみてください
sudo -u huginn -H mysql -u huginn -p -D huginn_production#$ passwordを以前に置き換えたパスワードを入力します#$ passwordの代わりに前に選択した実際のパスワードを入力します
|12345| sudo -u huginn -H mysql -u huginn -p -D huginn_production#$ passwordを以前に置き換えたパスワードを入力します#$ password |の代わりに前に選択した実際のパスワードを入力します
|--------|--------|
ERROR 1049(42000):Unknown database'huginn_production'
が表示されます。これは、操作が正しいことを示しています。後でデータベースを作成するからです。
データベースのインストールが完了したので、残りのインストールを続行できます。
123456789101112131415161718192021222324252627 | # Huginnをホームファイルの下の「huginn」ユーザーフォルダにインストールします。cd/ home / huginn#Huginnリポジトリからのクローンsudo -u huginn -H git clone https://github.com/cantino/huginn.git- b master huginn#Huginnのインストールディレクトリに移動しますcd / home / huginn / huginn#Huginnのデフォルト設定をコピーしますsudo -u huginn -H cp .env.example .env#ディレクトリにlog /、tmp / pids /、およびtmp /を作成しますソケット/ディレクトリsudo-u huginn mkdir -p log tmp / pids tmp / sockets#Huginnがlog /およびtmp /フォルダにデータを書き込めることを確認しますsudochown -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#Unicornのデフォルトをコピーします構成ファイルsudo-u huginn -H cp config / unicorn.rb.example config / unicorn.rb |
---|
|123|# Huginnの構成ファイルを更新してから、以下の手順に従ってsudo -u huginn -H editor .env |を続行します。
|--------|--------|
ローカルデータベースサーバーを使用する場合、データベース構成ファイルは次のようになります(前に設定したHuginnのMySQLユーザーパスワードを使用します)。
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
12345678910111213141516 | DATABASE_ADAPTER=mysql2DATABASE_RECONNECT=trueDATABASE_NAME=huginn_productionDATABASE_POOL=20DATABASE_USERNAME=huginnDATABASE_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設定には、Huginnが実際に実稼働環境で実行されていることを確認するための注釈が付けられています
RAILS_ENV=production
12 | RAILS_ENV=production |
---|
必要に応じて、ユニコーンの構成ファイルを変更します。[requirements.md](https://huginn.cn/.requirements.md#unicorn-workers)には、適切な数のユニコーンを説明および推奨する部分があります。
12345 | # 実行するインスタンスの数が非常に多い場合は、ワーカーの数を増やします#サーバーに2 GB以上のメモリがある場合は、ほとんどのユーザーにとって2で十分です#ワーカーの数を1に減らしますsudo -u huginn -Hエディターconfig / unicorn.rb |
---|
**注:**プログラムが正常に実行されるように、必ず .env
と unicorn.rb
を変更してください。
注: HTTPSを使用することをお勧めします。必要に応じて、[HTTPSを使用](https://github.com/cantino/huginn/blob/master/doc/manual/installation.md#using-https)にアクセスして追加の手順を確認してください。
**注:**変更を確実に保存するには、初期インストールを完了するたびに、開始スクリプトファイルを .env
、 unicorn.rb
、または Procfile
に再インポートする必要があります!(詳細については、[Install Initスクリプト](https://github.com/cantino/huginn/blob/master/doc/manual/installation.md#install-init-script))
注: bundler 1.5.2バージョンでは、 bundle install -jN
(Nはプロセスの数)を使用して、インストールのために複数のプロセスを呼び出すことができます。また、測定可能な時間差(高速)内で複数のgemをインストールすることもできます。 60%)。 nproc
を使用して、プロセッサの数を確認します。詳細については、[投稿](https://robots.thoughtbot.com/parallel-gem-installing-using-bundler)を参照してください。まず、バンドラー> = 1.5.2( bundle -v
を実行)であることを確認します。バージョン1.5.2 [修正](https://github.com/bundler/bundler/pull/2817)にはすでに多くの[問題](https://devcenter.heroku.com/changelog-items/411)があります。
sudo -u huginn -H bundle install --deployment --without development test
12 | sudo -u huginn -H bundle install --deployment --without development test |
---|
123456789 | # データベースの作成sudo-u huginn -H bundle exec rake db:create RAILS_ENV = production#最新バージョンへの移行sudo -u huginn -H bundle exec rake db:migrate RAILS_ENV = production#管理者ユーザーとサンプルエージェントを作成し、デフォルトを使用しますadmin / password login sudo -u huginn -H bundle exec rake db:seed RAILS_ENV = production SEED_USERNAME = admin SEED_PASSWORD = password |
---|
終了したら、 その他のエージェントの例については、Huginn Wikiを参照してください!https:// github.com / cantino / huginn / wiki
**注:**これにより、初期ユーザーが作成されます。環境変数で「SEED_USERNAME」と「SEED_PASSWORD」を設定することにより、ユーザー名とパスワードを変更できます。パスワードを変更したくない場合(デフォルトのパスワードとして設定されます)、インストールが完了するのを待ってインターネットにオンラインで接続します。サーバーにログインしてパスワードを変更できます。
sudo -u huginn -H bundle exec rake assets:precompile RAILS_ENV=production
12 | sudo -u huginn -H bundle exec rake assets:precompile RAILS_ENV=production |
---|
Huginnは[foreman](https://ddollar.github.io/foreman/)を使用し、 Procfile
に従って初期化スクリプトを移行します
[Procfile
](https://github.com/cantino/huginn/blob/master/Procfile)を変更し、本番環境に適応するために提案された変更の1つを選択します。
sudo -u huginn -H editor Procfile
12 | sudo -u huginn -H editor Procfile |
---|
これにコメントする[2行](https://github.com/cantino/huginn/blob/master/Procfile#L6-L7)
web: bundle exec rails server -p ${PORT-3000} -b ${IP-0.0.0.0} jobs: bundle exec rails runner bin/threaded.rb
123 | web: bundle exec rails server -p ${PORT-3000} -b ${IP-0.0.0.0}jobs: bundle exec rails runner bin/threaded.rb |
---|
これらの[2行](https://github.com/cantino/huginn/blob/master/Procfile#L24-L25)または[これら](https://github.com/cantino/huginn/blob/master/Procfile#L28-L31)を使用します(つまり、コメントを削除します)
123 | # web: bundle exec unicorn -c config/unicorn.rb# jobs: bundle exec rails runner bin/threaded.rb |
---|
初期化スクリプトを導入します。
sudo bundle exec rake production:export
12 | sudo bundle exec rake production:export |
---|
注: .env
または Procfile
を変更するたびに、初期化スクリプトを再インポートする必要があります。
sudo cp deployment/logrotate/huginn /etc/logrotate.d/huginn
12 | sudo cp deployment/logrotate/huginn /etc/logrotate.d/huginn |
---|
sudo bundle exec rake production:status
12 | sudo bundle exec rake production:status |
---|
注: Nginxは、Huginnに公式に推奨されるサーバーです。 Nginxをサーバーとして使用したくない場合は、wikiに移動して、[apache](https://github.com/cantino/huginn/wiki/Apache-Huginn-configuration)の使用を確認できます。
sudo apt-get install -y nginx
12 | sudo apt-get install -y nginx |
---|
サンプルのWebページ設定をコピーします。
sudo cp deployment/nginx/huginn /etc/nginx/sites-available/huginn sudo ln -s /etc/nginx/sites-available/huginn /etc/nginx/sites-enabled/huginn
123 | sudo cp deployment/nginx/huginn /etc/nginx/sites-available/huginnsudo ln -s /etc/nginx/sites-available/huginn /etc/nginx/sites-enabled/huginn |
---|
確立を確実にするために、構成ファイルを必ず変更してください。複数のnginx Webページを実行する場合は、 listen
ディレクティブから default_server
パラメーターを削除してください。
1234 | # Change YOUR_SERVER_FQDN to the fully-qualified# domain name of your host serving Huginn.sudo editor /etc/nginx/sites-available/huginn |
---|
nginxがhuginnサービスのみを実行する場合は、デフォルトのnginx初期Webページを削除します。
sudo rm /etc/nginx/sites-enabled/default
12 | sudo rm /etc/nginx/sites-enabled/default |
---|
**注:**推奨するHTTPSを使用する場合は、Nginx構成ファイルで huginn
の代わりに huginn-ssl
を使用してください。詳細については、[HTTPSを使用](https://github.com/cantino/huginn/blob/master/doc/manual/installation.md#using-https)を参照してください。
次のコマンドを使用して、Nginx構成ファイルが正しいかどうかをテストします。
sudo nginx -t
12 | sudo nginx -t |
---|
「構文は大丈夫」と「テストは成功」が表示されます。エラーメッセージが表示された場合は、Nginx構成ファイルの huginn
または huginn-ssl
の誤植を確認し、エラーメッセージに基づいてエラーのトラブルシューティングを行ってください。
sudo service nginx restart
12 | sudo service nginx restart |
---|
ブラウザーでサーバーアドレスにログインして、Huginnに初めてログインします。 Huginnがデフォルトのアカウントを作成しました。以下を使用して、ログインできます。
admin (or your SEED_USERNAME) password (or your SEED_PASSWORD)
123 | admin (or your SEED_USERNAME)password (or your SEED_PASSWORD) |
---|
**楽しめ! **:sparkles :: star :: fireworks:
cd / home / huginn / huginn && sudo bundle exec rake production:start
と cd / home / huginn / huginn && sudo bundle exec rake production:stop
を使用して、Huginnサービスを開始または停止できます。
Huginnのインストールが完了したら、[更新](https://huginn.cn/.update.md)する方法を必ずお読みください。 [Capistrano](https://huginn.cn/.capistrano.md)を使用して、インストールが常に最新であることを確認することもできます。
HuginnでHTTPSを使用します。
.enbで
FORCE_SSL
を true
に設定します。
huginn
構成の代わりに huginn-ssl
を使用します。
sudo cp deployment/nginx/huginn-ssl /etc/nginx/sites-available/huginn
YOUR_SERVER_FQDN
を更新します
ssl_certificate
と ssl_certificate_key
を更新します。
構成ファイルを確認し、他のセキュリティおよびパフォーマンス拡張機能の適用を検討してください
Nginxを再起動し、初期化スクリプトをインポートして、Huginnを再起動します。
cd /home/huginn/huginn sudo service nginx restart sudo bundle exec rake production:export
1234 | cd /home/huginn/huginnsudo service nginx restartsudo bundle exec rake production:export |
---|
自己署名証明書の使用はお勧めしません。使用する場合は、証明書を生成する前に、正しい順序で手順を実行する必要があります。
sudo mkdir -p /etc/nginx/ssl/ cd /etc/nginx/ssl/ sudo openssl req -newkey rsa:2048 -x509 -nodes -days 3560 -out huginn.crt -keyout huginn.key sudo chmod o-r huginn.key
12345 | sudo mkdir -p /etc/nginx/ssl/cd /etc/nginx/ssl/sudo openssl req -newkey rsa:2048 -x509 -nodes -days 3560 -out huginn.crt -keyout huginn.keysudo chmod o-r huginn.key |
---|
インストールプロセス中に問題が発生した場合は、正しい順序でインストールし、手順を見逃さないようにしてください。
Huginnインスタンスが実行されていない場合は、次のスクリプトを実行して確認してください。
cd /home/huginn/huginn sudo bundle exec rake production:check
123 | cd /home/huginn/huginnsudo bundle exec rake production:check |
---|
他に問題がある場合は、エラーメッセージを特定するためにさまざまなログファイルを確認する必要があることを残念に思います。
/ var / log / nginx / huginn_error.log
このファイルは空である必要がありますが、最初に確認する必要がある場所です。 nginx
は、Huginnに送信された要求を処理する最初のアプリケーションであるためです。
一般的な問題:
connect()to unix:/home/huginn/huginn/tmp/sockets/unicorn.socket failed
:これはUnicornアプリケーションのサービスが実行されていないため、 PRODUCTION
の下にある[Profile](https://github.com/cantino/huginn/blob/master/doc/manual/installation.md#install-init-script)ファイルにコメントしてください。 2つのサンプル構成ファイルの1つ。同時に、ユニコーン構成ファイルが存在している必要があります。138 open() "/ home / huginn / huginn / public / ..."が失敗しました(13:アクセスが拒否されました)
:nginxユーザー(デフォルトは www-data
)は / home / huginn / huginn / publicを読み取ることができる必要があります
ディレクトリ/ home / huginn / huginn / log / unicorn.log
これには、次のようなHTTPリクエストのエントリが含まれている必要があります。 10.0.2.2-[18 / Aug / 2015:21:15:12 +0000]" GET / HTTP / 1.0 "200-0.0110
ルビーのトレースバック情報、または以下の他のエラーメッセージを見つけた場合:
/ home / huginn / huginn / config / unicorn.rb
の設定ファイルが存在しません/ home / huginn / huginn / log / production.log
このファイルは非常に長いです。Huginnを使用すると「申し訳ありませんが、問題が発生しました。」と表示される場合、これは、Huginnの開発者が問題を特定するのに役立つ情報のバックトラックの典型的な例です。
NoMethodError (undefined method name' for nil:NilClass):`` app/controllers/jobs_controller.rb:6:in index'`` config/initializers/silence_worker_status_logger.rb:5:in
call_with_silence_worker_status'`
エージェントの1つが正しく実行されていない場合、これらのファイルにはエラーメッセージまたはその他のトレースバック情報が含まれます。エージェントをデバッグする最も簡単な方法は、ログファイルを確認することです。これらのログファイルは、HuginnWebページでエージェントを変更またはトリガーしたときに生成されます。
これらのログファイルの場所は、Procfileファイルによって異なります。これらのコマンドにより、使用可能なログファイルのリストが表示されます。
ls -al /home/huginn/huginn/log/*/current
バックグラウンドプロセスを観察したい場合は、変更されたすべてのファイルを簡単に表示できます。
tail -f /home/huginn/huginn/log/*/current
解決できない他のエラーメッセージや予期しないバックトラッキングメッセージが見つかる場合があります。この問題の解決策を得ることができるように、十分な情報を含む新しい問題を作成してください。
この記事は[Huginn中文0042](https://huginn.cn/)によって翻訳され、プロジェクトの作成者によって承認されています。元のテキストについては、[ソースからのインストール](https://github.com/cantino/huginn/blob/master/doc/manual/installation.md)にアクセスしてください。
私のブログはまもなくTencentCloud +コミュニティに同期されますので、ぜひご参加ください:https://cloud.tencent.com/developer/support-plan?invite_code = 9bmt0ib957kd
Recommended Posts