Ansible unarchiveでルートディレクトリにowner,groupが効かない
何があったさ
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)]
原因
$ 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
」ディレクトリもアーカイブに含めてやればいい。
「正しい」と書いてしまったが、それは時と場合によりけり。
Author And Source
この問題について(Ansible unarchiveでルートディレクトリにowner,groupが効かない), 我々は、より多くの情報をここで見つけました https://qiita.com/Ki2neudon/items/4e584430bfc7727e7766著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .