VagrantとAnsibleでScalaの環境構築

こんにちは!入社2年目、広告サービスチームの山﨑です!
この頃ダイエット食品試しまくって5kg痩せました!!!毎日がリバウンドの恐怖&食欲との戦いです!☆
そんな私は業務ではずっとPerl を使って開発をしていたのですが、今後Scalaを導入していくということで環境構築を行いました。
実際は手動で行ったのですが、VagrantとAnsibleを使ったことがなかったのでこの二つを使ってもう一つ環境を作ってみました!

環境

ansible実行ホスト

  • CentOS7.3
  • Ansible 2.3.2.0

セットアップ対象

  • CentOS7.3

仕事で使用しているPCがWindowsでAnsibleを簡単に実行できないのでLinuxの仮想マシンを2つ用意しました。

VagrantでCentOS7 インストール

$ mkdir centos

Vagrantfileを作成
$ vagrant init CentOS7/

ネットワーク、共有フォルダ設定を追記
$ vim Vagrantfile

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.network :private_network, ip: "192.168.33.10" #任意のip
  config.vm.synced_folder ".", "/vagrant", type: "virtualbox" 
end

$ vagrant up

$ vagrant ssh

Windows環境だとrsyncが見つからないよとエラーがでたので
config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
を追記しました。
Windowsのコマンドプロンプトではsshログインできないので、ssh接続できるツールを使用してください。今回は同期におすすめされたGit Bashを使っています!

これでCentOSのインストールは完了です!

Ansible

今回作成したplaybookがこちら!

- hosts: all
  become: yes
  tasks:
    - name: install common package
      yum: name={{ item }}
      with_items:
        - unzip
        - wget

    - name: download JDK
      get_url:
        url: http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.rpm
        headers: "Cookie:oraclelicense=accept-securebackup-cookie"
        dest: /home/vagrant/jdk-8u144-linux-x64.rpm

    - name: import rpm
      yum:
        name: /home/vagrant/jdk-8u144-linux-x64.rpm
        state: present

    - name: get Scala
      get_url:
        url: http://downloads.typesafe.com/scala/2.11.7/scala-2.11.7.tgz
        dest: /home/vagrant/

    - name: unarchive scala.tgz
      unarchive:
        src: /home/vagrant/scala-2.11.7.tgz
        dest: /home/vagrant
        remote_src: True

    - name: scala path
      become: False
      lineinfile:
        path: /home/vagrant/.bash_profile
        regexp: 'export PATH%'
        insertbefore: 'export PATH'
        line: 'export PATH=$PATH:/home/vagrant/scala-2.11.7/bin'

実行!

$ ansible-playbook -i hosts main.yml

完了してscalaコマンドを打つと、scalaconcoleが立ち上がるはずです!!
ではではそのまんまって感じなのですが実行内容を解説させて頂きます!

install common package

必要なパッケージをインストール

download JDK & import rpm

scalaを動かすのに必要なJDKのダウンロードです。サイトを見ていただくと分かるのですが、ラジオボタンでライセンス認証を行わなければなりません。 CUIから行うにはCookieのオプションをつけてあげればダウンロードできます!

get Scala & unarchive scala.tgz

Scalaのインストール。バージョンは適宜選択してください。 任意のパスに解凍します。

scala path

パスを通す為に.bash_profileに scala.taz を解凍したパスを追記します。

まとめ

本当はActivatorやIntelliJをインストールするところまでいきたかったのですが・・・今後の展望と致します。
途中エラーがでまくったりしてましたが、Ansibleを実行して全部のtaskが上手くいくととっても気持ちよいですね!
最後まで読んで頂きありがとうございました!