Ok, I just ran the deploy script on my machine (which works, with exactly 
the same files).  Here are the logs from the working machine:


$ ansible-playbook deploy.yml --ask-become-pass -vvv
ansible-playbook 2.8.0
  config file = /network/home/user1/ansible-rubyvm/ansible.cfg
  configured module search path = [u'/home/user1/.ansible/plugins/modules', 
u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible-playbook
  python version = 2.7.13 (default, Sep 26 2018, 18:42:22) [GCC 6.3.0 
20170516]
Using /network/home/user1/ansible-rubyvm/ansible.cfg as config file
BECOME password: 
host_list declined parsing /network/home/user1/ansible-rubyvm/hosts as it 
did not pass it's verify_file() method
script declined parsing /network/home/user1/ansible-rubyvm/hosts as it did 
not pass it's verify_file() method
auto declined parsing /network/home/user1/ansible-rubyvm/hosts as it did not 
pass it's verify_file() method
Parsed /network/home/user1/ansible-rubyvm/hosts inventory source with ini 
plugin
...
TASK [deploy : find deployments] 
****************************************************************************************************************************************************************************************************************************
task path: /network/home/user1/ansible-rubyvm/roles/deploy/tasks/main.yml:2
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: user1
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo 
/tmp/${USER}/ansible/ansible-tmp-1565811528.74-58741451285526 `" && echo 
ansible-tmp-1565811528.74-58741451285526="` echo 
/tmp/${USER}/ansible/ansible-tmp-1565811528.74-58741451285526 `" ) && sleep 
0'
Using module file 
/usr/lib/python2.7/dist-packages/ansible/modules/files/find.py
<localhost> PUT /home/user1/.ansible/tmp/ansible-local-9685YDWEj4/tmpUMTB0r 
TO 
/tmp/user1/ansible/ansible-tmp-1565811528.74-58741451285526/AnsiballZ_find.py
<localhost> EXEC /bin/sh -c 'chmod u+x /tmp/user1/ansible/ansible-tmp-
1565811528.74-58741451285526/ /tmp/user1/ansible/ansible-tmp-1565811528.74-
58741451285526/AnsiballZ_find.py && sleep 0'
<localhost> EXEC /bin/sh -c 'sudo -H -S  -p "[sudo via ansible, 
key=fnjawawcivjycahoaasqjgttvmdjzobb] password:" -u root /bin/sh -c '"'"'echo 
BECOME-SUCCESS-fnjawawcivjycahoaasqjgttvmdjzobb ; /usr/bin/python 
/tmp/user1/ansible/ansible-tmp-1565811528.74-58741451285526/AnsiballZ_find.py'"'"'
 
&& sleep 0'
<localhost> EXEC /bin/sh -c 'rm -f -r /tmp/user1/ansible/ansible-tmp-
1565811528.74-58741451285526/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => {
    "changed": false, 
    "examined": 2, 
    "files": [
        {
            "atime": 1565811338.5080934, 
            "ctime": 1565811463.5763762, 
            "dev": 54, 
            "gid": 101, 
            "gr_name": "users", 
            "inode": 88137, 
            "isblk": false, 
            "ischr": false, 
            "isdir": false, 
            "isfifo": false, 
            "isgid": false, 
            "islnk": false, 
            "isreg": true, 
            "issock": false, 
            "isuid": false, 
            "mode": "0644", 
            "mtime": 1565811437.9758408, 
            "nlink": 1, 
            "path": "deployments/app1.json", 
            "pw_name": "user1", 
            "rgrp": true, 
            "roth": true, 
            "rusr": true, 
            "size": 281, 
            "uid": 5954, 
            "wgrp": false, 
            "woth": false, 
            "wusr": true, 
            "xgrp": false, 
            "xoth": false, 
            "xusr": false
        }
    ], 
    "invocation": {
        "module_args": {
            "age": null, 
            "age_stamp": "mtime", 
            "contains": null, 
            "depth": null, 
            "excludes": [
                "sample_deployment.json"
            ], 
            "file_type": "file", 
            "follow": false, 
            "get_checksum": false, 
            "hidden": false, 
            "paths": [
                "deployments/"
            ], 
            "patterns": [
                "*.json"
            ], 
            "recurse": false, 
            "size": null, 
            "use_regex": false
        }
    }, 
    "matched": 1, 
    "msg": ""
}



Maybe this explains why one works and the other fails, but I need help 
understanding where to look?

Thanks!





On Wednesday, August 14, 2019 at 3:34:28 PM UTC-4, Larry Kyrala wrote:
>
> Correction, it turns out I was comparing mount options within the debian 
> VM to those on the Mac.  When comparing mount options between both 
> environments, they are identical, except that one works and the other 
> doesn't.
>
> Trying to gather more information because this doesn't make any sense.
>
> Sorry!
>
> On Wednesday, August 14, 2019 at 3:12:08 PM UTC-4, Larry Kyrala wrote:
>>
>> Hi, 
>>
>> I opened an issue some time ago which was dismissed as a user issue and 
>> was directed here instead:
>> https://github.com/ansible/ansible/issues/53959
>>
>> I've discovered more information since reporting that issue.  Similar 
>> issues have also been observed on Mac as well as Windows, which makes me 
>> suspect NFS mount options, since the filesystem permissions in all other 
>> cases are the same between working accounts and non-working accounts.
>>
>> If we look at specific logs, it appears that once again find.py is 
>> implicated.  I'm not sure what find.py is doing that is failing, but maybe 
>> someone here can help?
>>
>>
>> # our deploy script works for some users and fails for others.  When it 
>> fails, it looks like this:
>>
>>
>> user2 ~/ansible-rubyvm> ansible-playbook deploy.yml --ask-become-pass 
>> -vvv
>> ansible-playbook 2.8.3
>>   config file = /network/home/user2/ansible-rubyvm/ansible.cfg
>>   configured module search path = [u
>> '/home/user2/.ansible/plugins/modules', u
>> '/usr/share/ansible/plugins/modules']
>>   ansible python module location = /usr/lib/python2.7/dist-packages/
>> ansible
>>   executable location = /usr/bin/ansible-playbook
>>   python version = 2.7.13 (default, Sep 26 2018, 18:42:22) [GCC 6.3.0 
>> 20170516]
>> Using /network/home/user2/ansible-rubyvm/ansible.cfg as config file
>> BECOME password:
>> ...
>> host_list declined parsing /network/home/user2/ansible-rubyvm/hosts as 
>> it did not pass it's verify_file() method
>> script declined parsing /network/home/user2/ansible-rubyvm/hosts as it 
>> did not pass it's verify_file() method
>> auto declined parsing /network/home/user2/ansible-rubyvm/hosts as it did 
>> not pass it's verify_file() method
>> ...
>> TASK [deploy : find deployments] 
>> *****************************************************************************************************************************************************************************************************************************************************************************
>> task path: 
>> /network/home/user2/ansible-rubyvm/roles/deploy/tasks/main.yml:2
>> <localhost> ESTABLISH LOCAL CONNECTION FOR USER: user2
>> <localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo 
>> /tmp/${USER}/ansible/ansible-tmp-1565734953.55-54346346260526 `" && echo 
>> ansible-tmp-1565734953.55-54346346260526="` echo 
>> /tmp/${USER}/ansible/ansible-tmp-1565734953.55-54346346260526 `" ) && 
>> sleep 0'
>> Using module file 
>> /usr/lib/python2.7/dist-packages/ansible/modules/files/find.py
>> <localhost> PUT 
>> /home/user2/.ansible/tmp/ansible-local-1636121zxeQM/tmpd33rm8 TO 
>> /tmp/user2/ansible/ansible-tmp-1565734953.55-54346346260526/AnsiballZ_find.py
>> <localhost> EXEC /bin/sh -c 'chmod u+x /tmp/user2/ansible/ansible-tmp-
>> 1565734953.55-54346346260526/ /tmp/user2/ansible/ansible-tmp-
>> 1565734953.55-54346346260526/AnsiballZ_find.py && sleep 0'
>> <localhost> EXEC /bin/sh -c 'sudo -H -S -n  -u root /bin/sh -c '"'"'echo 
>> BECOME-SUCCESS-nydnzrdhipfrrspdeywfggmpcnzadjmp ; /usr/bin/python 
>> /tmp/user2/ansible/ansible-tmp-1565734953.55-54346346260526/AnsiballZ_find.py'"'"'
>>  
>> && sleep 0'
>> <localhost> EXEC /bin/sh -c 'rm -f -r /tmp/user2/ansible/ansible-tmp-
>> 1565734953.55-54346346260526/ > /dev/null 2>&1 && sleep 0'
>> ok: [localhost] => {
>>    "changed": false,
>>     "examined": 0,
>>     "files": [],
>>     "invocation": {
>>         "module_args": {
>>             "age": null,
>>             "age_stamp": "mtime",
>>             "contains": null,
>>             "depth": null,
>>             "excludes": [
>>                 "sample_deployment.json"
>>             ],
>>             "file_type": "file",
>>             "follow": false,
>>             "get_checksum": false,
>>             "hidden": false,
>>             "paths": [
>>                 "deployments/"
>>             ],
>>             "patterns": [
>>                 "*.json"
>>             ],
>>             "recurse": false,
>>             "size": null,
>>             "use_regex": false
>>         }
>>     },
>>     "matched": 0,
>>     "msg": "deployments/ was skipped as it does not seem to be a valid 
>> directory or it cannot be accessed\n"
>> }
>>
>>
>>
>>
>> # script that is failing - deploy/main.yml:
>>
>>
>> - name: find deployments
>>   find:
>>     paths: deployments/
>>     patterns: "*.json"
>>     excludes: "sample_deployment.json"
>>   register: files_matched
>>
>>
>>
>>
>> # directory permissions from within the VM:
>>
>>
>> user2 ~/ansible-rubyvm> ls -la
>> total 37
>> drwxr-xr-x   8 user2  users    20 Jun  6 14:29 ./
>> drwxr-xr-x  15 user2  users    18 Aug  1 15:22 ../
>> drwxr-xr-x   8 user2  users    13 Aug 14 14:36 .git/
>> -rw-r--r--   1 user2  users   113 Jun  6 14:14 .gitignore
>> -rw-r--r--   1 user2  users     0 Jun  6 14:14 .placeholder
>> -rw-r--r--   1 user2  users  8946 Jun  6 14:14 README.md
>> -rw-r--r--   1 user2  users   639 Jun  6 14:29 aliases.sh
>> -rw-r--r--   1 user2  users    67 Jun  6 14:14 ansible.cfg
>> -rw-r--r--   1 user2  users    88 Jun  6 14:14 deploy.yml
>> drwxr-xr-x   2 user2  users     3 Jun  6 14:14 deployments/
>> drwxr-xr-x   2 user2  users     6 Jun  6 14:14 doc/
>> drwxr-xr-x   2 user2  users     3 Jun  6 14:21 files/
>> -rw-r--r--   1 user2  users   151 Jun  6 14:14 goodies.yml
>> drwxr-xr-x   2 user2  users     3 Jun  6 14:14 group_vars/
>> -rw-r--r--   1 user2  users    47 Jun  6 14:14 hosts
>> -rwxr-xr-x   1 user2  users   114 Jun  6 14:14 install.sh*
>> -rw-r--r--   1 user2  users    57 Jun  6 14:14 requirements.yml
>> drwxr-xr-x  11 user2  users    11 Jun  6 14:14 roles/
>> -rw-r--r--   1 user2  users   342 Jun  6 14:14 rubyvm.yml
>> -rwxr-xr-x   1 user2  users   479 Jun  6 14:14 setup.sh*
>>
>>
>> user2 ~/ansible-rubyvm> ls -la deployments
>> total 5
>> drwxr-xr-x 2 user2 users   4 Aug 14 14:41 .
>> drwxr-xr-x 8 user2 users  20 Jun  6 14:29 ..
>> -rw-r--r-- 1 user2 users   0 Aug 14 14:41 app1.json
>> -rw-r--r-- 1 user2 users 212 Jun  6 14:14 sample_deployment.json
>>
>>
>> If I do a "mount | grep home" to find the current mount options I find 
>> the following differences between the account that works and the one that 
>> doesn't:
>>
>> working-server-nfs:/vmgr/home05/user1 on /network/home/user1 
>>   (nfs, 
>>   nodev, 
>>   automounted, 
>>   nobrowse)
>>
>> broken-server-nfs:/vmgr/home06/user2 on /network/home/user2 type nfs 
>>   (rw, 
>>   relatime, 
>>   vers=3, 
>>   rsize=1048576, 
>>   wsize=1048576, 
>>   namlen=255, 
>>   hard, 
>>   noacl, 
>>   noresvport, 
>>   proto=tcp, 
>>   timeo=600, 
>>   retrans=2, 
>>   sec=sys, 
>>   mountaddr=x.x.x.x, 
>>   mountvers=3, 
>>   mountport=yyyyy, 
>>   mountproto=udp, 
>>   local_lock=none, 
>>   addr=x.x.x.x)
>>
>>
>>
>> The only thing that stands out to me is perhaps the "noacl" option which 
>> disables use of a possible NFSACL sideband protocol (if available).  In 
>> general, the one that doesn't work seems to have a lot of "performance 
>> optimizations" (such as local_lock=none).  It's also possible that POSIX 
>> assumptions in python and/or find.py rely on certain features that these 
>> options remove.
>>
>> Is there anything obvious here?
>>
>> Thanks!
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/8ac2fce9-9805-4221-b116-c79835be8ec4%40googlegroups.com.

Reply via email to