2022.01.30  

【Ansible】tar.gzファイルをEC2サーバーに転送、展開する(AWS)

Ansible    

Ansibleでローカルにあるtar.gzファイルをサーバー(AWS: EC2)に転送した後、展開(解凍)する方法について記載します。

playbookは下記のように記載します。

playbook.yml
- hosts: group1

  tasks:
  - name: tar.gzファイルをローカルからサーバーへ転送した後、展開する
    unarchive:
      src=/Users/user/ansible_work/test.tar.gz
      dest=/home/centos/work

hostsにはインベントリファイルに設定した任意のgroup名を指定しています。
インベントリファイルにはAWSへの接続先情報などを記載します。
具体的な書き方についてはこちらをご参照ください。

unarchiveはローカルにあるtar.gzファイルをサーバーに転送した後、展開するモジュールです。

srcにはローカル端末に配置してあるtar.gzファイルまでのパスを指定します。

destには接続先サーバーでtar.gzを配置、展開するディレクトリパスを指定します。
※インベントリファイルで指定した接続ユーザーの権限が、適切に対象ディレクトリへ付与されていないと処理は失敗します。

実行例

まずローカル端末(Mac)にtest.tar.gzファイルを用意します。

(base) mbp:ansible_work user$ pwd
/Users/user/ansible_work
(base) mbp:ansible_work user$ ls -l test
total 0
-rw-r--r--  1 user  staff  0  1 30 12:20 test1.txt
-rw-r--r--  1 user  staff  0  1 30 12:20 test2.txt
-rw-r--r--  1 user  staff  0  1 30 12:20 test3.txt
(base) mbp:ansible_work user$ 
(base) mbp:ansible_work user$ tar -zcvf test.tar.gz test
a test
a test/test1.txt
a test/test2.txt
a test/test3.txt
(base) mbp:ansible_work user$ ls -l test.tar.gz 
-rw-r--r--  1 user  staff  167  1 30 13:30 test.tar.gz

冒頭でご紹介したplaybook.ymlansible-playbookコマンドで実行します。
すると次のような結果となります。

実行例
(base) mbp:ansible_work user$ ansible-playbook -i hosts playbook.yml 

PLAY [group1] *****************************************************************************************************************************************************************************

TASK [Gathering Facts] ********************************************************************************************************************************************************************
ok: [55.66.123.178]

TASK [tar.gzファイルをローカルからサーバーへ転送した後、展開する] *************************************************************************************************************************
changed: [55.66.123.178]

PLAY RECAP ********************************************************************************************************************************************************************************
55.66.123.178              : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

EC2サーバー(55.66.123.178)へ接続して/home/centos/workディレクトリにtest.tar.gzが転送、展開されているかを確認します。

[root@ip-55.66.123.178 work]# pwd
/home/centos/work
[root@ip-55.66.123.178 work]# ls -lR 
.:
合計 0
drwxr-xr-x. 2 centos centos 57  1月 30 12:20 test

./test:
合計 0
-rw-r--r--. 1 centos centos 0  1月 30 12:20 test1.txt
-rw-r--r--. 1 centos centos 0  1月 30 12:20 test2.txt
-rw-r--r--. 1 centos centos 0  1月 30 12:20 test3.txt

想定通り/home/centos/worktest.tar.gzが展開された状態で配置されていることが確認できました。

Udemy動画

コメント
現在コメントはありません。
コメントする
コメント入力

名前 (※ 必須)

メールアドレス (※ 必須 画面には表示されません)

送信