Ansible notify syntax issue - name ^ no action detected in task

1.3k Views Asked by At

I'm not sure what I'm missing here.

Ansible 2.1.2.0

Python 2.7.5

CentOS Linux release 7.2.1511 (Core)

Playbook file looks like:

[vagrant@myvagrant ~/aks/netdata_ansible/ansible] $ cat netdata.yml 

---
- hosts: all
  gather_facts: no

  roles:
    - netdata

[vagrant@myvagrant ~/aks/netdata_ansible/ansible] $ 

Role's (netdata) main.yml looks like:

[vagrant@myvagrant ~/aks/netdata_ansible/ansible] $ cat roles/netdata/tasks/main.yml 

---
# ansible-playbook -i

#- name: Netdata details
#  debug: 
#    msg: "server = {{ netdata_server }}"
##
#- name: Check if netdata systemctl is running
#  command: "systemctl status netdata"
#  ignore_errors: yes
#  register: netdata_systemctl_status
#
#- name: Report status of Netdata Service
#  debug: 
#    msg: "{{ netdata_systemctl_status.stdout_lines }}"
#
- name: Start netdata systemctl if it is not running
  debug: 
    msg: "Restarting netdata systemctl now"
  notify: restart netdata systemctl

  #when: netdata_systemctl_status | failed

[vagrant@myvagrant ~/aks/netdata_ansible/ansible] $ 

Handler's notifying the notifier and it's main file looks like:

[vagrant@myvagrant ~/aks/netdata_ansible/ansible] $ cat roles/netdata/handlers/main.yml 

---
# PS.
# Order of listing notifiers in this file matters.
# Order of listing notifiers while calling/notifying a notifier in a task/action doesn't.

- name: restart netdata systemctl
  systemd: 
    name: netdata
    state: restarted

[vagrant@myvagrant ~/aks/netdata_ansible/ansible] $ 

Then, why Ansible is giving me the following error?

[vagrant@myvagrant ~/aks/netdata_ansible/ansible] $ ansible-playbook -i "`hostname`," --connection=local netdata.yml 
ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.

The error appears to have been in '/home/vagrant/aks/netdata_ansible/ansible/roles/netdata/handlers/main.yml': line 6, column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


- name: restart netdata systemctl
  ^ here


The error appears to have been in '/home/vagrant/aks/netdata_ansible/ansible/roles/netdata/handlers/main.yml': line 6, column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


- name: restart netdata systemctl
  ^ here

[vagrant@myvagrant ~/aks/netdata_ansible/ansible] $ 
1

There are 1 best solutions below

3
On BEST ANSWER

The systemd module was introduced in Ansible 2.2.

systemd - Manage services.

New in version 2.2.

You are using Ansible 2.1.2 hence Ansible reports no known action is defined in the task.