HPCメモ

HPC(High Performance Computing)に関連したりしなかったりすることのメモ書き

mac 上で vagrant + ansibleの環境構築

前回は、ホストマシンとしてWindows10を使った環境を作りましたが、そろそろLinux環境をゲストにしたものも必要になってきたのでサクっと作ってみました。

hpcmemo.hatenablog.com


既に入っているものもありますが、必要なソフトをbrewでインストールします。

> brew install Caskroom/cask/vagrant Caskroom/cask/vagrant-manager vagrant-completion \
                        Caskroom/cask/virtualbox Caskroom/cask/virtualbox-extension-pack ansible

今回はCentOS7で環境を作る必要があったので、こちらの記載を参考にvagrant initします。
Vagrant box centos/7 | Atlas by HashiCorp

> vagrant init centos/7

Vagrantfileにはとりあえずvirtualboxのメモリ設定だけ追加して、あとは仮に"site.yml"というplaybookの名前を指定しておきます。

$ cat Vagrantfile 
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.ssh.insert_key = false
  config.vm.provider "virtualbox" do |vb|
    vb.gui = false
    vb.memory = "4096"
  end
  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "./site.yml"
  end
end

最後にこのsite.ymlを作っていきます。といっても今回は単純な開発環境なので、こんな感じでyumを使っていくつかのパッケージを入れるだけの簡単なplaybookです。

$ cat site.yml 
- hosts: all
  tasks:
  - name: install basic tools for build C/C++/Fortran program
    become: yes
    yum:
      name: "{{item}}"
      state: latest
      update_cache: True
    with_items:
      - cmake
      - autoconf
      - automake
      - git
      - gcc.x86_64
      - gcc-c++.x86_64
      - gcc-gfortran.x86_64

ターゲット環境が毎回微妙に変わるので*1この辺のツールをインストールするところはroleにして再利用できるようにしておくと大変便利そうです(でもやってない)

*1:CentOS or RHELのバージョンが 6だったり5だったり、たまにUbuntuの時もあるけど