Ansible
OpenFOAM
ubuntu16.04

OpenFOAMの環境構築2018

OpenFOAMの環境構築

新しいバージョンがリリースされるたびにインストールは少し面倒くさい。
特にOpenFOAMはextend版(OpenFOAM+)などもあり、年に数回はインストール作業をせざる得ないしたくなる。

それ以外に、毎年新年には新しい環境を作りたくなる人向けにAnsibleを用いたOpenFOAMの環境構築を紹介する


ansibleFoamInstallation

  • OpenFOAM-extendのサブプロジェクト
  • サポートするOpenFOAMのディストリビューション

    • OpenFOAM 4.1
    • OpenFOAM 5.0
    • Foam-Extend 4.0
    • OpenFOAM v1612+
    • OpenFOAM v1706+
    • OpenFOAM v1712+
  • サポートするOSのディストリビューション

    • CentOS7
    • ArchLinux
    • MacOS X (必要なパッケージのインストールは手動らしい)
    • Ubuntu 16.04 LTS
    • Fedora Linux
    • AlpineLinux
    • CentOS6 (OpenFOAM v4.0, v1612+, Foam-Extend 4.0はサポートせず)
  • sudo権限は必要

  • localhostで実行されることを想定(sshでもインベントリファイルや変数theHostなどを正しく設定すればできる)

詳しくはhttps://sourceforge.net/p/openfoam-extend/ansibleFoamInstallation/ci/default/tree/README.md を参照


下準備

以降、Ubuntu 16.04 LTSをベースに説明する

Ansibleのインストール

Ubuntu 1604 LTS のパッケージマネージャーにあるAnsibleはバージョンが低いので
pipでインストールする。
rootユーザがAnsibleを実行できるようにsudoでインストール

sudo pip install ansible

ansibleFoamInstallationのリポジトリ取得

Mercurialをインストール後、任意のディレクトリでリポジトリを取得する

sudo apt install -y mercurial
mkdir ~/src
cd ~/src
hg clone http://hg.code.sf.net/p/openfoam-extend/ansibleFoamInstallation
cd ansibleFoamInstallation

OpenFOAMのインストールの設定

exampleConfigs/allFoams.ymlを下記のように書き換える

exampleConfigs/allFoams.yml
---
- hosts: localhost
  roles:
#    - { role: pyfoam }
    - { role: swak4foam ,     distro: p1712 }
    - { role: swak4foam ,     distro: of50 }
#    - { role: swak4foam ,     distro: p1706 }
#    - { role: swak4foam ,     distro: p1612 }
#    - { role: swak4foam ,     distro: fe40 }
#    - { role: cfmesh ,        distro: of50 }
#    - { role: cfmesh ,        distro: p1706 , cfmeshversion: development}
#    - { role: cfmesh ,        distro: fe40 }
#    - { role: cfmesh ,        distro: p1612 }
#    - { role: openfoambuild , distro: of50 , buildopts: "WM_COMPILE_OPTION=Debug" }

これでOpenFOAM 5.0とv1712+がswak4foamと一緒にコンパイルできる

cfmeshはOpenFOAM 5.0には対応していないはずなのでコメントアウトしている
またコメントアウトにはしていますがv1706にはdevelopmentブランチのみ対応しているので変数cfmeshversionにdevelopmentを指定している


Ansibleの実行

前述した通り、localhostで実行されることが想定されている

sudo ansible-playbook exampleConfigs/allFoams.yml --extra-vars="{'foamuser':'ubuntu'}"

foamuserをubuntuとしている。これにより/home/ubuntu以下にOpenFOAMがインストールされる。
python3をデフォルトにしている場合は下記のようにpython3のpathを指定する

sudo ansible-playbook exampleConfigs/allFoams.yml --extra-vars="{'foamuser':'ubuntu'}" -e "ansible_python_interpreter=/usr/bin/python3"

インストール結果

ls -lh /home/ubuntu/OpenFOAM

total 267M
drwxr-xr-x  3 ubuntu root   4.0K Jan 19 12:40 Additional-OpenFOAM-5.0
drwxr-xr-x  3 ubuntu root   4.0K Jan 19 09:43 Additional-OpenFOAM-v1712
drwxr-xr-x 11 ubuntu ubuntu 4.0K Jan 19 12:40 OpenFOAM-5.0
drwxr-xr-x 12 ubuntu   1001 4.0K Jan 19 09:43 OpenFOAM-v1712
-rw-r--r--  1 root   root    71M Jan 19 06:28 OpenFOAM-v1712.tgz
drwxr-xr-x  5 ubuntu ubuntu 4.0K Jan 19 13:05 site
drwxr-xr-x  6 ubuntu ubuntu 4.0K Jan 19 10:15 ThirdParty-5.0
drwxr-xr-x 12 ubuntu   1001 4.0K Jan 19 06:31 ThirdParty-v1712
-rw-r--r--  1 root   root   196M Jan 19 06:29 ThirdParty-v1712.tgz
drwxr-xr-x  3 ubuntu ubuntu 4.0K Jan 19 12:45 ubuntu-5.0
drwxr-xr-x  3 ubuntu ubuntu 4.0K Jan 19 08:39 ubuntu-v1712

無事インストールできている。


動作確認情報募集

動作確認情報、お待ちしております。
随時更新予定!

versions CentOS7 ArchLinux MacOS X Ubuntu 1604 LTS Fedora Linux AlpineLinux CentOS6
OpenFOAM 4.1
OpenFOAM 5.0
Foam-Extend 4.0
OpenFOAM v1612+
OpenFOAM v1706+
OpenFOAM v1712+