Dear all,
I am quite new to Ansible and try to "make a tour"...
I am using ansible 2.4.2.0 with cygwin64 on Win7.
I am currently make a personal training and find that I could use a block to "enclose" (ok, perhaps wrong term) a couple of task that have some common "properties" (like become_user: root ...).
The idea is to change this :
---
- name: Update Red Hat machine
yum:
update_cache: yes
name: '*'
state: latest
when: ansible_pkg_mgr == 'yum'
become: true
become_user: root
ignore_errors: yes
notify: "restart {{ ansible_os_family }} host"
- name: Install RedHat tools
yum:
name: "{{ item }}"
state: present
with_items: "{{ toolList }}"
when: ansible_pkg_mgr == 'yum'
become: true
become_user: root
ignore_errors: yes
notify: "restart {{ ansible_os_family }} host"
into a block based syntax so that I can factorize the become / notify and when statement.
II have made several trials without any success.
Playing the file below :
---
-block:
- name: Update Red Hat machine
yum:
update_cache: yes
name: '*'
state: latest
- name: Install RedHat tools
yum:
name: "{{ item }}"
state: present
with_items: "{{ toolList }}"
when: ansible_pkg_mgr == 'yum'
become: true
become_user: root
ignore_errors: yes
notify: "restart {{ ansible_os_family }} host"
I get this error :
fatal: [ci-server]: FAILED! => {"reason": "Syntax Error while loading YAML.\n\n\nThe error appears to have been in '/home/jeanlupi/centos_test/myKnowledge/devOps/playbook/roles/devTools/tasks/RedHat.yml': line 16, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n when: ansible_pkg_mgr == 'yum'\n ^ here\n\nexception type: <class 'yaml.parser.ParserError'>\nexception: while parsing a block collection\n in \"<unicode string>\", line 3, column 3:\n - name: Update Red Hat machine\n ^\nexpected <block end>, but found '?'\n in \"<unicode string>\", line 16, column 3:\n when: ansible_pkg_mgr == 'yum'\n ^"}
If someone could help I would be very glad !
Thanks !
JiElPe