ツール化

vagrantでの環境構築を少しでも自動化する。

Vagrantfileの編集で、各ノードをループを回さずにする。
理由は理解して記載するため。
下記を参照した。
vagrantの複数インスタンスをたてて遊んでみる - わすれっぽいきみえ

結構時間を食う。
とりあえず今動いているのを理解する方が早い。

Vagrant.configure("2") do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://vagrantcloud.com/search.
  config.vm.box = "cenos/7.0"
  (1..3).each do |no|
    name = "cassandra#{no}"

    config.vm.define name do |node|
      node.vm.provider "virtualbox" do |vm|
        vm.name = name
        vm.customize ["modifyvm", :id, "--memory", "2048"]
      end
      node.vm.box = "centos/7"
      node.vm.hostname = name
      node.vm.network "private_network", ip: "192.168.33.4#{no}"
      node.vm.provision "shell", inline: "sudo systemctl stop firewalld"
      node.vm.provision "shell", inline: "sudo systemctl disable firewalld"
      node.vm.provision "shell", inline: "sudo systemctl restart network"
    end
  end
end

シェルスクリプトを作る。
ここからが本番。

とりあえずシェルを動かす。

[vagrant@cassa1 ~]$ ls
cassa
[vagrant@cassa1 ~]$ which bash
/usr/bin/bash
[vagrant@cassa1 ~]$ ./cassa
-bash: ./cassa: Permission denied
[vagrant@cassa1 ~]$ ls -l         
total 4
-rw-rw-r--. 1 vagrant vagrant 27 Nov 12 13:27 cassa
[vagrant@cassa1 ~]$ chmod +x cassa
[vagrant@cassa1 ~]$ ls -l
total 4
-rwxrwxr-x. 1 vagrant vagrant 27 Nov 12 13:27 cassa
[vagrant@cassa1 ~]$ ./cassa
hello

cassandraをアップロード
解凍

とりあえず、シェルでダウンロードに成功

#!/usr/bin/bash

curl -OL http://archive.apache.org/dist/cassandra/3.10/apache-cassandra-3.10-bin.tar.gz