Vagrantを使ってAipoのインストール環境を作る

仕事柄、色々なバージョンのAipoをインストールしたVirtualBOX上で動くCentOSイメージを用意することが多くあります。

Sourceforgeから各バージョンのインストーラーをダウンロードしてインストールコマンドを実行してもいいのですが、毎回やるのは結構手間なので、1コマンドで動く環境が用意できれば便利そうです。

Vagrantを使ってAipoのインストール環境を作ってみようと思います。

CentOS7にAipo8.1.1インストール済環境を用意する

install_aipo8110.sh

Aipoインストール関連の処理を1スクリプトにまとめておきます。

#!/bin/bash

yum install -y gcc nmap lsof unzip readline-devel zlib-devel wget
cd /usr/local/
wget -P /usr/local/ --trust-server-names "https://osdn.jp/frs/redir.php?m=iij&f=%2Faipo%2F64847%2Faipo-8.1.1-linux-x64.tar.gz"
tar -xvzf aipo-8.1.1-linux-x64.tar.gz
cd aipo-8.1.1-linux-x64
sh installer.sh
/usr/local/aipo/bin/startup.sh

Vagrantfile

変更のある箇所は変数化しておきます。CentOS7は公式のBOXがあるので、それをベースにイメージを構築します。

なお、Vagrantの場合、ネットワークアダプタの1つめはNATになるようです。

Aipoの場合、eth0からIPアドレスを取得してアクセスURLとしているので、起動スクリプトに表示されるURLはNAT経由でのアドレスで表示されますが、実際はブリッジアダプタ経由のIPアドレスでアクセス可能です。

VAGRANTFILE_API_VERSION = "2"

IMAGE_NAME = "centos7-aipo8.1.1"
AIPO_INSTALL_SCRIPT = "../install_aipo8110.sh"
IP_ADDRESS = "192.168.1.100"
IMAGE_BOX = "centos/7"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = IMAGE_BOX
  config.vm.provider :virtualbox do |vb|
    vb.name = IMAGE_NAME
  end
  config.vm.network "public_network", ip: IP_ADDRESS, bridge: "en0: Wi-Fi (AirPort)"
  config.vm.synced_folder "../vagrant_share", "/vagrant_data"
  config.vm.provision "shell", :path => AIPO_INSTALL_SCRIPT
end

さてあとはAipoのアップデート検証用に、少し古いバージョンの構築手順も用意しておきます。

CentOS6にAipo6.0.1インストール済環境を用意する

install_aipo6010.sh

Aipoインストール関連の処理を1スクリプトにまとめておきます。Aipo6.0.1は32bitのみの対応となっているため、ld-linux.so.2もインストールしておきます。

#!/bin/bash

yum install -y gcc nmap lsof unzip readline-devel zlib-devel wget
yum install -y ld-linux.so.2
cd /usr/local/
wget -P /usr/local/ --trust-server-names "https://osdn.jp/frs/redir.php?m=jaist&f=%2Faipo%2F60145%2Faipo6010ja_linux.tar.gz"
tar -xvzf aipo6010ja_linux.tar.gz
tar -xvzf aipo6010.tar.gz
cd /usr/local/aipo/bin
sh installer.sh
sh ./startup.sh

Vagrantfile

変更のある箇所は変数化しておきます。CentOS6は公式のBOXが無いので最もダウンロード数が多いものをベースにしました。

VAGRANTFILE_API_VERSION = "2"

IMAGE_NAME = "centos6-aipo6.0.1"
AIPO_INSTALL_SCRIPT = "../install_aipo6010.sh"
IP_ADDRESS = "192.168.1.102"
IMAGE_BOX = "puphpet/centos65-x64"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = IMAGE_BOX
  config.vm.provider :virtualbox do |vb|
    vb.name = IMAGE_NAME
  end
  config.vm.network "public_network", ip: IP_ADDRESS, bridge: "en0: Wi-Fi (AirPort)"
  config.vm.synced_folder "../vagrant_share", "/vagrant_data"
  config.vm.provision "shell", :path => AIPO_INSTALL_SCRIPT
end

これでそれぞれ

vagrant up

でAipoインストール済環境が構築されます。

https://github.com/YoshiteruIwasaki/DevOps