逆引きマニュアル: Ansible: tarファイルをディレクトリ指定で展開する方法

投稿日:

やりたいこと

Ansibleでtarファイルを展開するときに、ディレクトリを指定する方法です。

前提条件

ゲストOSがLinuxの場合、すなわちGNU Tarを使うことを想定しています。

概要

以下の2通りがあります。

  • --transform オプションを使う方法
  • --strip-components オプションを使う方法

後者の方が良さそうです。

手順

--transform オプションを使う方法

tar --transform=s/^apache-tomcat-8.5.24/tomcat/ -xvf apache-tomcat-8.5.24.tar.gz

Ansibleの場合は以下のようになります。

unarchive:
  src: apache-tomcat-8.5.24.tar.gz
  dest: /opt/tomcat/
  extra_opts: "--transform=s/^apache-tomcat-8.5.24/tomcat/"

--strip-components オプションを使う方法

unarchive:
  src: apache-tomcat-8.5.24.tar.gz
  dest: /opt/tomcat/
  extra_opts: [--strip-components=1]

こちらの場合、あらかじめディレクトリを作る必要はありますが、 extra_optsにディレクトリを含めなくていいというメリットがあります。

補足

マニュアル