# ansible include\_role syntax problem

**URL:** <https://forum.ansible.com/t/ansible-include-role-syntax-problem/32861>\
**Category:** Ansible Project\
**Created:** [May 6, 2020, 10:20am UTC](https://forum.ansible.com/t/ansible-include-role-syntax-problem/32861 "2020-05-06T10:20:30Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Meir\_Yanovich](https://avatars.discourse-cdn.com/v4/letter/m/9de0a6/32.png) [@Meir\_Yanovich](https://forum.ansible.com/u/Meir_Yanovich)\
**Post date:** [May 6, 2020, 10:20am UTC](https://forum.ansible.com/t/ansible-include-role-syntax-problem/32861/1 "2020-05-06T10:20:30Z")

</div>

I try to include\_rule but i keep getting errors on the wrong syntax  
this is my file structure :  
`

├── roles  
│ └── utilities  
│ ├── defaults  
│ ├── files  
│ ├── handlers  
│ ├── meta  
│ ├── tasks  
│ │ └── d\_pack.yml  
│ ├── templates  
│ └── vars  
└── test4.yml

`

the rule d\_pack.yml

`

---

<div class="post-metadata">

**Author:** ![racke](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/racke/32/4767_2.png) [@racke](https://forum.ansible.com/u/racke)\
**Post date:** [May 6, 2020, 10:49am UTC](https://forum.ansible.com/t/ansible-include-role-syntax-problem/32861/2 "2020-05-06T10:49:28Z")

</div>

> I try to include\_rule but i keep getting errors on the wrong syntax  
> this is my file structure :  
> \>
> 
> ```
> ├──roles  
> │ └──utilities
> │ ├──defaults
> │ ├──files
> │ ├──handlers
> │ ├──meta
> │ ├──tasks
> │ │ └──d\_pack\.yml
> │ ├──templates
> │ └──vars
> └──test4\.yml
> 
> ```
> 
> \>
> 
> the rule d\_pack.yml
> 
> \>  
> ---  
> -name:d packa  
> get\_url:  
> url\_username:  
> url\_password:  
> dest:  
> url:  
> owner:  
> group:  
> \>

The values are missing here.

Regards  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Racke

---

<div class="post-metadata">

**Author:** ![Meir\_Yanovich](https://avatars.discourse-cdn.com/v4/letter/m/9de0a6/32.png) [@Meir\_Yanovich](https://forum.ansible.com/u/Meir_Yanovich)\
**Post date:** [May 6, 2020, 10:57am UTC](https://forum.ansible.com/t/ansible-include-role-syntax-problem/32861/3 "2020-05-06T10:57:50Z")

</div>

Thanks for your fast replay , but now  
when i set default values in the rules  
i do not want them to evaluate only from my include\_rule I’m getting error:

`

- name:d packa  
get\_url:  
url\_username: temp  
url\_password: tmp  
dest: tmp  
url: tmp  
owner: tmp  
group: tmp

`

running in debug mode i can see that the rule got invoked with the dummy args  
this is not what i want … i want it only to be invoked with the values i set in vars :

`<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /home/ec2-user/.ansible/tmp/ansible-tmp-1588762539.1880841-18280-15848856136034/ > /dev/null 2>&1 && sleep 0' The full traceback is: File "/********/ansible_get_url_payload_xex4nmel/ansible_get_url_payload.zip/ansible/module_utils/urls.py", line 1494, in fetch_url unix_socket=unix_socket, ca_path=ca_path) File "/********/ansible_get_url_payload_xex4nmel/ansible_get_url_payload.zip/ansible/module_utils/urls.py", line 1390, in open_url unredirected_headers=unredirected_headers) File "/********/ansible_get_url_payload_xex4nmel/ansible_get_url_payload.zip/ansible/module_utils/urls.py", line 1264, in open request = RequestWithMethod(url, method, data) File "/********/ansible_get_url_payload_xex4nmel/ansible_get_url_payload.zip/ansible/module_utils/urls.py", line 643, in __init__ urllib_request.Request. __init__ (self, url, data, headers, origin_req_host, unverifiable) File "/usr/lib64/python3.7/urllib/request.py", line 328, in __init__ self.full_url = url File "/usr/lib64/python3.7/urllib/request.py", line 354, in full_url self._parse() File "/usr/lib64/python3.7/urllib/request.py", line 383, in _parse raise ValueError("unknown url type: %r" % self.full_url) fatal: [localhost]: FAILED! => changed=false invocation: module_args: attributes: null backup: null checksum: '' client_cert: null client_key: null content: null delimiter: null dest: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER directory_mode: null follow: false force: false force_basic_auth: false group: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER headers: null http_agent: ansible-httpget mode: null owner: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER regexp: null remote_src: null selevel: null serole: null setype: null seuser: null sha256sum: '' src: null timeout: 10 tmp_dest: null unsafe_writes: null url: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER url_password: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER url_username: temp use_proxy: true validate_certs: true msg: 'unknown url type: '' ********''' status: -1 url: VALUE_SPECIFIED_IN_NO_LOG_PARAMETER [localhost] TASK: utilities : Download package (debug)> p task.args {'_ansible_check_mode': False, '_ansible_debug': False, '_ansible_diff': False, '_ansible_keep_remote_files': False, '_ansible_module_name': 'get_url', '_ansible_no_log': False, '_ansible_module_name': 'get_url', '_ansible_no_log': False, '_ansible_remote_tmp': '~/.ansible/tmp', '_ansible_selinux_special_fs': ['fuse', 'nfs', 'vboxsf', 'ramfs', '9p', 'vfat'], '_ansible_shell_executable': '/bin/sh', '_ansible_socket': None, '_ansible_string_conversion_action': 'warn', '_ansible_syslog_facility': 'LOG_USER', '_ansible_tmpdir': '/home/ec2-user/.ansible/tmp/ansible-tmp-1588762539.1880841-18280-15848856136034/', '_ansible_verbosity': 3, '_ansible_version': '2.9.7', 'dest': 'tmp', 'group': 'tmp', 'owner': 'tmp', 'url': 'tmp', 'url_password': 'tmp', 'url_username': 'temp'}`

---

<div class="post-metadata">

**Author:** ![racke](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/racke/32/4767_2.png) [@racke](https://forum.ansible.com/u/racke)\
**Post date:** [May 6, 2020, 11:02am UTC](https://forum.ansible.com/t/ansible-include-role-syntax-problem/32861/4 "2020-05-06T11:02:19Z")

</div>

> Thanks for your fast replay , but now  
> when i set default values in the rules  
> i do not want them to evaluate only from my include\_rule I'm getting error:  
> \>  
> -name:d packa  
> get\_url:  
> url\_username:temp  
> url\_password:tmp  
> dest:tmp  
> url:tmp  
> owner:tmp  
> group:tmp

Well, you need to specify which variable is used for each of these values, e.g.

&nbsp;&nbsp;&nbsp;url: "{{ url }}"

Regards  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Racke

---

<div class="post-metadata">

**Author:** ![Meir\_Yanovich](https://avatars.discourse-cdn.com/v4/letter/m/9de0a6/32.png) [@Meir\_Yanovich](https://forum.ansible.com/u/Meir_Yanovich)\
**Post date:** [May 6, 2020, 11:06am UTC](https://forum.ansible.com/t/ansible-include-role-syntax-problem/32861/5 "2020-05-06T11:06:33Z")

</div>

i see ,  
in my vars: i will refer to those variable names ? not the module properties?

---

<div class="post-metadata">

**Author:** ![racke](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/racke/32/4767_2.png) [@racke](https://forum.ansible.com/u/racke)\
**Post date:** [May 6, 2020, 11:11am UTC](https://forum.ansible.com/t/ansible-include-role-syntax-problem/32861/6 "2020-05-06T11:11:38Z")

</div>

> i see ,  
> in my vars: i will refer to those variable names ? not the module properties?

Your variable names in the vars block match the module properties, so the task in the role should look like:

-name:d packa  
get\_url:  
&nbsp;&nbsp;&nbsp;&nbsp;url\_username: "{{ url\_username }}"  
&nbsp;&nbsp;&nbsp;&nbsp;url\_password: "{{ url\_password }}"  
&nbsp;&nbsp;&nbsp;&nbsp;....

Regards  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Racke

---

<div class="post-metadata">

**Author:** ![Meir\_Yanovich](https://avatars.discourse-cdn.com/v4/letter/m/9de0a6/32.png) [@Meir\_Yanovich](https://forum.ansible.com/u/Meir_Yanovich)\
**Post date:** [May 6, 2020, 11:16am UTC](https://forum.ansible.com/t/ansible-include-role-syntax-problem/32861/7 "2020-05-06T11:16:45Z")

</div>

Thanks its working, final question  
can i hold default values in the role ?  
so if no value is suplied in the include\_role in the vars section it will use the default?

so that i could invoke :

`

- name: this is test  
include\_role:  
name: utilities  
tasks\_from: d\_pack

`

and also :

`

- name: this is test  
include\_role:  
name: utilities  
tasks\_from: d\_pack  
vars:  
url\_username: “{{ user }}”  
url\_password: “{{ pass }}”

`

---

<div class="post-metadata">

**Author:** ![vbotka](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/vbotka/32/359_2.png) [@vbotka](https://forum.ansible.com/u/vbotka)\
**Post date:** [May 6, 2020, 11:21am UTC](https://forum.ansible.com/t/ansible-include-role-syntax-problem/32861/8 "2020-05-06T11:21:21Z")

</div>

Remove "static: no". There is no such parameter in module "include\_role". Fix  
the indentation.

---

<div class="post-metadata">

**Author:** ![racke](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/racke/32/4767_2.png) [@racke](https://forum.ansible.com/u/racke)\
**Post date:** [May 6, 2020, 11:24am UTC](https://forum.ansible.com/t/ansible-include-role-syntax-problem/32861/9 "2020-05-06T11:24:39Z")

</div>

> Thanks its working, final question  
> can i hold default values in the role ?  
> so if no value is suplied in the include\_role in the vars section it will use the default?

Sure, you could put the defaults into defaults/main.yml in your role or use the  
default filter in the task:

-name:d packa  
get\_url:  
&nbsp;&nbsp;&nbsp;&nbsp;url\_username: "{{ url\_username | default('nobody'}}"  
&nbsp;&nbsp;&nbsp;&nbsp;url\_password: "{{ url\_password | default('nevairbe'}}"

Regards  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Racke

---

<div class="post-metadata">

**Author:** ![Meir\_Yanovich](https://avatars.discourse-cdn.com/v4/letter/m/9de0a6/32.png) [@Meir\_Yanovich](https://forum.ansible.com/u/Meir_Yanovich)\
**Post date:** [May 6, 2020, 11:38am UTC](https://forum.ansible.com/t/ansible-include-role-syntax-problem/32861/10 "2020-05-06T11:38:57Z")

</div>

Thanks allot for your quick answers and help

---

<div class="post-metadata">

**Author:** ![Meir\_Yanovich](https://avatars.discourse-cdn.com/v4/letter/m/9de0a6/32.png) [@Meir\_Yanovich](https://forum.ansible.com/u/Meir_Yanovich)\
**Post date:** [May 6, 2020, 11:42am UTC](https://forum.ansible.com/t/ansible-include-role-syntax-problem/32861/11 "2020-05-06T11:42:34Z")

</div>

now i facing a new problem as the playbook is in inner directory and the role is in the main dir  
and it seams ansible don’t see it  
is there way to access the main roles dir ? ( the one under ansible dir )
