CentOS7 + GitBook + GitLab + Hubot で 文書作成環境の構築
はじめに
GitBook は Markdown 形式のドキュメントから電子文書を作成するツールです。 次のような文書作成環境を構築します。
- GitBook に使うドキュメントを GitLab でバージョン管理します
- GitLab の push イベントを Hubot でフックします
- GitBook を使って電子文書を作成します
- 作成した電子文書を Apache を使って公開しブラウザで閲覧、ダウンロードできるようにします
- これらをVirtualBox(Windows) で作成した CentOS7 上に実装します
私はWindows10 64bit環境で動作確認しました。
CentOS7 の仮想マシンを作成
VirtualBox の仮想マシンを作成し、CentOS7 を Minimal 構成でインストールします。
使ったのは CentOS7-x86_64-Minimal-1511.iso
です。
インストール後、yum upgrade
を行います。
Guest Additions は入れてません。
SELinux は無効にし、firewalld
をインストールします。
GitLab のインストール
以下のコマンドを実行します。
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
yum -y install gitlab-ce
ホストPCからアクセスしたいので、ホストオンリーアダプタのIP(192.168.56.101) を external_url
に設定して gitlab-ctl reconfigure
を実行します。
ホストPCからブラウザで http://192.168.56.101
にアクセスしてみると...
接続されませんね。ファイアウォールの設定で 80 ポートを開けます。
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
再度アクセスして GitLab の画面が表示されることを確認します。 パスワードを再設定して root でログインできることを確認しましょう。
GitBook のインストール
GitBook は Node.js のアプリケーションです。 まずは Node.js をインストールします。
yum install epel-release -y
yum install nodejs npm -y
次に gitbook-cli
をインストールします。これは Gitbook のコマンドラインツールです。gitbook 自体は含まれていません。
npm install gitbook-cli -g
これで gitbook のコマンドが使えるようになります。 gitbook 自体は gitbook のコマンドを実行しようとすると、自動でインストールされます。
(gitbook をグローバルでインストールすると上手く動作しないのでローカルにインストールすることをオススメします)
gitbook help
上記を実行して本体をインストールします。 適当にフォルダを作って動作確認してみます。
mkdir book
cd book
gitbook init
> warn: no summary file in this book
> info: create README.md
> info: create SUMMARY.md
> info: initialization is finished
gitbook build
> info: 7 plugins are installed
> info: 6 explicitly listed
> info: loading plugin "highlight"... OK
> info: loading plugin "search"... OK
> info: loading plugin "lunr"... OK
> info: loading plugin "sharing"... OK
> info: loading plugin "fontsettings"... OK
> info: loading plugin "theme-default"... OK
> info: found 1 pages
> info: found 0 asset files
> info: >> generation finished with success in 0.4s !
PDF, epub, mobi 形式を作成する場合はそれぞれ gitbook pdf
, gitbook epub
, gitbook mobi
になります。
試しに PDF で作成してみます。
gitbook pdf
> info: 7 plugins are installed
> info: 6 explicitly listed
> info: loading plugin "highlight"... OK
> info: loading plugin "search"... OK
> info: loading plugin "lunr"... OK
> info: loading plugin "sharing"... OK
> info: loading plugin "fontsettings"... OK
> info: loading plugin "theme-default"... OK
> info: found 1 pages
> info: found 0 asset files
>
> InstallRequiredError: "ebook-convert" is not installed.
> Install it from Calibre: https://calibre-ebook.com
"ebook-convert" がインストールされていないので、Calibre をインストールする必要があります 。
公式サイトのダウンロードから Unix 用のインストール方法が記載されていますので、それを実行します。
yum install wget -y
sudo -v && wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"
インストールすると警告が2つ出ます。2つとも ImportError で実行に必要なもの libGL.so と QImage が見つからなかったようです。
試しにここで gitbook pdf
を実行すると「共有オブジェクトファイルを開けません」のようなエラーが表示されます。
これらは qt-creator
パッケージをインストールすることで解決します。
yum install qt-creator -y
再度 gitbook pdf
を実行して問題が出てないことを確認します。
Hubot のインストール
以下のコマンドを実行します
npm install hubot coffee-script generator-hubot yo -g