0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ansible unarchiveでルートディレクトリにowner,groupが効かない

Posted at

何があったさ

play-bookに以下のようにowner,groupを指定しているのに、ルートディレクトリだけはコレが効かないので色々試した。

playbook.yml
- name: test unarchive
  unarchive:
    src:   "hoge.tar"
    dest:  "/tmp/."
    owner: "udon"
    group: "udon"
結果
$ find /tmp/hoge -ls
792842    4 drwxr-xr-x   2 root     root         4096  6月 16 14:44 hoge    ★コイツがroot:rootになる
792926    0 -rw-r--r--   1 udon     udon            0  6月 16 14:44 hoge/b
792927    0 -rw-r--r--   1 udon     udon            0  6月 16 14:44 hoge/c
792855    0 -rw-r--r--   1 udon     udon            0  6月 16 14:44 hoge/a

環境

$ cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)

$ ansible --version
ansible 2.9.7
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/ansi/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /bin/ansible
  python version = 2.7.5 (default, Aug  7 2019, 00:51:29) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

原因

転送するhoge.tarの作り方に問題があった。
unarchiveに指定するowner,groupは、アーカイブに含まれるファイル・ディレクトリについてのみ有効となる。

間違ったアーカイブ作り方
$ tar cfp hoge.tar hoge/*
正しいアーカイブ作り方
$ tar cfp hoge.tar hoge

上記のように「hoge」ディレクトリもアーカイブに含めてやればいい。

「正しい」と書いてしまったが、それは時と場合によりけり。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?