構成管理ツールfairy support runで行うサーバー管理入門
はじめに(インストールと基本的な使い方)

構成管理ツールとは

システム開発を行う際、サーバー上で行う作業があります
ソフトウェアのインストールや設定、ユーザー管理、アプリケーションのデプロイ、データベースへのデータ投入等々...
これらサーバー上の作業を自動化し、複数サーバーに対して実行できるようにしたものです
ここではfairy support runというツールを紹介します
またこちらにfairy support runを使ったサンプルをアップロードしてあります。ご自由にお使いください

fairy support runの特徴

  1. インストールが簡単
    ダウンロードして適当な場所に置くだけです
  2. 学習コストがない
    fairy support runはシェルで記述します
    シェルが書ける人であればすぐに使うことができます
    他の構成管理ツールではYAMLまたは、JSONなどでツール独自の書き方をします
    その場合、シェルで書いていることを各ツール独自の記法で書き換えているだけである場合が多いです
    fairy support runではそのようなツール依存の独自記法を学習するコストがありません
  3. 覚えたことが無駄にならない
    数年後新しいツールに乗り換えたり、または、移動になった配属先で違うツールを使うことがあります
    その場合、独自の記法で書くツールを使っていた場合、その知識を使えなくなってしまいます
    しかし、fairy support runを使うにあたって覚えることはシェルだけです
    シェルを覚えることは、たとえあなたの配属先がどのような環境であっても、どのようなツールを使っていたとしても、決して無駄になることはないでしょう
    今後のエンジニア生活でシェルが使えない環境に身を置くことは少ないでしょう
  4. 既存資産を再利用できる
    現在構成管理ツールを使っていない現場の場合、かつて書き溜めたシェルを利用できます
  5. 作成物が無駄にならない
    数年後新しいツールに乗り換えたり、ツールのバージョンが上がったりして作成した成果物が使えなくなってしまう場合があります
    fairy support runはシェルを作成するだけなので、シェル自体はfairy support runが無くても動き、今後も使えます

fairy support runを試してみる

実際に動かして試してみましょう

fairy support runのインストール

com_fairysupport_run.jarをダウンロードし、適当なフォルダに置いてください

Javaのインストール

fairy support runを動かすためにJavaが必要です。Javaをインストールしておいてください
Javaのインストールはここから自分の使用しているOS用のファイルをダウンロードし解凍します
JAVA_HOMEという環境変数を作り、解凍したフォルダを値に設定します
解凍したフォルダ内のbinフォルダを環境変数PATHに追加します
Javaのインストールは以上です

VirtualBox、Vagrantのインストール

fairy support runを試す環境としてVirtualBox、Vagrantを使います
WindowsでVirtualBoxを使用する場合、仮想化支援機能(VT-x/AMD-V)をBIOSから有効にしてください。Hyper-Vを無効化してください
VirtualBoxをここからダウンロードしインストールします
Vagrantをここからダウンロードしインストールします

お試し環境の起動

適当にフォルダを作ります。ここではfairy_support_run_sampleというフォルダを作ってみました
その中にVagrantfileというファイルを作ります
Vagrantfileの内容は下記です

Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"

  config.vm.define :vm1 do |server|
    server.vm.hostname = "vm1"
    server.vm.network "private_network", ip: "192.168.33.10"
    server.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
    server.vm.network "forwarded_port", guest: 22, host: 2230, host_ip: "127.0.0.1"
  end
 
  config.vm.define :vm2 do |server|
    server.vm.hostname = "vm2"
    server.vm.network "private_network", ip: "192.168.33.11"
    server.vm.network "forwarded_port", guest: 80, host: 8181, host_ip: "127.0.0.1"
    server.vm.network "forwarded_port", guest: 22, host: 2240, host_ip: "127.0.0.1"
  end
end
ファイル構成
|-- fairy_support_run_sample
|   `-- Vagrantfile

コマンドラインでfairy_support_run_sampleに移動
vagrant up
と入力

cd fairy_support_run_sample
vagrant up

VirtualBoxマネージャーを起動すると仮想環境が2つ起動しているのが確認できます

fairy support runの設定

環境が整ったので、fairy support runの設定をしていきます。まず接続先サーバーの情報を記述します
ダウンロードしてきたcom_fairysupport_run.jarと同階層にserver.propertiesというファイルを作成します
サーバーに入る為のユーザー名、パスワード、サーバーのアドレス、ポート、秘密鍵へのパス、秘密鍵のパスフレーズを記載します。centos/7のボックスは秘密鍵のパスフレーズが無いので空欄になります
\は2つ重ねて記載します

server.properties
server1.user=vagrant
server1.password=vagrant
server1.address=127.0.0.1
server1.port=2230
server1.keyPath=C:\\fairy_support_run_sample\\.vagrant\\machines\\vm1\\virtualbox\\private_key
server1.passphrase=

server2.user=vagrant
server2.password=vagrant
server2.address=127.0.0.1
server2.port=2240
server2.keyPath=C:\\fairy_support_run_sample\\.vagrant\\machines\\vm2\\virtualbox\\private_key
server2.passphrase=

サーバー上で実行するシェルを作成します
ダウンロードしてきたcom_fairysupport_run.jarと同階層にtestというフォルダを作成します
作成したtestというフォルダ内にmain.shというファイルを作成します
今回はhostnameコマンドを実行するだけのシェルです
改行コードにCRが入らないようにしましょう。CR+LFでなく、LFで保存

main.sh
#!/bin/bash

hostname
ファイル構成
|-- fairysupport_test
|   |-- com_fairysupport_run.jar
|   |-- server.properties
|   `-- test
|       `-- main.sh

fairy support runの実行

設定が終わったので実行してみます
コマンドラインでcom_fairysupport_run.jarの置いてあるフォルダに移動
java -jar com_fairysupport_run.jar test
と入力
引数に与えているtestというのは先ほど作成したフォルダ名です

cd fairysupport_test
java -jar com_fairysupport_run.jar test
実行結果
-----------------------------------------------------------------------------------------------------------------------
[start][127.0.0.1:2240]

....

[run main.sh][127.0.0.1:2240]
cd /home/vagrant/com_fairysupport_run/test && ./main.sh
vm2
[delete file][127.0.0.1:2240]

....

[end][127.0.0.1:2240]
-----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------
[start][127.0.0.1:2230]

....

[run main.sh][127.0.0.1:2230]
cd /home/vagrant/com_fairysupport_run/test && ./main.sh
vm1
[delete file][127.0.0.1:2230]

....

[end][127.0.0.1:2230]
-----------------------------------------------------------------------------------------------------------------------

[run main.sh]のところを見るとmain.shが実行されたのがわかります
表示された内容を見るとfairy support runは非常に単純な動きだとわかります
引数で与えられたフォルダ内のファイルをアップロードし、main.shを実行するという作業を自動で行ってくれるのです
基本的な使い方の紹介は以上です
他に、ファイルのダウンロード機能や、他のフォルダもアップロードする機能や、server.propertiesの切り替え機能等もあります
次ページからサンプルを使って様々な使い方を紹介します
次ページでapache httpサーバーのインストールを例にfairy support runの機能を紹介していきます

目次