# Unable to create /etc/ansible/facts.d/openshift.fact, permission denied

**URL:** <https://forum.ansible.com/t/unable-to-create-etc-ansible-facts-d-openshift-fact-permission-denied/19923>\
**Category:** Ansible Project\
**Tags:** ubuntu\
**Created:** [December 2, 2015, 11:57pm UTC](https://forum.ansible.com/t/unable-to-create-etc-ansible-facts-d-openshift-fact-permission-denied/19923 "2015-12-02T23:57:12Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Suryaveer\_Chauhan](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Suryaveer\_Chauhan](https://forum.ansible.com/u/Suryaveer_Chauhan)\
**Post date:** [December 2, 2015, 11:57pm UTC](https://forum.ansible.com/t/unable-to-create-etc-ansible-facts-d-openshift-fact-permission-denied/19923/1 "2015-12-02T23:57:12Z")

</div>

Hi All,

I am a newbie to ansible.

I am following [this blog](https://albertomolina.wordpress.com/2015/10/13/openshift-3-on-openstack/) to install OpenShift Origin V3 on OpenStack using ansible. But I am getting error as below:

_**“Could not create fact file: %s, error: %s” % (filename, ex)**_  
_**main.OpenShiftFactsFileWriteError: Could not create fact file: /etc/ansible/facts.d/openshift.fact, error: [Errno 13] Permission**_  
_ **denied: ‘/etc/ansible/facts.d’** _

The target system is Centos and I can do passwordless sudo on the target systems. I even added in /etc/sudoers

centos All=(ALL) NOPASSWD:ALL

to all the nodes and also on the system from which I am running ansible.

From the system I run ansible, I tried executing as sudo, as root but same results.

I am not sure where it faces permission denied, I mean on the host or the target systems.

**Ansible vars:**

[OSEv3:vars]  
ansible\_ssh\_user=centos  
ansible\_sudo=true

**Ansible.cfg**

[defaults]  
hostfile = ansible\_hosts  
remote\_user = centos  
host\_key\_checking = False

Below is the full log:

root@ubuntu:/home/suryaveer# ansible all -m ping  
192.168.144.129 | success \>\> {  
“changed”: false,  
“ping”: “pong”  
}

192.168.144.128 | success \>\> {  
“changed”: false,  
“ping”: “pong”  
}

192.168.144.132 | success \>\> {  
“changed”: false,  
“ping”: “pong”  
}

root@ubuntu:/home/suryaveer# ansible-playbook openshift-ansible/playbooks/byo/config.yml

PLAY [Populate config host groups] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

TASK: [fail] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: [localhost]

TASK: [fail] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: [localhost]

TASK: [fail] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: [localhost]

TASK: [fail] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: [localhost]

TASK: [Evaluate oo\_etcd\_to\_config] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: [localhost]

TASK: [Evaluate oo\_masters\_to\_config] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [localhost] =\> (item=192.168.144.132)

TASK: [set\_fact] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [localhost]

TASK: [Evaluate oo\_nodes\_to\_config] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [localhost] =\> (item=192.168.144.128)  
ok: [localhost] =\> (item=192.168.144.129)

TASK: [Evaluate oo\_nodes\_to\_config] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: [localhost] =\> (item=192.168.144.132)

TASK: [Evaluate oo\_first\_etcd] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: [localhost]

TASK: [Evaluate oo\_first\_master] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [localhost]

TASK: [Evaluate oo\_lb\_to\_config] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: [localhost]

PLAY [Set etcd facts needed for generating certs] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: no hosts matched

PLAY [Create temp directory for syncing certs] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

TASK: [Create local temp directory for syncing certs] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [localhost → 127.0.0.1]

PLAY [Configure etcd certificates] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: no hosts matched

PLAY [Configure etcd hosts] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: no hosts matched

PLAY [Delete temporary directory on localhost] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

TASK: [file name={{ g\_etcd\_mktemp.stdout }} state=absent] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [localhost]

PLAY [Set master facts and determine if external etcd certs need to be generated] \*\*\*

GATHERING FACTS \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [192.168.144.132]

TASK: [Check for RPM generated config marker file .config\_managed] \*\*\*\*\*\*\*\*\*\*\*\*  
ok: [192.168.144.132]

TASK: [Remove RPM generated config files if present] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: [192.168.144.132] =\> (item=master)  
skipping: [192.168.144.132] =\> (item=node)  
skipping: [192.168.144.132] =\> (item=.config\_managed)

TASK: [set\_fact] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [192.168.144.132]

TASK: [openshift\_facts | Verify Ansible version is greater than 1.8.0 and not 1.9.0 and not 1.9.0.1] \*\*\*  
ok: [192.168.144.132]

TASK: [openshift\_facts | Ensure PyYaml is installed] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [192.168.144.132] =\> (item=PyYAML)

TASK: [openshift\_facts | Gather Cluster facts] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
failed: [192.168.144.132] =\> {“failed”: true, “parsed”: false}  
Traceback (most recent call last):  
File “/home/centos/.ansible/tmp/ansible-tmp-1449035570.03-273189812167365/openshift\_facts”, line 6355, in   
main()  
File “/home/centos/.ansible/tmp/ansible-tmp-1449035570.03-273189812167365/openshift\_facts”, line 1222, in main  
openshift\_facts = OpenShiftFacts(role, fact\_file, local\_facts, additive\_facts\_to\_overwrite)  
File “/home/centos/.ansible/tmp/ansible-tmp-1449035570.03-273189812167365/openshift\_facts”, line 999, in **init**  
self.facts = self.generate\_facts(local\_facts, additive\_facts\_to\_overwrite)  
File “/home/centos/.ansible/tmp/ansible-tmp-1449035570.03-273189812167365/openshift\_facts”, line 1013, in generate\_facts  
local\_facts = self.init\_local\_facts(local\_facts, additive\_facts\_to\_overwrite)  
File “/home/centos/.ansible/tmp/ansible-tmp-1449035570.03-273189812167365/openshift\_facts”, line 1194, in init\_local\_facts  
save\_local\_facts(self.filename, new\_local\_facts)  
File “/home/centos/.ansible/tmp/ansible-tmp-1449035570.03-273189812167365/openshift\_facts”, line 924, in save\_local\_facts  
“Could not create fact file: %s, error: %s” % (filename, ex)  
**main**.OpenShiftFactsFileWriteError: Could not create fact file: /etc/ansible/facts.d/openshift.fact, error: [Errno 13] Permission denied: ‘/etc/ansible’  
OpenSSH\_6.6.1, OpenSSL 1.0.1f 6 Jan 2014  
debug1: Reading configuration data /etc/ssh/ssh\_config  
debug1: /etc/ssh/ssh\_config line 19: Applying options for \*  
debug1: auto-mux: Trying existing master  
debug1: mux\_client\_request\_session: master session id: 2  
Shared connection to 192.168.144.132 closed.

FATAL: all hosts have already failed – aborting

PLAY RECAP \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
to retry, use: --limit @/root/config.retry

192.168.144.132 : ok=6 changed=0 unreachable=0 failed=1  
localhost : ok=7 changed=0 unreachable=0 failed=0

I have no prior experience with ansible, therefore I am unable to debug more.

Thanks

---

<div class="post-metadata">

**Author:** ![Andrew\_Edelstein](https://avatars.discourse-cdn.com/v4/letter/a/5daacb/32.png) [@Andrew\_Edelstein](https://forum.ansible.com/u/Andrew_Edelstein)\
**Post date:** [December 3, 2015, 12:09am UTC](https://forum.ansible.com/t/unable-to-create-etc-ansible-facts-d-openshift-fact-permission-denied/19923/2 "2015-12-03T00:09:09Z")

</div>

It’s not giving an error on your local system. That’s telling you that whatever file your task is touching on the remote (“managed”) system, the user that is running the command doesn’t have permission to modify the file. So what this is telling you is that the user that is running the specific task (the user that logged into the remote machine, not the user that is running the ansible playbook) does not have permission to write to /etc/ansible. Check what user is making the connection on the remote system / what user it is logging INTO that system as, and if you need to add “sudo: yes” and/or “sudo\_user: username” to the play. This applies EVEN IF THE REMOTE MANAGED MACHINE IS THE SAME MACHINE FROM WHICH YOU ARE RUNNING ANSIBLE. IE: If you’re running a play on “localhost”, running ansible inside sudo doesn’t change the user you’re logging into localhost with, and thus what permissions that user has on localhost.

---

<div class="post-metadata">

**Author:** ![Suryaveer\_Chauhan](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Suryaveer\_Chauhan](https://forum.ansible.com/u/Suryaveer_Chauhan)\
**Post date:** [December 3, 2015, 5:41am UTC](https://forum.ansible.com/t/unable-to-create-etc-ansible-facts-d-openshift-fact-permission-denied/19923/3 "2015-12-03T05:41:07Z")

</div>

Thanks for the reply.

How can I check which user is logging into the remote?

Below are the config parameters which has user details:

**Ansible vars:**

[OSEv3:vars]  
**ansible\_ssh\_user=centos**  
**ansible\_sudo=true**

**Ansible.cfg**

[defaults]  
hostfile = ansible\_hosts  
**remote\_user = centos**  
host\_key\_checking = False

Is it something different from this? Sorry, this is first time I am using ansible.

I can ssh into the target system as “**ssh [centos@192.168.144.132](mailto:centos@192.168.144.132)**” and I can then create files in /etc/ansible folders.

Meanwhile, I added sudo =yes and sudo\_user = centos in the .cfg and installation went ahead but now new error. Below is the log:

TASK: [openshift\_facts | Gather Cluster facts] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
changed: [192.168.144.132]

TASK: [openshift\_facts] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
changed: [192.168.144.132] =\> (item={‘local\_facts’: {‘public\_ip’: u’192.168.144.132’, ‘ip’: u’10.0.1.163’, ‘public\_hostname’: u’master’, ‘hostname’: u’‘, ‘deployment\_type’: u’{# deployment\_type #}‘}, ‘role’: ‘common’})  
changed: [192.168.144.132] =\> (item={‘local\_facts’: {‘console\_url’: u’‘, ‘api\_url’: u’‘, ‘cluster\_public\_hostname’: u’‘, ‘public\_api\_url’: u’‘, ‘public\_console\_url’: u’‘, ‘api\_use\_ssl’: u’‘, ‘api\_port’: u’‘, ‘console\_port’: u’‘, ‘console\_path’: u’‘, ‘cluster\_hostname’: u’‘, ‘console\_use\_ssl’: u’'}, ‘role’: ‘master’})

TASK: [Check status of external etcd certificatees] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [192.168.144.132] =\> (item=master.etcd-client.crt)  
ok: [192.168.144.132] =\> (item=master.etcd-ca.crt)

TASK: [set\_fact] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: [192.168.144.132]

PLAY [Create temp directory for syncing certs] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

TASK: [Create local temp directory for syncing certs] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [localhost → 127.0.0.1]

PLAY [Configure etcd certificates] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: no hosts matched

PLAY [Copy the external etcd certs to the masters] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

GATHERING FACTS \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [192.168.144.132]

TASK: [Ensure certificate directory exists] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: [192.168.144.132]

TASK: [Unarchive the tarball on the master] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: [192.168.144.132]

TASK: [file] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
skipping: [192.168.144.132] =\> (item=master.etcd-client.crt)  
skipping: [192.168.144.132] =\> (item=master.etcd-client.key)  
skipping: [192.168.144.132] =\> (item=master.etcd-ca.crt)

PLAY [Determine if master certificates need to be generated] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

GATHERING FACTS \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [192.168.144.132]

TASK: [set\_fact] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [192.168.144.132]

TASK: [set\_fact] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [192.168.144.132]

TASK: [Check status of master certificates] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [192.168.144.132] =\> (item=admin.crt)  
ok: [192.168.144.132] =\> (item=master.kubelet-client.crt)  
ok: [192.168.144.132] =\> (item=master.proxy-client.crt)  
ok: [192.168.144.132] =\> (item=master.server.crt)  
ok: [192.168.144.132] =\> (item=openshift-master.crt)  
ok: [192.168.144.132] =\> (item=openshift-registry.crt)  
ok: [192.168.144.132] =\> (item=openshift-router.crt)  
ok: [192.168.144.132] =\> (item=etcd.server.crt)

TASK: [set\_fact] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [192.168.144.132]

PLAY [Configure master certificates] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

GATHERING FACTS \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [192.168.144.132]

TASK: [openshift\_facts | Verify Ansible version is greater than 1.8.0 and not 1.9.0 and not 1.9.0.1] \*\*\*  
ok: [192.168.144.132]

TASK: [openshift\_facts | Ensure PyYaml is installed] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [192.168.144.132] =\> (item=PyYAML)

TASK: [openshift\_facts | Gather Cluster facts] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [192.168.144.132]

TASK: [openshift\_repos | assert] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
failed: [192.168.144.132] =\> {“assertion”: “openshift.common.deployment\_type in known\_openshift\_deployment\_types”, “evaluated\_to”: false, “failed”: true}

FATAL: all hosts have already failed – aborting

PLAY RECAP \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
to retry, use: --limit @/home/suryaveer/config.retry

192.168.144.132 : ok=20 changed=2 unreachable=0 failed=1  
localhost : ok=8 changed=0 unreachable=0 failed=0

Thanks a lot for your comment, at least, I moved further.

Regards,

---

<div class="post-metadata">

**Author:** ![Suryaveer\_Chauhan](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Suryaveer\_Chauhan](https://forum.ansible.com/u/Suryaveer_Chauhan)\
**Post date:** [December 3, 2015, 7:02am UTC](https://forum.ansible.com/t/unable-to-create-etc-ansible-facts-d-openshift-fact-permission-denied/19923/4 "2015-12-03T07:02:59Z")

</div>

I think I’ll open a new question for better visibility.
