fabricをWebUI上で実行するFabricBoltを触ってみる

Published: 2016年6月4日 by tomsato

概要

FabricBoltというfabricのコマンドを

WebUI上で実行するツールについて紹介する

準備

fabric自体のインストールはこちら

pythonを2.7になっていなかった場合はアップデート

// rootユーザ変更
$ sudo su -
// pyenvをクローン
# git clone https://github.com/yyuu/pyenv.git ~/.pyenv
// パスを通す
# echo 'export PYENV_ROOT=$HOME/.pyenv' >> ~/.bash_profile
# echo 'export PATH=$PYENV_ROOT/bin:$PATH' >> ~/.bash_profile
# echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
# source ~/.bash_profile
// インストール可能なバージョン一覧を取得
# pyenv install -l
// 2.7.11をインストール
# pyenv install 2.7.11
// 2.7.11に切り替える
# pyenv global 2.7.11
// 確認
# pyenv version
2.7.11 (set by /root/.pyenv/version)
# python -V; which python
Python 2.7.11
/root/.pyenv/shims/python

// fabric-boltでは/usr/bin/pythonが使われるのでそっちのバージョンを2.7にする
# mv /usr/bin/python /usr/bin/python_bak
# ln -s /root/.pyenv/versions/2.7.11/bin/python /usr/bin/python
# /usr/bin/python -V
Python 2.7.11

pythonのバージョンをあげるとyumが新しいバージョンに対応してなくてエラーになるので修正する

// 2.7を指定する
# sudo vim /usr/bin/yum
#!/usr/bin/python
↓
#!/usr/bin/python2.6

FabricBoltの用意

# pip install --upgrade pip
# yum -y install python-pip gcc gcc-c++ kernel-devel python-lxml libxslt-devel
# pip install fabric-bolt
// 設定ファイルの作成
# fabric-bolt init
Configuration file created at '/root/.fabric-bolt/settings.py'
// 設定ファイルの修正
// 最後に以下の2行を追加する
# vim .fabric-bolt/settings.py
ALLOWED_HOSTS = ['*']
DEBUG = True
# fabric-bolt migrate
// adminユーザの作成
# fabric-bolt createsuperuser
Email address: XXX
Password:
Password (again):
Superuser created successfully.
// 起動 XXXはサーバのipを指定
# sudo -E /root/.pyenv/shims/fabric-bolt --config=.fabric-bolt/settings.py runserver XXX.XXX.XXX.XXX:8080

XXX.XXX.XXX.XXX:8080にアクセスするとFabricBoltのログイン画面が表示される
fabricbolt01

使ってみる

ログインしてみる

fabricbolt02

「Projects」の「Add Project」より新規にProjectを作成する

Name プロジェクト名
Description プロジェクトの概要
Use repo’s fabfile? 指定したGitリポジトリのfabfileを利用するか
チェックしない場合はデフォルトのfabfileを使うことになる
Repo url 「Use repo’s fabfile?」にチェックした場合にリポジトリを指定する
Fabfile requirements 必要なものをpipからインストールする

今回はtestプロジェクトを作成する

fabricbolt03

無事に作成できた

fabricbolt04

「Add Stage」よりstageを作成する
Stage毎にhost名を指定できてfabricのタスクを実行することになるので
テスト環境と本番環境という単位で作成するのかも

fabricbolt05

「Create Stage」を実行するとStageが作成されている

fabricbolt06

次にhostの登録を行う
画面上部の「Hosts」タブに遷移して「Add Host」をクリックしてサーバの登録を行う
1台ずつしか登録できなさそう…
fabricbolt07

作成したStageのページに戻ってみると登録したサーバが選択できるようになっている
またデフォルトとして登録されているタスクが確認できる

fabricbolt08

試しに「test_env」を実行する

  1. 「Select Host」で先ほど登録したサーバを選択
  2. 「Add Stage Host」で選択したサーバをStageに登録する
  3. 「All Tasks」のプルダウンからtest_envを選択

すると確認画面に遷移してコメントを記述することができる

fabricbolt09

Go!

とりあえず成功した

fabricbolt10

感想

  • 準備が結構面倒
  • リポジトリを指定しての実行は試してどうなるか…
  • 指定時間実行できなさそうな気がする…
  • サーバの登録が1台づつしかできないので面倒だったりする

まとめ

FabricBoltをちゃんと使っていくとすると結構骨が折れそうな気がしました

コメントを書く

※ 個別に返信が必要な時のみご記入ください

※ Emailは公開されません

※ 承認されると名前・コメントが下記に表示されます

コメント一覧

最近の投稿

ビジュアルリグレッションテストについてまとめ、ネットで調べると数多くのライブラリがありどれがどんな立ち位置なのか全体像がわかりずらかったのでどんな種類があるのか入門の入門としてまとめます、またPlaywrightを使って実際に触ってみました

社内ツールなどの超小規模なAPIをGolangで実装する際にフレームワークを使うべきかを、実際にnet/httpを使った実装とフレームワークを使った実装を比較することでどれだけ優位性があるかを見ていきたいと思います。今回はフレームワークにはシンプルで使いやすそうなEchoを使うことにします。

vue-pdfを使ってNuxt.jsで作成しているアプリケーションに pdfスライドを表示させるサンプルを作成しました README.md通りに実装してもうまくいかないところがあったのでそのあたり含めてまとめます

Vue.js / Nuxt.jsにおけるログインの実装方法をまとめる Auth0やNuxt.jsのAuth Moduleとmiddlewareについて調べつつサンプルを作成することで理解を深める

コンポーネント設計について考える Atomic DesignやPresentational Component, Container Componentについてまとめつつ 自分だったらVue.js / Nuxt.jsでどういうコンポーネント設計にするかについてまとめます

カテゴリ一覧

タグ一覧