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

Vagrantを使ってAipo8.1.1およびAipo6.0.1の環境を用意しましたが、実はAipoには配布用パッケージを簡単にビルドする仕組みが用意されています。

https://github.com/aipocom/distribute

これと組み合わせて、最新のAipoをビルド・デプロイしてみます。

Vagrantfile

CentOS7×Aipo8.1.1インストール用をベースにしました。

途中mavenによるビルドをしているので、メモリを増やしておくといいと思います。

VAGRANTFILE_API_VERSION = "2"

IMAGE_NAME = "centos7-aipo-latest"
AIPO_INSTALL_SCRIPT = "../install_aipo-latest.sh"
IP_ADDRESS = "192.168.1.103"
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
    vb.memory = "1024"
  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

install_aipo-latest.sh

Vagrantあんまり実は関係なく、このスクリプトを回すことでAipoのパッケージングおよびデプロイができてしまいます。

#!/bin/bash

DATESTR=`date +%Y%m%d`
yum install -y gcc nmap lsof unzip readline-devel zlib-devel wget
yum install -y git java-1.8.0-openjdk-devel
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
yum install -y apache-maven
yum install -y ruby rubygem-rake

# Aipo Distribute
cd /usr/local/src
git clone https://github.com/aipocom/distribute.git
cd distribute
rake installer:latest
cp /usr/local/src/distribute/target/aipo-latest-${DATESTR}-linux-x64.tar.gz /usr/local/

# Install Aipo
cd /usr/local/
tar -xvzf aipo-latest-${DATESTR}-linux-x64.tar.gz
cd aipo-latest-${DATESTR}-linux-x64
sh installer.sh
/usr/local/aipo/bin/startup.sh

https://github.com/YoshiteruIwasaki/DevOps/blob/master/install_aipo-latest.sh

distributeプロジェクト内では

  • Aipoのソースコードを git clone
  • mvn install
  • jre,tomcat,postgresqlのパッケージング

をやっている感じになっています。

カンの鋭い方はもうお気づきかもしれませんが、カスタマイズしたAipoをLinux向け限定に配布するケースであれば、

  • https://github.com/aipocom/aipo
  • https://github.com/aipocom/aipo-opensocial
  • https://github.com/aipocom/distribute

をフォークしてカスタマイズすればあっという間に配布用のtar.gzファイルができあがってしまいます。